Releases: lndk-org/lndk
Releases · lndk-org/lndk
0.2.0 - 2024-09-02
Release Notes
Documentation
- Add instructions for paying an offer with the cli
- Add instructions for paying an Eclair offer
- Update docs with new mode for passing in creds
- Update docs with server updates
- Update cargo fmt instructions for contributors
- Update compiling instructions
- Add bakemacaroon instructions for paying offers
Miscellaneous Tasks
- Update cargo-dist and regenerate
- Update release process documentation & remove cosign key
README
- Add discord invitation
- Fix bakemacaroon typo
Testing
- Add bitcoind node setup for testing
- Test that ldk node can send onion message
- Add lnd git submodule
- Add initial Makefile for lnd bin
- Organize needed bitcoind data in a struct
- Clean up directory structure
- Add a utility for retrying grpc calls
- Add lnd to integration tests
- Test that lndk forwards onion messages
- Specify log level in ldk nodes
- Split off connect_network fn for reuse
- Split out setup_lndk fn for reuse
- Update test pubkey to return two keys
Actions
- Update github actions with new test process
- Install protobuf-compiler so we can build tonic_lnd
- Specify Rust version to use
- Update fmt workflow with max comment width
- Update codecov-actions to v4
Cfg
- Pass in extra ips to tls certificate
Cli
- Add global arguments for connecting to lnd
- Add cli command to pay offer
- Default macaroon path should depend on the specified network
- Add option to pass cert/macaroon in directly to cli
- Update CLI to connect to new gRPC server
- TLS connection with server
- Add option to pass in LNDK tls cert directly
- Return error code on error
- Split tls/macaroon processing into separate functions
- Add get_invoice/pay_invoice commands
- Don't pass in full cli args to read function
Clippy
- Move outer attribute into inner
- Move outer attribute into inner
Config
- Clarify where log file is stored by default
Itests
- Update lnd submodule to tagged hash change
- Add walletrpc subserver to lnd Makefile/README
- Add lnd API calls needed to set up channels
- Export bitcoind for tests
- Bump ldk-sample to newer version
- Advertise ldk node address
- Set more granular lnd logs
- Add lnd new_address api call
Lib
- Implement and use OfferMessageHandler on OfferHandler
- Refactor create_invoice_request to be a method of OfferHandler
- When finding route, add missing fee ppm parameter
- Move and Arc-ify OffersHandler
- Remove offer from map if we fail/succeed to pay
Lnd
- Export network verifier for cli
- Export get_lnd_client, features_support_onion_messages & network checker
- Convert network string to lowercase before processing
- Move get network logic into separate function
Logs
- Filter out useless dependency logs
- Add ldk sublogger
Main
- Move main logic for running lndk into a library
- Replace simple logger with log4rs
- Ignore unused imports from configure_me
- Add config option for specifying log level
- Add grpc server config options
- Auto-create data directory at ~/.lndk
- Move logger setup further up
- Handle sigterm/sigint signals
Main+lib
- Move logger out of run method
Maintainers
- Add notes from first release
Messenger
- Fix PeerConnected empty features bug
Multi
- Propagate shutdown signal from caller to lndk
- Refactor to create OfferHandler and LndkOnionMessenger
- Add verification details to invoice request
- Split off uir signing portion of create_invoice_request into a method
- Upgrade to ldk v20
- Send offer payment
- Add option to pass cert/macaroon in directly to lndk
- Delete started channel
- Expose payment when done tracking it
- Setup grpc server
- Format comments to 100 width
- Separate pay_offer into two methods
- Remove metadata ir parameter
- Allow passing in a payer note
- Configurable timeout for receiving invoice
- Move to derive_new_key for key gen
Offers
- Rename create_invoice_request
- Add logic for connecting to the introduction node peer
- Validate offer amount user input
- Wait for onion messenger ready signal before sending request
- Build a reply path for invoice request
- Send invoice request
- Verify invoice upon return
- Add InvoicePayer for paying an offer
- Add timeout for invoice response
- Change OfferState to PaymentState
- Return PaymentId for later use
- Split create_invoice_request from send_invoice_request
- Track active payments instead of offers
- Improve offer flow logs
- Handle invoice request build failures more gracefully
- Rename pay_invoice to send_payment
- Change validate_amount parameters
- Remove extra cltv expiry delta
- Add back extra cltv expiry delta
- Don't choose unadvertised node as introduction node
Onion
- Remove RefCell from MessengerUtilities
Readme
- Update branch instructions
Release
- Update cargo-dist
Server
- Require TLS for interacting with server
- New get_info and pay_offer endpoints
- Return invoice object for now
- Only log request message
- Include payer note in invoice contents
- Correctly convert invoice features
Server+cli
- Add DecodeInvoice command
Utils
- Add Default for MessengerUtilities to satisfy clippy
Install lndk 0.2.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/lndk-org/lndk/releases/download/v0.2.0/lndk-installer.sh | sh
Download lndk 0.2.0
File | Platform | Checksum |
---|---|---|
lndk-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
lndk-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
lndk-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo lndk-org/lndk
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
v0.0.1
Release Notes
This is the first release of LNDK! With this release, LND node operators can facillitate forwarding of Onion Messages in the Lightning Network 🧅
Please see our readme for instructions for getting started, and feel free to ask questions in our release discussion!
Verifying the Release
To verify the release artifacts with cosign:
cosign verify-blob --key cosign.pub --bundle cosign.bundle checksums.txt
Thecosign.pub
key can be found in the root of LNDK, and signed by carlaKC.
Changelog
Documentation
- Add contributor covenant code of conduct v2.1
- Fix typo
- Add command for generating a custom macaroon
Miscellaneous Tasks
- Generate release workflow with
cargo-dist
- Include Sigstore Cosign signing in release workflow
- Add MAINTAINERS.md with release process
- Add release hook for CHANGELOG generation
README
- Add architecture description for onion messages
- Link contributor guidelines
- Add more specific instructions for compiling and running LND
- Move architecture section to a separate file
- Split off the cargo-crev note into its own subsection
- Update running lndk instructions to make it more obvious there is a config file option
Actions
- Include token in codecov action
Arch
- Update references to org
Cargo
- Add tonic_lnd dependency
- Add futures crate
- Add tokio with multi threaded runtime
- Update repository
- Set version to 0.0.1
Contributing
- Add contributor guide
- Point developers to discussions for meta help
- Update references to org repo
Cosign
- Add github actions pubkey and signature
Github
- Add initial CI workflow
- Create coverage reports
- Use actions-rs/toolchain@v1; bump checkout action to v3
Gitignore
- Add target and cargo lock
Lnd
- Add docs for lnd node signer
Lnd/docs
- Add documentation for lnd client setup and features
Lndk
- Cargo new
Main
- Add blocking lnd client fetch and example call
- Pull argument parsing out + add enum
- Run clippy fix
- Run cargo fmt
- Implement NodeSigner using LND signerrpc
- Implement EntropySource trait for Onion Messenger
- Implement logger trait for messenger utilities
- Add onion messenger
- Advertise onion messaging feature bit upon startup
- Test advertising of onion bit
- Add messenger events and consumer
- Run onion messenger events loop and init with online peers
- Implement peer events producer to supply messenger events
- Implement PeerEventProducer for LND's peer events stream
- Consume peer events from LND's subscription API
- Remove unnecessary info clone
- Small logging fixups
- Exit with error on bad args, don't panic
- Buffer by peers length +1 to prevent panic when we have no peers
- Remove copy trait from MessengerEvents enum
- Add incoming message events to consumer
- Add producer for incoming messages
- Implement IncomingMessageProducer trait for LND's grpc api
- Consume message events from LND's API
- Change name of messages_exit_sender to clarify that it's for incoming messages
- Add local CurrentPeers map to keep up-to-date track of peers to send outgoing onion messages to
- Alter testing pubkey function to generate a random key
- Update logs to match the outlined standards
- Add producer and consumer for processing outgoing onion messages
- Spin up outgoing message producer in a new task
- Send one outgoing message per peer rather than all at once
- Fail if LND does not support onion messages
Maintainers
- Update cosign key pair generation
Multi
- Make internal peers map private and surface via method
- Remove onion_support from peer_connected
- Add test utils with deterministic pubkey generation
- Rename current peers to TokenLimiter
- Add rate limiter trait implemented by TokenLimiter
- Add clock module for handling of time, implement with tokio
- Add rate limiting to current peers tracker
- Move lnd client setup and feature checks into lnd module
- Move LndNodeSigner into lnd module
- Move messenger utilities into onion_message module
- Move onion messenger into module
Multi/refactor
- Move CurrentPeers into its own module
Onion_messenger
- Fixup and update documentation
Onion_messenger/docs
- Update MessengerUtilities docs
Readme
- Update to require dev build tag and custom messaging workaround
- Move architecture to bottom of initial resource list
- Update links to org
- Add high level description of project and milestones
- Update github link to org
Workflows
- Remove frozen tag from cargo test
Install lndk 0.0.1
Install prebuilt binaries via shell script
# WARNING: this installer is experimental
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/lndk-org/lndk/releases/download/v0.0.1/lndk-v0.0.1-installer.sh | sh
Download lndk 0.0.1
target | kind | download |
---|---|---|
aarch64-apple-darwin | tarball | lndk-v0.0.1-aarch64-apple-darwin.tar.xz |
x86_64-apple-darwin | tarball | lndk-v0.0.1-x86_64-apple-darwin.tar.xz |
x86_64-pc-windows-msvc | tarball | lndk-v0.0.1-x86_64-pc-windows-msvc.zip |
x86_64-unknown-linux-gnu | tarball | lndk-v0.0.1-x86_64-unknown-linux-gnu.tar.xz |