Bumps lnd to v0.21.0-beta, lndclient to v0.21.0-1, and
taproot-assets to v0.8.0 across the root, litrpc, and perms
modules. taprpc uses the proper v1.1.0 tag.
lnd removed the deprecated SendPaymentSync, SendToRouteSync,
SendPayment (streaming), and SendToRoute (streaming) RPCs. The
account interceptor checkers and their tests for these RPCs are
removed since no client can call them anymore. The V2 checkers
already handle account tracking for payments.
The itest harness is updated for lnd v0.21's miner API changes
(SendOutputs -> SendOutput, Miner.Client.Generate -> GenerateBlocks,
waitForNTxsInMempool replaced by Miner.AssertNumTxsInMempool) and
TimeLockDelta bumped from 20 to 40 since lnd v0.21 raised
MinCLTVDelta from 18 to 24.
We can now use the LND_REPO, TAPROOT_ASSETS_REPO, TAPRPC_REPO, and
LOOP_RPC build arguments to force a specific repo to be used so that
commits referenced by LND_VERSION, TAPROOT_ASSETS_VERSION,
TAPRPC_VERSION, and LOOP_VERSION don't have to exist in the default
repository. If any of these build arguments are not defined, the build
continues using the default repository for that module.
NOTE: If these arguments ARE defined then the corresponding
`_VERSION` argument MUST also be defined, otherwise the build continues
using the default repository defined for that module.
We can now use the `TAPRPC_VERSION` build argument to force a specific
taprpc version to be used when building. If the `TAPRPC_VERSION` build
argument is not set, then build continues as before this change and uses
the version already defined in `go.mod` and `go.sum`.
We can now use the `LND_VERSION` build argument to force a specific LND
version to be used when building. If the `LND_VERSION` build argument is
not set, then build continues as before this change and uses the version
already defined in `go.mod` and `go.sum`.
We now run `make go-install-noui` and `make go-install-cli-noui` when
the `NO_UI` build arg is set to 1 to skip building of the web UI when
using the development docker container. If the `NO_UI` build arg is not
set, `make go-install` and `make go-install-cli` are run as before the
`NO_UI` build arg existed.
In the next commit, we'll bump our lnd dependency to `v0.18.3-beta`.
That version adds explicitly declared optional protos fields with commit
3de6c5415a
Optional proto fields are only available in Proto3 after protoc version
`3.15+`, and we therefore need to bump our protoc version for the protos
generation script to support them.
When doing so, we mimic the protobuf-compiler version used in `lnd`,
which is `3.21.12`. As protobuf-compiler 3.21.x+ is only available for
Node.js base images with Debian 12 (bookworm), we also update our NodeJS
base image to version 22.8.0-bookworm.
With this commit we split the build process into three stages: we start
with the JavaScript to static asset build process that requires NodeJS
then copy the result into the second stage that requires golang.
Finally, we just extract the final binaries in the third stage to keep
the shipped image as small as possible.
We add a new standalone Dockerfile that checks out the code from GitHub
and goes through all necessary build steps from scratch. The git commit
or tag that should be checked out before building can be specified as a
build argument.
To still allow more rapid development, the old Dockerfile that builds
from the local source is renamed to dev.Dockerfile to make the
distinction clear.