build: bump Go language and toolchain versions
What changed, and why it matters
This commit is a routine maintenance update that changes which version of the Go programming language is used to build the lnd project. It does not change any application logic, fix a bug, or address a security vulnerability. The project is simply moving its build tooling to a newer Go release and keeping the minimum required Go version current.
No security action required. Treat as a normal build hygiene update. Operators building from source should ensure their local Go toolchain meets the new minimum version (1.26.8) and that published checksums match official Go downloads.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch bumps the Go language version from 1.25.13 to 1.26.8 in all tracked go.mod files, and moves build/release tooling (CI workflows, Dockerfiles, Makefile, linter config, protobuf generation, mobile build docs) from Go 1.26.6 to 1.27.1. It also updates installation documentation and published SHA-256 checksums for the Go 1.26.8 Linux archives. No Go source code, cryptographic logic, network handling, or dependency versions are modified.
Changed components
go.mod files across repository modulesGitHub Actions workflow configurationDocker build imagesMakefilegolangci-lint configurationInstallation documentation (docs/INSTALL.md)Mobile build documentation (mobile/README.md)Inspect captured patch +39 / −39
### .github/actions/setup-go/action.yml
@@ -52,8 +52,8 @@ runs:
# The key is used to create and later look up the cache. It's made of
# four parts:
# - The base part is made from the OS name, Go version and a
- # job-specified key prefix. Example: `linux-go-1.26.6-unit-test-`.
- # It ensures that a job running on Linux with Go 1.26 only looks for
+ # job-specified key prefix. Example: `linux-go-1.27.1-unit-test-`.
+ # It ensures that a job running on Linux with Go 1.27 only looks for
# caches from the same environment.
# - The unique part is the `hashFiles('**/go.sum')`, which calculates a
# hash (a fingerprint) of the go.sum file.
### .github/workflows/govulncheck.yml
@@ -40,7 +40,7 @@ defaults:
env:
# If you change this please also update GO_VERSION in Makefile (then run
# `make lint` to see where else it needs to be updated as well).
- GO_VERSION: 1.26.6
+ GO_VERSION: 1.27.1
jobs:
govulncheck:
### .github/workflows/main.yml
@@ -41,7 +41,7 @@ env:
# If you change this please also update GO_VERSION in Makefile (then run
# `make lint` to see where else it needs to be updated as well).
- GO_VERSION: 1.26.6
+ GO_VERSION: 1.27.1
jobs:
static-checks:
### .github/workflows/release.yaml
@@ -12,7 +12,7 @@ defaults:
env:
# If you change this please also update GO_VERSION in Makefile (then run
# `make lint` to see where else it needs to be updated as well).
- GO_VERSION: 1.26.6
+ GO_VERSION: 1.27.1
jobs:
########################
### .golangci.yml
@@ -3,7 +3,7 @@ version: "2"
run:
# If you change this please also update GO_VERSION in Makefile (then run
# `make lint` to see where else it needs to be updated as well).
- go: "1.26.6"
+ go: "1.27.1"
# Abort after 10 minutes.
timeout: 10m
### Dockerfile
@@ -1,6 +1,6 @@
# If you change this please also update GO_VERSION in Makefile (then run
# `make lint` to see where else it needs to be updated as well).
-FROM golang:1.26.6-alpine as builder
+FROM golang:1.27.1-alpine as builder
# Force Go to use the cgo based DNS resolver. This is required to ensure DNS
# queries required to connect to linked containers succeed.
### Makefile
@@ -36,7 +36,7 @@ ACTIVE_GO_VERSION_MINOR := $(shell echo $(ACTIVE_GO_VERSION) | cut -d. -f2)
# GO_VERSION is the Go version used for the release build, docker files, and
# GitHub Actions. This is the reference version for the project. All other Go
# versions are checked against this version.
-GO_VERSION = 1.26.6
+GO_VERSION = 1.27.1
GOBUILD := $(GOCC) build -v
GOINSTALL := $(GOCC) install -v
### actor/go.mod
@@ -1,6 +1,6 @@
module github.com/lightningnetwork/lnd/actor
-go 1.25.13
+go 1.26.8
require (
github.com/btcsuite/btclog/v2 v2.0.1-0.20250602222548-9967d19bb084
### cert/go.mod
@@ -1,6 +1,6 @@
module github.com/lightningnetwork/lnd/cert
-go 1.25.13
+go 1.26.8
require github.com/stretchr/testify v1.8.2
### clock/go.mod
@@ -1,6 +1,6 @@
module github.com/lightningnetwork/lnd/clock
-go 1.25.13
+go 1.26.8
require github.com/stretchr/testify v1.8.2
### dev.Dockerfile
@@ -1,6 +1,6 @@
# If you change this please also update GO_VERSION in Makefile (then run
# `make lint` to see where else it needs to be updated as well).
-FROM golang:1.26.6-alpine AS builder
+FROM golang:1.27.1-alpine AS builder
LABEL maintainer="Olaoluwa Osuntokun <laolu@lightning.engineering>"
### docker/btcd/Dockerfile
@@ -1,6 +1,6 @@
# If you change this please also update GO_VERSION in Makefile (then run
# `make lint` to see where else it needs to be updated as well).
-FROM golang:1.26.6-alpine AS builder
+FROM golang:1.27.1-alpine AS builder
LABEL maintainer="Olaoluwa Osuntokun <laolu@lightning.engineering>"
### docs/INSTALL.md
@@ -93,23 +93,23 @@ following build dependencies are required:
### Installing Go
-`lnd` is written in Go, with a minimum version of `1.25.13` (or, in case this
+`lnd` is written in Go, with a minimum version of `1.26.8` (or, in case this
document gets out of date, whatever the Go version in the main `go.mod` file
requires). To install, run one of the following commands for your OS:
<details>
<summary>Linux (x86-64)</summary>
```
- wget https://dl.google.com/go/go1.25.13.linux-amd64.tar.gz
- echo "39042a078ea9ceebe3ecda4a7188f0f5b96e14a071d27923ba7f40b456e85ae3 go1.25.13.linux-amd64.tar.gz" | sha256sum --check
+ wget https://dl.google.com/go/go1.26.8.linux-amd64.tar.gz
+ echo "d0f743b33e8d8945e6b1f432edd15785c70507121d6e2a723b21285eddf8b57b go1.26.8.linux-amd64.tar.gz" | sha256sum --check
```
- The command above should output `go1.25.13.linux-amd64.tar.gz: OK`. If it
+ The command above should output `go1.26.8.linux-amd64.tar.gz: OK`. If it
doesn't, then the target REPO HAS BEEN MODIFIED, and you shouldn't install
this version of Go. If it matches, then proceed to install Go:
```
- sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.25.13.linux-amd64.tar.gz
+ sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.26.8.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
```
</details>
@@ -118,15 +118,15 @@ requires). To install, run one of the following commands for your OS:
<summary>Linux (ARMv6)</summary>
```
- wget https://dl.google.com/go/go1.25.13.linux-armv6l.tar.gz
- echo "f98ba3beb03a5c269d0115c7f8573483c139be88ce9989e53aff336826d13f5c go1.25.13.linux-armv6l.tar.gz" | sha256sum --check
+ wget https://dl.google.com/go/go1.26.8.linux-armv6l.tar.gz
+ echo "eab440beabf395870752021fa74cedf04f97b61e43ebbe005ecbb98b94e55697 go1.26.8.linux-armv6l.tar.gz" | sha256sum --check
```
- The command above should output `go1.25.13.linux-armv6l.tar.gz: OK`. If it
+ The command above should output `go1.26.8.linux-armv6l.tar.gz: OK`. If it
isn't, then the target REPO HAS BEEN MODIFIED, and you shouldn't install
this version of Go. If it matches, then proceed to install Go:
```
- sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.25.13.linux-armv6l.tar.gz
+ sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.26.8.linux-armv6l.tar.gz
export PATH=$PATH:/usr/local/go/bin
```
### fn/go.mod
@@ -1,6 +1,6 @@
module github.com/lightningnetwork/lnd/fn/v2
-go 1.25.13
+go 1.26.8
require (
github.com/stretchr/testify v1.8.1
### go.mod
@@ -217,7 +217,7 @@ replace google.golang.org/protobuf => github.com/lightninglabs/protobuf-go-hex-d
// If you change this please also update docs/INSTALL.md and all other go.mod
// files. The release build toolchain version is tracked separately by
// GO_VERSION in Makefile.
-go 1.25.13
+go 1.26.8
retract v0.0.2
### healthcheck/go.mod
@@ -23,4 +23,4 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
)
-go 1.25.13
+go 1.26.8
### kvdb/go.mod
@@ -143,4 +143,4 @@ require (
sigs.k8s.io/yaml v1.2.0 // indirect
)
-go 1.25.13
+go 1.26.8
### lnrpc/Dockerfile
@@ -1,6 +1,6 @@
# If you change this please also update GO_VERSION in Makefile (then run
# `make lint` to see where else it needs to be updated as well).
-FROM golang:1.26.6-bookworm
+FROM golang:1.27.1-bookworm
RUN apt-get update && apt-get install -y \
git \
### lnrpc/gen_protos_docker.sh
@@ -6,7 +6,7 @@ set -e
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# golang docker image version used in this script.
-GO_IMAGE=docker.io/library/golang:1.26.6-alpine
+GO_IMAGE=docker.io/library/golang:1.27.1-alpine
PROTOBUF_VERSION=$(docker run --rm -v $DIR/../:/lnd -w /lnd $GO_IMAGE \
go list -f '{{.Version}}' -m google.golang.org/protobuf)
### make/builder.Dockerfile
@@ -1,6 +1,6 @@
# If you change this please also update GO_VERSION in Makefile (then run
# `make lint` to see where else it needs to be updated as well).
-FROM golang:1.26.6-bookworm
+FROM golang:1.27.1-bookworm
MAINTAINER Olaoluwa Osuntokun <laolu@lightning.engineering>
### mobile/README.md
@@ -103,7 +103,7 @@ following commands:
```
RUN apt-get install -y wget \
- && wget -c https://dl.google.com/go/go1.26.6.linux-amd64.tar.gz -O - \
+ && wget -c https://dl.google.com/go/go1.27.1.linux-amd64.tar.gz -O - \
| tar -xz -C /usr/local
ENV GOPATH=/go
ENV PATH=$PATH:/usr/local/go/bin:/go/bin
### queue/go.mod
@@ -1,6 +1,6 @@
module github.com/lightningnetwork/lnd/queue
-go 1.25.13
+go 1.26.8
require (
github.com/lightningnetwork/lnd/fn/v2 v2.0.8
### sqldb/go.mod
@@ -71,4 +71,4 @@ require (
modernc.org/token v1.1.0 // indirect
)
-go 1.25.13
+go 1.26.8
### sqldb/v2/go.mod
@@ -70,4 +70,4 @@ require (
// did not yet make it into the upstream repository.
replace github.com/golang-migrate/migrate/v4 => github.com/lightninglabs/migrate/v4 v4.18.2-9023d66a-fork-pr-2.0.20251211093704-71c1eef09789
-go 1.25.13
+go 1.26.8
### ticker/go.mod
@@ -1,3 +1,3 @@
module github.com/lightningnetwork/lnd/ticker
-go 1.25.13
+go 1.26.8
### tlv/go.mod
@@ -22,4 +22,4 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
)
-go 1.25.13
+go 1.26.8
### tools/Dockerfile
@@ -1,4 +1,4 @@
-FROM golang:1.26.6
+FROM golang:1.27.1
RUN apt-get update && apt-get install -y git
ENV GOCACHE=/tmp/build/.cache
### tools/go.mod
@@ -1,6 +1,6 @@
module github.com/lightningnetwork/lnd/tools
-go 1.25.13
+go 1.26.8
require (
4d63.com/gocheckcompilerdirectives v1.3.0 // indirect
### tools/linters/go.mod
@@ -1,6 +1,6 @@
module github.com/lightningnetwork/lnd/tools/linters
-go 1.25.13
+go 1.26.8
require (
github.com/golangci/plugin-module-register v0.1.1
### tor/go.mod
@@ -25,4 +25,4 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
)
-go 1.25.13
+go 1.26.8Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.