Skip to content

spec: Add implementation specification for ldk-lcp-node - #16

Closed
YusukeShimizu wants to merge 3 commits into
mainfrom
ldk
Closed

spec: Add implementation specification for ldk-lcp-node#16
YusukeShimizu wants to merge 3 commits into
mainfrom
ldk

Conversation

@YusukeShimizu

Copy link
Copy Markdown
Owner

No description provided.

- Document the architecture and design of the ldk-lcp-node.
- Outline security constraints, concepts, and operational principles.
- Define primary external interfaces and synchronization flows.
- Establish clear guidelines for node configuration and state management.
- Delete the LNDAdapter code as it is no longer needed.
- Update related imports and references to use the new
  lightningnode package.
- Refactor code to accommodate the new gRPC service
  definitions and messaging structure.

requesterjobstore: Improve test readability

- Format JSON request strings for better readability in tests.

requesterwait: Refactor message handling

- Change lndpeermsg to peermsg in Waiter to align with new
  messaging structure.
- Improve error handling and readability in stream handling.

itest: Enhance test code formatting

- Improve readability of test code by formatting long lines
  and breaking them into multiple lines.

proto: Add lnnode service definition

- Introduce lnnode.proto defining the LightningNodeService
  with various RPC methods for node operations.

tools: Update lcpd-grpcd to use new messaging structure

- Refactor lcpd-grpcd to utilize the new peermsg package
  and update related configurations.

plans: Update progress on LDK integration

- Reflect progress on the LDK node MVP and update the
  plan with recent changes and next steps.
- Implement `load_or_generate_seed` to read a seed from a file
  or generate a new one if it doesn't exist.
- Ensure the seed length is validated before use.

store: Add atomic file read and write operations

- Implement `read_optional` to read files safely, returning None
  if the file does not exist.
- Implement `write_atomic` to write data to a file atomically,
  ensuring data integrity.

wallet: Implement on-chain wallet functionality

- Add `OnchainWallet` struct to manage wallet operations.
- Implement methods for syncing with Esplora, creating addresses,
  checking balances, and sending transactions.
- Introduce idempotency key handling for transaction management.

flake: Update flake.nix for development environment

- Add `nigiri` as a dependency for Bitcoin development.
- Create a development shell for `ldk-lcp-node` with necessary
  packages and environment variables.

docs: Update MVP plan with recent progress

- Reflect the addition of LDK runtime and Esplora chain sync.
- Document regtest smoke test procedures and RGS implementation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant