Bitcoin. Every language. From scratch.

10 full node implementations. 10 languages. Zero forks of Bitcoin Core. Every node syncs the real Bitcoin network, passing all 1,222 consensus test vectors.

10
Languages
Rust, Go, TypeScript, Erlang, OCaml, Zig, Haskell, Lua, Nim, Python
7/10
Synced on Testnet4
Full chain validation from genesis
12,172
Script tests passing
Bitcoin Core consensus vectors
543k
Lines of code
Zero shared between implementations
0
Forks of Bitcoin Core
Every line written from scratch
Flagship Project

Ouroboros

Hybrid Bitcoin full node in Rust + Python

A high-performance Bitcoin full node combining Rust for the hot path and Python for scripting and extensibility. Features block sync, validation, and a full script interpreter.

terminal
$ git clone https://github.com/hashhog/ouroboros.git
$ cd ouroboros
$ cargo build --release
$ ./target/release/ouroboros --network=testnet4
Syncing blocks from mainnet peers...

What goes into a full node?

Every implementation covers the same foundational components that make Bitcoin work.

P2P Networking

Peer discovery, connection management, and message relay

Block Validation

Consensus rules, proof-of-work verification, script execution

UTXO Set

Unspent transaction output database and chain state tracking

Mempool

Unconfirmed transaction pool with fee-rate ordering

RPC Server

JSON-RPC API compatible with Bitcoin Core

Wallet

Key management, transaction signing, and HD derivation

Implementation matrix

How each implementation stacks up across core Bitcoin node features.

Feature Ouroboros Rust Rustoshi Rust Blockbrew Go Hotbuns TypeScript Beamchain Erlang Camlcoin OCaml Clearbit Zig Haskoin Haskell Lunarblock Lua Nimrod Nim
Wire serialization
Cryptographic primitives
Script interpreter
P2P networking
Block validation
UTXO set management
Header sync
Block sync (IBD)
Mempool
RPC server
Wallet
Mining/block templates
Script test vectors
Testnet4 sync

Want to contribute?

Every implementation is open source. Pick a language. Pick a feature. Start building.