github lightninglabs/pool v0.6.0-beta
pool v0.6.0-beta

latest releases: poolrpc/v1.0.0, auctioneerrpc/v1.1.2, v0.6.5-beta...
2 years ago

Pool is finally graduating to it's beta release with new, cutting-edge market features!

Four new market primitives

  • Order Signalling:
    Users' market orders can now be 'unsealed' into a publicly queryable order book to assist bidders/askers matching. [1]

  • Taproot / MuSig Pool Accounts
    Pool contract state and signing stays off chain decreasing users fees, increasing privacy

  • Unannounced Channels:
    Refrain from announcing channels to the global graph for more privacy
    $ pool orders submit bid --unannounced_channel ...

  • New Market!
    v0.6.0 creates the ability for an asker to sell their outbound capacity and graph position/connections.
    $ pool orders submit bid --auction_type outbound ...
    in addition to Pool default inbound functionality
    $ pool orders submit bid --auction_type inbound ...

  • Zero Conf Send/Receive!
    Pool offers Zero Conf channels to enable LN payments before block confirmation! Immediately after a Pool batch is broadcast to the mempool.

[1] Change Pool's defaults with the --isPublic=false flag on orders to keep orders sealed.

Verifying the Release

In order to verify the release, you'll need to have gpg or 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:

gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys F4FC70F07310028424EFC20A8E4256593F177720

Once you have the required PGP keys, you can verify the release (assuming manifest-v0.6.0-beta.txt and manifest-v0.6.0-beta.sig are in the current directory) with:

gpg --verify manifest-v0.6.0-beta.sig manifest-v0.6.0-beta.txt

You should see the following if the verification was successful:

gpg: Signature made Do 25 Nov 2021 10:41:18 CET
gpg:                using RSA key F4FC70F07310028424EFC20A8E4256593F177720
gpg: Good signature from "Oliver Gugger <gugger@gmail.com>" [ultimate]
Primary key fingerprint: F4FC 70F0 7310 0284 24EF  C20A 8E42 5659 3F17 7720

That will verify the signature of the manifest file, which ensures integrity and authenticity of the archive you've downloaded locally containing the binaries. Next, depending on your operating system, you should then re-compute the sha256 hash of the archive with shasum -a 256 <filename>, compare it with the corresponding one in the manifest file, and ensure they match exactly.

Verifying the Release Binaries

Our release binaries are fully reproducible. Third parties are able to verify that the release binaries were produced properly without having to trust the release manager(s). See our reproducible builds guide for how this can be achieved. The release binaries are compiled with go1.18.5, which is required by verifiers to arrive at the same ones.

The make release command can be used to ensure one rebuilds with all the same flags used for the release. If one wishes to build for only a single platform, then make release sys=<OS-ARCH> tag=<tag> can be used.

Finally, you can also verify the tag itself with the following command:

The signature on the tag itself can be verified with:

git verify-tag v0.6.0-beta

Building the Contained Release

Users are able to rebuild the target release themselves without having to fetch any of the dependencies. In order to do so, assuming that vendor.tar.gz and poold-source-v0.6.0-beta.tar.gz are in the current directory, follow these steps:

tar -xvzf vendor.tar.gz
tar -xvzf lnd-source-v0.6.0-beta.tar.gz
GO111MODULE=on go install -v -mod=vendor ./cmd/poold
GO111MODULE=on go install -v -mod=vendor ./cmd/pool

The -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:

make release sys="linux-arm64 darwin-amd64"

Release Notes (auto generated)

What's Changed

  • Upgrade trader accounts to Taproot/MuSig2 by @guggero in #375
  • multi: make profile IP configurable by @guggero in #391
  • taproot: ensure check for expiry script spend correctly handles annex by @ffranr in #393
  • rpcserver: handle 'StateExpiredPendingUpdate' case for account state by @jbrill in #394
  • feature: add support for unannounced and zero conf channels by @positiveblue in #385
  • feature: add outbound-liquidity auction market, bidder pays for channel acceptance by @positiveblue in #390
  • cmd: make orders public by default by @positiveblue in #398
  • version: bump to v0.6.0-beta by @positiveblue in #399

New Contributors

Full Changelog: v0.5.8-alpha...v0.6.0-beta

Don't miss a new pool release

NewReleases is sending notifications on new releases.