Version: 0.1.0-rc1
Release Date: December 2025
Codename: "Genesis"
BitCell RC1 is the first release candidate of the BitCell blockchain platform, featuring a complete implementation of the core consensus mechanism, cryptographic primitives, and networking infrastructure. This release represents a significant milestone in the development of a blockchain system that combines cellular automata-based mining with zero-knowledge proof verification.
- Implemented Verifiable Random Function (VRF) for fair block proposer selection
- Proper VRF chaining using previous block's VRF output as input
- Cryptographic verification of VRF proofs in block validation
- Deterministic yet unpredictable proposer selection
- Bitcoin-style block reward halving mechanism
- Initial reward: 50 CELL
- Halving interval: 210,000 blocks
- Maximum halvings: 64 (defined in
MAX_HALVINGSconstant)
credit_accountmethod with overflow protection usingchecked_add- Centralized economic constants in
bitcell-economics/src/constants.rs
- Groth16 proof generation and verification using arkworks
- Non-equality constraint enforcement (
old_root != new_root) viadiff * inv = 1 - Circuit setup returns
Resultinstead of panicking - Public inputs: old state root, new state root, nullifier
- Conway's Game of Life evolution verification
- Cell position and state constraints
- Winner determination constraints
MerklePathGadgetfor R1CS inclusion proofs- Configurable tree depth (default: 32 levels = 2^32 leaves)
- Algebraic hash function H(a,b) = a*(b+1) + b^2 with documented security properties
- Collision resistance and one-wayness within R1CS context
- Efficient constraint generation (~5 constraints per tree level)
- Test coverage for various tree depths including collision resistance tests
- Decentralized block and transaction broadcasting
- Topic-based message propagation
- Peer discovery via mDNS
- Kademlia DHT for peer discovery
- Consistent logging with
tracingcrate - Error handling for channel failures
- Message sent/received counters
- Peer connection tracking
- Trust score aggregation
- Persistent storage for blocks, headers, accounts, bonds
- Column family organization for efficient queries
- State root tracking by height
prune_old_blocks_productionmethod with:- Atomic batch writes
- Optional archiving to cold storage
- Associated data cleanup (transactions, state roots)
- Database compaction after pruning
- Detailed
PruningStatsreturn value
| Method | Description |
|---|---|
eth_blockNumber |
Get current block height |
eth_getBlockByNumber |
Get block by height |
eth_getTransactionByHash |
O(1) transaction lookup via hash index |
eth_sendRawTransaction |
Submit signed transaction |
eth_getTransactionCount |
Get account nonce |
eth_gasPrice |
Get current gas price (default: 1 Gwei) |
bitcell_getNodeInfo |
Get node ID, version, type |
bitcell_getTournamentState |
Get tournament status |
bitcell_getBattleReplay |
Get battle replay data |
bitcell_getPendingBlockInfo |
Get pending block information |
- System metrics endpoint (
/api/metrics/system)- CPU usage (average across cores)
- Memory usage (MB)
- Disk usage (MB)
- Process uptime
- Transaction sending (NOT_IMPLEMENTED - security review pending)
- Balance display and refresh
- Address QR code generation
- Transaction history
- Tournament visualization
- RPC connection status indicator
get_balance- Query account balanceget_transaction_count- Query account noncesend_raw_transaction- Submit transactionsget_gas_price- Query fee estimationget_tournament_state- Query tournament data
StateCircuit::setup()now returnsResult<(ProvingKey, VerifyingKey), Error>BattleCircuit::setup()now returnsResult<(ProvingKey, VerifyingKey), Error>- Removed
Serialize/Deserializederives from circuit structs (incompatible withOption<Fr>) credit_accountnow returnsResult<Hash256, Error>instead ofHash256
bitcell-networkcrate deprecated (see deprecation notice)- Production networking in
bitcell-node/src/network.rs - DHT implementation in
bitcell-node/src/dht.rs
- Production networking in
- Lock poisoning recovery with proper
tracing::error!logging - Storage errors logged instead of silently ignored
- Transaction nonce validation allows new accounts (nonce 0)
- Address format validation in RPC endpoints
- Transaction signature verification
- Balance overflow protection
- Gas bounds validation - Max gas price (10,000 Gwei) and gas limit (30M) to prevent overflow attacks
- Transactions from new accounts require non-zero gas price and limit
- Upper bounds on gas values prevent resource exhaustion
- Signature verification prevents random spam
- Private key transaction signing is disabled by default
- Requires explicit
insecure-tx-signingfeature flag to enable - Clear warnings about production use and secure alternatives
- Endpoint returns
NOT_IMPLEMENTEDwhen feature is disabled
- VRF proof generation now holds the blocks read lock
- Prevents race conditions between reading VRF input and using it
- Ensures consistency in block production
- Replaced all
println!/eprintln!withtracing::{info,debug,error} - Structured logging for better filtering and analysis
- Full public key logging for debugging storage issues
- O(1) transaction lookup via
HashMap<Hash256, TxLocation>index - Replaces O(n*m) linear scan of blocks
- Static
EMPTY_BLOOM_FILTERconstant (avoids per-request allocation) - Real block size calculation via
bincode
- 26+ tests passing across all crates
- ZKP circuit tests (state, battle, merkle)
- Storage tests (creation, header storage, pruning)
- Network tests (peer management)
- RPC client tests (serialization, parsing)
# Run all tests
cargo test
# Run specific crate tests
cargo test -p bitcell-node
cargo test -p bitcell-zkp
cargo test -p bitcell-state- Admin Wallet Transaction Signing - Disabled by default via feature flag for security
- Enable with
--features insecure-tx-signing(testing only) - Production use requires HSM or hardware wallet integration
- Enable with
- Wallet GUI Transaction Sending - Displays "coming soon" message
- Full Poseidon Hash - Current algebraic hash is secure for R1CS but Poseidon recommended for maximum security
- None critical in RC1
- Linux (primary)
- macOS (tested)
- Windows (experimental)
-
Update Circuit Calls
// Before let (pk, vk) = StateCircuit::setup(); // After let (pk, vk) = StateCircuit::setup()?;
-
Update credit_account Calls
// Before state_manager.credit_account(pubkey, amount); // After state_manager.credit_account(pubkey, amount)?;
-
Update Logging
// Before println!("Info: {}", msg); eprintln!("Error: {}", err); // After tracing::info!("Info: {}", msg); tracing::error!("Error: {}", err);
| Crate | Version | Purpose |
|---|---|---|
| ark-groth16 | 0.4.0 | Groth16 proofs |
| ark-bn254 | 0.4.0 | BN254 curve |
| libp2p | 0.53.2 | P2P networking |
| rocksdb | 0.22.0 | Storage backend |
| tokio | 1.x | Async runtime |
| axum | 0.7.x | HTTP server |
| sysinfo | 0.30.x | System metrics |
- Core Development Team
- Community Contributors
MIT License - See LICENSE file for details.
- Implement full Poseidon hash for production Merkle verification
- Enable wallet GUI transaction sending with hardware wallet support
- Add HSM/secure key management integration for admin wallet
- Performance benchmarking and optimization
- Third-party security audit
- Testnet deployment with monitoring
Please report issues and feedback via GitHub Issues: https://github.com/Steake/BitCell/issues