Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Ethereum
  3. CBC Wiki

CBC Wiki

AGPL-3.0Pythonv0.3.1

A Python implementation of correct-by-construction consensus protocols, including Casper the Friendly Ghost for blockchain.

GitHubGitHub
230 stars42 forks0 contributors

What is CBC Wiki?

Casper CBC is a Python implementation of correct-by-construction consensus protocols, including Casper the Friendly Ghost for blockchain consensus. It provides a simulation framework for experimenting with these protocols, which are designed to achieve safety and liveness in distributed systems with Byzantine faults.

Target Audience

Researchers and developers working on distributed systems, blockchain consensus, or Byzantine fault tolerance who need a flexible tool for protocol simulation and analysis.

Value Proposition

It offers a practical, open-source implementation of cutting-edge CBC consensus protocols from Ethereum research, with configurable simulations and visualizations to understand protocol behavior without deploying a full network.

Overview

Casper CBC is a Python implementation of a class of 'correct-by-construction' (CBC) consensus protocols, which includes Casper the Friendly Ghost for blockchain consensus and Casper the Friendly Binary Consensus Protocol. It provides a framework for simulating and experimenting with these protocols, which are designed to achieve safety and liveness guarantees in distributed systems.

Key Features

  • Casper the Friendly Ghost — A blockchain consensus protocol implementation for achieving Byzantine fault tolerance.
  • Casper the Friendly Binary Consensus — A protocol for binary consensus problems in distributed systems.
  • Multiple Protocol Simulations — Supports simulations for binary, blockchain, concurrent, integer, order, and sharding consensus protocols.
  • Configurable Message Passing Modes — Includes 'rand' (random), 'rrob' (round-robin), and 'full' (all-to-all) propagation modes for experimentation.
  • Visualization Tools — Generates graphs and GIFs of simulation results to analyze protocol behavior.

Philosophy

The project emphasizes a correct-by-construction approach to consensus protocol design, ensuring safety properties are inherently guaranteed through the protocol's structure rather than added as an afterthought.

Use Cases

Best For

  • Simulating blockchain consensus protocols like Casper the Friendly Ghost
  • Researching correct-by-construction consensus mechanisms
  • Experimenting with Byzantine fault tolerance in distributed systems
  • Analyzing message propagation modes in consensus protocols
  • Educational purposes for understanding distributed consensus
  • Prototyping new consensus protocols based on CBC principles

Not Ideal For

  • Teams building production blockchains that need stable, production-ready consensus algorithms
  • Developers seeking a complete, out-of-the-box blockchain framework for immediate deployment
  • Projects requiring extensive documentation, tutorials, or community support for quick adoption
  • Educational settings prioritizing simplicity and step-by-step guides over research-oriented tools

Pros & Cons

Pros

Multiple Protocol Simulations

Supports binary, blockchain, concurrent, integer, order, and sharding consensus types, allowing diverse experimentation without rewriting code, as shown in the make run commands.

Configurable Message Passing

Offers rand, rrob, and full propagation modes to model different network behaviors, enabling detailed analysis of protocol dynamics under various conditions.

Integrated Visualization Tools

Automatically generates graphs and GIFs of simulation results saved in graphs/, helping researchers visually analyze consensus behavior without extra setup.

Research-Driven Implementation

Based on Ethereum's correct-by-construction consensus papers, providing a practical, open-source tool for cutting-edge protocol experimentation and validation.

Cons

Codebase Instability

Explicitly warned as pre v1.0 with significant breaking changes expected, making it unreliable for long-term or production use, as stated in the README warning.

Sparse and Evolving Documentation

Specs are moving targets and deviate from implementation, with key sections like 'Write Simulations' marked 'COMING SOON', hindering advanced or independent usage.

Complex Setup Requirements

Requires specific OS dependencies (e.g., python3-dev on Ubuntu) and makefile usage, which can be a barrier for users on non-supported platforms or those new to Python environments.

Frequently Asked Questions

Quick Stats

Stars230
Forks42
Contributors0
Open Issues19
Last commit7 years ago
CreatedSince 2017

Tags

#simulation#distributed-systems#python#protocol-implementation#byzantine-fault-tolerance#consensus-protocol

Built With

P
Python

Included in

Ethereum357
Auto-fetched 1 day ago

Related Projects

Web3.jsWeb3.js

Collection of comprehensive TypeScript libraries for Interaction with the Ethereum JSON RPC API and utility functions.

Stars19,936
Forks5,106
Last commit1 year ago
CBC Research PaperCBC Research Paper

This repository serves as a collection of code related to specific Ethereum research questions, primarily authored by Vitalik Buterin. It focuses on practical implementations and explorations rather than being a general repository for academic papers. The repository includes a dedicated `papers` folder containing LaTeX files for various academic publications. ## Key Features - **Research Code** — Implementation code for specific Ethereum research questions and experiments - **Academic Papers** — LaTeX source files for published academic papers in the Ethereum domain - **Vitalik Buterin's Work** — Primary repository for research code written by Ethereum's co-founder - **MIT Licensed** — Open source code available under the permissive MIT license ## Philosophy The repository is maintained as-is without active support, focusing on sharing research implementations and academic paper sources rather than providing production-ready tools or ongoing maintenance.

Stars1,928
Forks404
Last commit7 months ago
Code RepositoryCode Repository

Casper contract, and related software and tests

Stars687
Forks170
Last commit4 years ago
A practical beginner's guide to creating, proving, and verifying zkSNARKsA practical beginner's guide to creating, proving, and verifying zkSNARKs

zkSNARKS tutorial

Stars297
Forks54
Last commit7 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub