Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/BP-WG/bp-node
Daemons and tools for Bitcoin transaction index
https://github.com/BP-WG/bp-node
bitcoin lightning-network lnp-bp rust
Last synced: 10 days ago
JSON representation
Daemons and tools for Bitcoin transaction index
- Host: GitHub
- URL: https://github.com/BP-WG/bp-node
- Owner: BP-WG
- License: mit
- Archived: true
- Created: 2020-03-23T09:27:36.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-07-30T15:41:21.000Z (over 2 years ago)
- Last Synced: 2024-08-01T13:21:17.862Z (4 months ago)
- Topics: bitcoin, lightning-network, lnp-bp, rust
- Language: Rust
- Homepage:
- Size: 818 KB
- Stars: 27
- Watchers: 5
- Forks: 11
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-rgb-protocol - BP Node
README
# BP Node
Bitcoin blockchain indexing and notification node. It may be considered electrum
server replacement, which is faster, provides modern API (supporting wallet
descriptors and miniscript, LN-specific queries, client-side-validation tech
like RGB, modern RPC subscribe interfaces with ZMQ etc). In the future it is
planned to upgrade the node into a fully-validating bitcoin node by using
`libbitcoinconsensus` library for validating blocks.The node was originally designed and implemented by
[Dr Maxim Orlovsky](https://github.com/dr-orlovsky) as a part of
[LNP/BP Standards Association](https://github.com/LNP-BP) 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], [Descriptor Wallet],
[Storm Storage] and can be easily integrated with the rest of LNP/BP nodes like
[LNP Node], [RGB Node], [Storm Node].## Node services
The node organized as a set of daemons or threads, interacting via ZMQ-based
API with each other and with RPC clients. It leverages microservice architecture
from [`microservices`] crate.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 `libbitcoinconsensus`)
validating bitcoin blocks, storing them in the database (provided by `stored`
service from [Storm Storage] library). It also connects to bitcoin core node
to monitor the incoming new blocks and through `bpd` node clients when a new
valid block has been parsed.
- `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.
- `signd`: service for signing bitcoin transactions and working with PSBTs. Used
by wallets, lightning node etc.Alongside these services, in the future it is planned to use lightning network
(Bifrost subnetwork) through [LNP Node] to propagate bitcoin blocks in encrypted
form to other BP Nodes (instead of using legacy bitcoin wire protocol).## RPC and client tools
The repository also contains a BP Node RPC library (`bp_rpc` crate in
[`rpc`](./rpc) directory) and command-line tool (`bp-cli` crate in
[`cli`](./cli) directory) for querying/working with the node.[`microservices`]: https://github.com/Internet2-WG/rust-microservices
[BP Core Lib]: https://github.com/BP-WG/bp-core
[Descriptor Wallet]: https://github.com/BP-WG/descriptor-wallet
[Storm Storage]: https://github.com/Storm-WG/storm-stored
[LNP Node]: https://github.com/LNP-WG/lnp-node
[RGB Node]: https://github.com/RGB-WG/rgb-node
[Storm Node]: https://github.com/Storm-WG/storm-node