Skip to main content

Election Monitoring Without Manipulation

Ubu-Block provides a transparent, immutable blockchain platform for election results. No single point of failure. No “fungua server” shenanigans. Just verifiable, community-driven election data.

Quick Start

Get up and running with Ubu-Block in minutes

1

Clone and setup the repository

First, clone the repository and set up the initial database files:
git clone https://github.com/koleshjr/ubu-block
cd ubu-block
mkdir data
cp crates/database/sql/empty.db data/blockchain.db
cp crates/database/sql/empty.db data/private.db
2

Initialize the blockchain

Initialize a new blockchain with constituency data:
cargo run init --source setup_constituencies.sql
You should see: INFO ubu_block] Blockchain was successfully initialized!
3

Query the blockchain

Query your blockchain to view data:
cargo run query -q "SELECT COUNT(*) as blocks FROM blockchain"
For submitting results, see the submitting results guide which covers running a submission node.
4

Validate the blockchain

Verify the integrity of your blockchain:
cargo run validate
The validation will confirm all blocks are properly chained and signed.

Key Features

Built for transparency, security, and accessibility

Immutable Records

Append-only blockchain ensures election results cannot be modified, only added

BFT Consensus

Byzantine Fault Tolerant consensus tolerates up to 1/3 malicious nodes

Three Node Types

Submission, Observer, and Verification nodes for robust operations

P2P Networking

Distributed architecture with automatic chain synchronization

Cryptographic Security

ECDSA signatures and Merkle trees for tamper detection

SQLite Storage

Accessible database format that runs anywhere

Ready to ensure election transparency?

Join the community building tamper-proof election monitoring infrastructure for Africa