This release marks a new major release of
lnd that includes several important bug fixes, an improved payment API, pathfinding enhancements, faster initial sync times, support for fee bumping on sweeps, and an initial rollout of altruistic watchtowers. As always, users are highly encouraged to upgrade to this new version.
This version includes two migrations, the first is in
channel.db which modifies the structure of the payment tracking data to support the refactored router and its ability to reliably display payments via the RPC. The migration should look like this:
2019-06-14 21:54:53.576 [INF] LTND: Version: 0.7.0-beta commit=v0.7.0-beta-rc1, build=production, logging=default 2019-06-14 21:54:53.579 [INF] LTND: Active chain: Bitcoin (network=mainnet) 2019-06-14 21:54:53.583 [INF] CHDB: Checking for schema update: latest_version=9, db_version=8 2019-06-14 21:54:53.586 [INF] CHDB: Performing database schema migration 2019-06-14 21:54:53.586 [INF] CHDB: Applying migration #9 2019-06-14 21:54:53.586 [INF] CHDB: Migrating outgoing payments to new bucket structure 2019-06-14 21:54:53.586 [INF] CHDB: Migration of outgoing payment bucket structure completed!
The second migration is in
wallet.db, which prunes redundant block data already being stored by the underlying backend. The migration should look like this:
2019-06-14 21:54:53.744 [INF] LNWL: Applying wallet address manager migration #8 2019-06-14 21:54:53.746 [INF] LNWL: Removing block hash entries beyond maximum reorg depth of 10000 from current tip 580748
Once updated, it will not be possible to return to an older version of lnd.
Verifying the Release
In order to verify the release, you'll need to have
gpg2 installed on your system. Once you've obtained a copy (and hopefully verified that as well), you'll first need to import the keys that have signed this release if you haven't done so already:
curl https://keybase.io/bitconner/pgp_keys.asc | gpg --import
Once you have the required PGP keys, you can verify the release (assuming
manifest-v0.7.0-beta.txt.sig are in the current directory) with:
gpg --verify manifest-v0.7.0-beta.txt.sig
You should see the following if the verification was successful:
gpg: assuming signed data in 'manifest-v0.7.0-beta-rc1.txt' gpg: Signature made Fri Jun 14 14:24:37 2019 PDT gpg: using RSA key 9C8D61868A7C492003B2744EE7D737B67FA592C7 gpg: Good signature from "Conner Fromknecht <email@example.com>" [ultimate]
That will verify the signature on the main manifest page which ensures integrity and authenticity of the binaries you've downloaded locally. Next, depending on your operating system you should then re-calculate the
sha256 sum of the binary, and compare that with the following hashes (which are included in the manifest file):
a0af101b730d3f30cb85d46ce9b70f639ed845318deb72f08196714974a9a4f7 lnd-darwin-386-v0.7.0-beta-rc1.tar.gz 2385d2dcdcf2df7623d51611074968ecc575943e7fd06e0c31821d4454ff1cc4 lnd-darwin-amd64-v0.7.0-beta-rc1.tar.gz ba584ff4528b7a8e91785c2b53258fcae795d8faa2ab5f71b74a0111ac1ea885 lnd-dragonfly-amd64-v0.7.0-beta-rc1.tar.gz e19ee77f5c680b3dd9cdd9286273ae076f653e31a930ec2e268ac38a2102c11a lnd-freebsd-386-v0.7.0-beta-rc1.tar.gz 210f1977bd9e6c1904a9ef215575e7ec43bb52775d04f7e431d9919c1df3c31c lnd-freebsd-amd64-v0.7.0-beta-rc1.tar.gz 4a1b7783e928ac56887b874851595983e62414a95e67bbd422052a7a75b4a760 lnd-freebsd-arm-v0.7.0-beta-rc1.tar.gz 034570245b113074d9b1ccaf6f74b5fe16d2cd06ba97fe357cd8d77dd3d2f744 lnd-linux-386-v0.7.0-beta-rc1.tar.gz 6cb52c42c6b837b8dda35124cb74c591b3f9167f92e73d0e3ea46b359cb5bdf4 lnd-linux-amd64-v0.7.0-beta-rc1.tar.gz 5f4666a9c12e578c41faea4868cd5ea447dfa0e80ce7a282eced36e1205df968 lnd-linux-arm64-v0.7.0-beta-rc1.tar.gz 0573093e4d84213941adab88cc5cd604f9b3e1344a28bb7b8894d2302fa05022 lnd-linux-armv6-v0.7.0-beta-rc1.tar.gz 24f4860d44d726a0e2fb14c5a368d521637b9ecc009b552a8ce987b0b28f3544 lnd-linux-armv7-v0.7.0-beta-rc1.tar.gz 4ea4e15e4b15c8c2ad86590c30315200090dcb74173448e394e3e4e4dae78415 lnd-linux-mips64-v0.7.0-beta-rc1.tar.gz 4bc989aececec53c42f8d8338e3f25358b0e05de94223259f6222b6230a1c498 lnd-linux-mips64le-v0.7.0-beta-rc1.tar.gz 876996e045ad241b594048223069be2f96dc8c4d46aaf81d7e3c47327c3b6ecc lnd-linux-ppc64-v0.7.0-beta-rc1.tar.gz d402847b1efeb039aa72fbf20320df30161a7aa3dca54b09de4b29c8f499f03a lnd-netbsd-386-v0.7.0-beta-rc1.tar.gz 4cb2996dfb5fa42a9a771f0631631f102080512d406d942d5816ecc9c1d5705e lnd-netbsd-amd64-v0.7.0-beta-rc1.tar.gz 4e7dd42d39e81cdbfb2de14f67415e0c3c986eeaa7d9ed9ec029b7d6bf963f73 lnd-openbsd-386-v0.7.0-beta-rc1.tar.gz 8bf0514c74d80584d87544f07a2e520ca9311ef7a1a6e42e9029ac8fcb3b533b lnd-openbsd-amd64-v0.7.0-beta-rc1.tar.gz f13d1628ccba4bc963e7ed2a81be0ed0cd6c9c11ea71a4a7a68a4ff01d2a4d0b lnd-source-v0.7.0-beta-rc1.tar.gz 04b0768147197846603a0465b962c6fec3dfb315e3b446b0d148620a81e8266c lnd-windows-386-v0.7.0-beta-rc1.zip 1a9ee1d3e30e69e14cb00ef982e0a63d05ed39f74e3fc7d3a16b31efe8685a89 lnd-windows-amd64-v0.7.0-beta-rc1.zip 21098c814a77dfdff0bf53329f8337ee69b49fa27829507402934a60147a9dcc vendor.tar.gz
One can use the
shasum -a 256 <file name here> tool in order to re-compute the
sha256 hash of the target binary for your operating system. The produced hash should be compared with the hashes listed above and they should match exactly.
Finally, you can also verify the tag itself with the following command:
git verify-tag v0.7.0-beta
The binaries are compiled with
go1.12.6 and include the following build tags:
Building the Contained Release
With this new version of
lnd, we've modified our release process to ensure the bundled release is now fully self contained. As a result, with only the attached payload with this release, users will be able to rebuild the target release themselves without having to fetch any of the dependencies. Note that at this stage, binaries aren't yet fully reproducible (even with
go modules). This is due to the fact that by default, Go will include the full directory path where the binary was built in the binary itself. As a result, unless your file system exactly mirrors the machine used to build the binary, you'll get a different binary, as it includes artifacts from your local file system. This will be fixed in
go1.13, and before then we may modify our release system to do this automatically.
In order to re-build from scratch, assuming that
lnd-source-v0.7.0-beta.tar.gz are in the current directory:
tar -xvzf vendor.tar.gz tar -xvzf lnd-source-v0.7.0-beta.tar.gz GO111MODULE=on go install -v -mod=vendor -ldflags "-X github.com/lightningnetwork/lnd/build.Commit=v0.7.0-beta" ./cmd/lnd GO111MODULE=on go install -v -mod=vendor -ldflags "-X github.com/lightningnetwork/lnd/build.Commit=v0.7.0-beta" ./cmd/lncli
-mod=vendor flag tells the
go build command that it doesn't need to fetch the dependencies, and instead, they're all enclosed in the local vendor directory.
Additionally, it's now possible to use the enclosed
release.sh script to bundle a release for a specific system like so:
LNDBUILDSYS="linux-arm64 darwin-amd64" ./release.sh
The full list of changes since
0.6.1-beta can be found here:
Contributors (Alphabetical Order)
Johan T. Halseth
Yaacov Akiba Slama