Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Sovereign bitcoin wallet backend

License

Notifications You must be signed in to change notification settings

ultraviolet-network/bp-node

BP Node

Bitcoin blockchain indexing and wallet notification node. It may be considered electrum server replacement, which is faster, provides modern API (supporting wallet descriptors, LN-specific queries, client-side-validation tech like RGB, modern RPC subscribe interfaces).

The node was originally designed and implemented by Dr Maxim Orlovsky as a part of LNP/BP Standards Association effort for building the foundation for LNP/BP layer 2 and 3 bitcoin application ecosystem. It is based on other LNP/BP projects such as BP Core Lib, BP Standard Lib, BP Wallet Lib and can be easily integrated with the rest of LNP/BP nodes like LNP Node, RGB Node, Storm Node.

In the future it is planned to upgrade the node into a fully-validating bitcoin node by using bitcoinkernel library for validating blocks.

Node services

The node organized as a set of threads, interacting via crossbeam API with each other -- and via Strict RPC with connecting clients. It leverages microservice architecture with I/O Reactor (used instead of async), authentication with self-sovereign identities (SSI) and end-to-end encryption from Cyphernet crates.

The node provides following set of services:

  • bpd: main service providing clients with RPC request/reply API and managing life cycle of the rest of the node services (launching, terminating, brokering inter-service communications).
  • blockd: service parsing and (in the future, using bitcoinkernel) validating bitcoin blocks, storing them in the database.
  • mempoold: manages mempool transactions.
  • walletd: service instantiated for each wallet client. It knows about wallet descriptor, monitors new mempool and mined transactions and notifies subscribed client about their changes.
  • watchd: watchtower service for lightning network and RGB.
  • listend: interface listening to Bitcoin Core or an external indexing service (like Esplora), if one is used.

RPC and client tools

The repository also contains a BP Node RPC library (bp-rpc crate in rpc directory) and command-line tool (bp-cli crate in cli directory) for querying/working with the node.

About

Sovereign bitcoin wallet backend

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages

  • Rust 80.7%
  • Shell 9.7%
  • PowerShell 9.6%

AltStyle によって変換されたページ (->オリジナル) /