All Projects → certichain → toychain

certichain / toychain

Licence: BSD-2-Clause license
A minimalistic blockchain consensus implemented and verified in Coq

Programming Languages

Coq
218 projects
ocaml
1615 projects

Projects that are alternatives of or similar to toychain

Verdi Raft
An implementation of the Raft distributed consensus protocol, verified in Coq using the Verdi framework
Stars: ✭ 143 (+38.83%)
Mutual labels:  coq, consensus
coq-to-ocaml-to-js
Proof of concept to generate safe and fast JavaScript
Stars: ✭ 25 (-75.73%)
Mutual labels:  coq
Quickchick
Randomized Property-Based Testing Plugin for Coq
Stars: ✭ 188 (+82.52%)
Mutual labels:  coq
corn
Coq Repository at Nijmegen [maintainers=@spitters,@VincentSe]
Stars: ✭ 106 (+2.91%)
Mutual labels:  coq
Coqgym
A Learning Environment for Theorem Proving with the Coq proof assistant
Stars: ✭ 201 (+95.15%)
Mutual labels:  coq
raft-badger
Badger-based backend for Hashicorp's raft package
Stars: ✭ 27 (-73.79%)
Mutual labels:  consensus
Coq Chick Blog
🐣 A blog engine written and proven in Coq
Stars: ✭ 173 (+67.96%)
Mutual labels:  coq
vrrm
rough code for running consensus
Stars: ✭ 18 (-82.52%)
Mutual labels:  consensus
openraft
rust raft with improvements
Stars: ✭ 826 (+701.94%)
Mutual labels:  consensus
kcoin
A stable cryptocurrency that algorithmically targets $1 USD using the Kowala Protocol
Stars: ✭ 17 (-83.5%)
Mutual labels:  consensus
yeast-GEM
The consensus GEM for Saccharomyces cerevisiae
Stars: ✭ 72 (-30.1%)
Mutual labels:  consensus
Fscq
FSCQ is a certified file system written and proven in Coq
Stars: ✭ 208 (+101.94%)
Mutual labels:  coq
WasmCert-Coq
A mechanisation of Wasm in Coq
Stars: ✭ 68 (-33.98%)
Mutual labels:  coq
Metacoq
Metaprogramming in Coq
Stars: ✭ 192 (+86.41%)
Mutual labels:  coq
coq-100-theorems
Statements of famous theorems proven in Coq [maintainer=@jmadiot]
Stars: ✭ 41 (-60.19%)
Mutual labels:  coq
Jscert
A Coq specification of ECMAScript 5 (JavaScript) with verified reference interpreter
Stars: ✭ 186 (+80.58%)
Mutual labels:  coq
Vellvm
The Vellvm (Verified LLVM) coq development.
Stars: ✭ 243 (+135.92%)
Mutual labels:  coq
goose
Goose converts a small subset of Go to Coq
Stars: ✭ 73 (-29.13%)
Mutual labels:  coq
paxos-rs
Paxos implementation in Rust
Stars: ✭ 66 (-35.92%)
Mutual labels:  consensus
coq-elpi
Coq plugin embedding elpi
Stars: ✭ 92 (-10.68%)
Mutual labels:  coq

Toychain

Build Status License DOI

A Coq implementation of a minimalistic blockchain-based consensus protocol.

Building the Project

Requirements

Coq definitions and proofs:

Executable node:

Building Definitions and Proofs

We recommend installing the Coq requirements via OPAM:

opam repo add coq-released https://coq.inria.fr/opam/released
opam install coq coq-mathcomp-ssreflect.1.10.0 coq-fcsl-pcm

Then, run make clean; make from the root folder. This will build all the libraries and check all the proofs.

Building an Executable Node

The additional OCaml dependencies for the executable node can also be installed via OPAM:

opam install ocamlbuild cryptokit ipaddr

Then, run make node from the root folder. This will produce an executable named node.native.

Project Structure

The top-level structure consists of the following folders:

  • Structures - implementations of block forests and chain properties;

  • Systems - definition of the protocol, its state, and network semantics;

  • Properties - proved properties of the protocol, e.g., eventual consistency for a clique-like network topology;

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].