A privacy-preserving, censorship-resistant blockchain for decentralized network states.
Logos Blockchain is a core component of the Logos technology stack. It combines zero-knowledge proofs, a mix network for anonymity, and a modular service architecture to provide a foundation for sovereign digital communities.
This node represents the reference implementation of the Logos Blockchain specifications defined in the Logos specifications space.
| Requirement | Details |
|---|---|
| LLVM / Clang | Required for RocksDB and C bindings |
| ZK Circuits | Downloaded via setup script (see below) |
git clone https://github.com/logos-co/logos-blockchain.git
cd logos-blockchainLinux / macOS
./scripts/setup-logos-blockchain-circuits.shCircuits are installed to ~/.logos-blockchain-circuits/ by default.
macOS note: The setup script automatically removes quarantine attributes from downloaded binaries since code-signing is not yet implemented.
Custom version or directory
# Specific version
./scripts/setup-logos-blockchain-circuits.sh v0.4.1
# Custom directory
./scripts/setup-logos-blockchain-circuits.sh v0.4.1 /opt/circuits
export LOGOS_BLOCKCHAIN_CIRCUITS=/opt/circuitsVerify the installation:
cargo test -p logos-blockchain-circuits-prover -p logos-blockchain-circuits-verifiercargo build -p logos-blockchain-node --releaseTo start a local standalone instance of a Logos Blockchain network, run:
target/release/logos-blockchain-node --deployment standalone-deployment-config.yaml nodes/node/standalone-node-config.yamlThe node stores state in the state directory. If you encounter issues on restart, try removing it before starting the node again.
# Build
docker build -t logos-blockchain-node .
# Run (mount your config)
docker run -v "/path/to/node_config.yml:/node_config.yml" -v "/path/to/deployment_config.yml:/deployment_config.yml" logos-blockchain-node --deployment /deployment_config.yml /node_config.ymlNodes are composed declaratively using the Overwatch framework. Each service has a front layer (Overwatch integration) and a back layer (business logic), making components easy to swap:
#[derive_services]
struct MockPoolNode {
logging: Logger,
network: NetworkService<Waku>,
mockpool: MempoolService<WakuAdapter<Tx>, MockPool<TxId, Tx>>,
http: HttpService<AxumBackend>,
bridges: HttpBridgeService,
}The codebase favors generics and static dispatch over dynamic dispatch. This means you'll see generics throughout — the trade-off is compile-time type safety and highly modular, adaptable applications.
logos-blockchain/
├── core/ Core types — blocks, transactions, UTXO notes, proofs
├── consensus/
│ ├── cryptarchia-engine/ Cryptarchia PoS consensus logic
│ └── cryptarchia-sync/ Chain synchronization over libp2p
├── blend/ Blend mix network
│ ├── crypto/ Cryptographic primitives
│ ├── message/ Message types
│ ├── network/ Network layer
│ ├── proofs/ ZK proofs (PoL, PoQ)
│ └── scheduling/ Cover traffic & delay scheduling
├── zk/ Zero-knowledge proof infrastructure
│ ├── groth16/ Groth16 over BN254 (arkworks)
│ ├── poseidon2/ Poseidon2 hash function
│ ├── circuits/ Circuit prover, verifier, witness generator
│ └── proofs/ PoC, PoL, PoQ, ZK signatures
├── ledger/ UTXO-based ledger & state transitions
├── utxotree/ Persistent UTXO commitment tree
├── mmr/ Merkle Mountain Range (header commitments)
├── kms/ Key Management System (Ed25519, X25519, ZK keys)
├── libp2p/ Networking — QUIC, GossipSub, Kademlia, AutoNAT
├── services/ Overwatch services (chain, blend, wallet, API, …)
├── nodes/node/ Node binary — wires everything together
├── wallet/ Wallet logic (UTXO selection, key management)
├── zone-sdk/ SDK for building zone sequencers & indexers
├── c-bindings/ C-compatible dynamic library + header
├── testnet/ Docker Compose testnets, faucet, L2 demo
└── tests/ Integration & Cucumber BDD tests
# Unit tests
cargo test --workspace --exclude logos-blockchain-tests
# Integration tests
cargo build -p logos-blockchain-node --all-targets --features testing
cargo test -p logos-blockchain-testscd testnet
docker compose upSee testnet/README.md for details.
Visit our GitHub releases page to get instructions on how to join our existing devnet deployment!
You can visit the Devnet dashboard to get more info about the current devnet deployment.
cd testnet/l2-sequencer-archival-demo
docker compose up
# Web UI → http://localhost:8200cargo doc --opencargo install cargo-depgraph
cargo depgraph --workspace-only --all-features > deps.dot
# Render with Graphviz
dot -Tsvg deps.dot -o deps.svgOr paste the .dot file into Graphviz Online.
We welcome contributions! Please read our Contributing Guidelines to get started.
Dual-licensed under your choice of: