A Bitcoin full node written in Rust, with a relational archive instead of a UTXO set and Electrum serving built in.
gosuda/bitcoin-rs
An independent Bitcoin full node written in Rust, with Core-compatible P2P and RPC interfaces and embeddable node components.
- Stars
- 58
- Forks
- 6
- Open issues
- 24
- Last commit
- 2 days ago
What is it?
bitcoin-rs is a Bitcoin full-node daemon and a Rust workspace that can be embedded in other applications. It owns chainstate, storage, block sync, mempool, mining templates and external servers itself, while building on the rust-bitcoin library crates for low-level primitives.
The node exposes Core-compatible P2P, JSON-RPC, REST, ZMQ and Esplora HTTP interfaces. Its indexes (txindex, blockfilterindex and scriptindex) back the Esplora API and descriptor and PSBT helpers, and wallet keys stay outside the node. Script verification uses a native Rust interpreter by default, with an optional libbitcoinkernel backend behind a feature flag.
The project is built from source; no release binaries are published. Its compatibility is tested against Bitcoin Core 31.1 on regtest, and the README makes no production or mainnet readiness claims.
Key features
- 01Core-compatible P2P networking with BIP324 v2 transport and compact blocks
- 02JSON-RPC, REST, ZMQ and Esplora HTTP interfaces
- 03Embeddable Node type that can be started and shut down from Rust code
- 04Built-in txindex, blockfilterindex and scriptindex indexes
- 05Selectable script verification: native Rust interpreter or libbitcoinkernel
Use cases
- Running a regtest node to develop or test Bitcoin applications locally
- Embedding a full node inside a Rust application instead of calling RPC
- Serving Esplora-style APIs for explorers or wallet backends
- Researching alternative node architectures while keeping Core-compatible behavior
Quick start
- 1
Install the Rust toolchain and C/C++ build tools (build-essential on Debian/Ubuntu)
- 2
Clone the repository
git clone https://github.com/gosuda/bitcoin-rs.git - 3
Build the bitcoin-rs binary with the quickstart profile
cargo build --locked --profile quickstart -p bitcoin-rs - 4
Start a local regtest node bound to loopback
./target/quickstart/bitcoin-rs --network regtest --data-dir .bitcoin-rs-regtest --p2p-listen 127.0.0.1:18444 --dns-seeds-enabled=false --rpc-bind 127.0.0.1:18443 --scriptindex=utxo &
Things to know
- No GitHub Release binary is published, so you must build from source.
- The README makes no parity or production-readiness claims, and some features such as wallet RPCs are intentionally unsupported.
- Proactive block announcements still await a retained qualification run.
- BIP352 Silent Payments and the Stratum V2 adapter are experimental.
Topics
FAQ
- What is bitcoin-rs?
- An independent Bitcoin full node written in Rust, with Core-compatible P2P and RPC interfaces and embeddable node components. bitcoin-rs is a Bitcoin full-node daemon and a Rust workspace that can be embedded in other applications. It owns chainstate, storage, block sync, mempool, mining templates and external servers itself, while building on the rust-bitcoin library crates for low-level primitives.
- Is bitcoin-rs free to use? What license does it have?
- bitcoin-rs is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is bitcoin-rs still maintained?
- Actively maintained. The last commit to bitcoin-rs was on Nov 5, 2026.
- What can I use bitcoin-rs for?
- Running a regtest node to develop or test Bitcoin applications locally Embedding a full node inside a Rust application instead of calling RPC Serving Esplora-style APIs for explorers or wallet backends Researching alternative node architectures while keeping Core-compatible behavior
- How do I install bitcoin-rs?
- Install the Rust toolchain and C/C++ build tools (build-essential on Debian/Ubuntu) Clone the repository: git clone https://github.com/gosuda/bitcoin-rs.git Build the bitcoin-rs binary with the quickstart profile: cargo build --locked --profile quickstart -p bitcoin-rs Start a local regtest node bound to loopback: ./target/quickstart/bitcoin-rs --network regtest --data-dir .bitcoin-rs-regtest --p2p-listen 127.0.0.1:18444 --dns-seeds-enabled=false --rpc-bind 127.0.0.1:18443 --scriptindex=utxo &
- Where can I get bitcoin-rs?
- The source code and installation instructions are on GitHub: https://github.com/gosuda/bitcoin-rs
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An alternative full node Bitcoin implementation written in Go that validates and serves the block chain without wallet functionality.
Reference full-node implementation of the Bitcoin protocol, connecting to the peer-to-peer network to validate blocks and transactions.
Go implementation of the Ethereum execution layer, running as a full or archive node with JSON-RPC access and developer tools.
Dash Core is the open-source node and wallet software for the Dash peer-to-peer digital currency, built for instant, private payments.
Rust implementation of the Kaspa full node, plus wallet CLI, WASM SDK and wRPC libraries for the Kaspa blockchain.