{"id":14966270,"url":"https://github.com/verse-lab/toychain","last_synced_at":"2025-06-25T08:36:35.106Z","repository":{"id":68040025,"uuid":"97869050","full_name":"verse-lab/toychain","owner":"verse-lab","description":"A minimalistic blockchain consensus implemented and verified in Coq","archived":false,"fork":false,"pushed_at":"2020-04-13T04:13:13.000Z","size":650,"stargazers_count":111,"open_issues_count":1,"forks_count":12,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-04-07T07:36:59.112Z","etag":null,"topics":["blockchain","consensus","coq","distributed-systems"],"latest_commit_sha":null,"homepage":"","language":"Coq","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/verse-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-20T18:59:58.000Z","updated_at":"2024-10-01T10:50:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"d69e303c-f2f9-4ce6-ace5-0fe2b36b119c","html_url":"https://github.com/verse-lab/toychain","commit_stats":{"total_commits":400,"total_committers":7,"mean_commits":"57.142857142857146","dds":0.565,"last_synced_commit":"76737e3b1abf7dd85f0dfc32c08920151bce016d"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/verse-lab/toychain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verse-lab%2Ftoychain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verse-lab%2Ftoychain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verse-lab%2Ftoychain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verse-lab%2Ftoychain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/verse-lab","download_url":"https://codeload.github.com/verse-lab/toychain/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verse-lab%2Ftoychain/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261836694,"owners_count":23217279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","consensus","coq","distributed-systems"],"created_at":"2024-09-24T13:36:07.921Z","updated_at":"2025-06-25T08:36:35.070Z","avatar_url":"https://github.com/verse-lab.png","language":"Coq","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Toychain\n\n[![Build Status](https://travis-ci.org/certichain/toychain.svg?branch=master)](https://travis-ci.org/certichain/toychain)\n[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://raw.githubusercontent.com/certichain/toychain/master/LICENSE)\n[![DOI](https://zenodo.org/badge/97869050.svg)](https://zenodo.org/badge/latestdoi/97869050)\n\nA Coq implementation of a minimalistic blockchain-based consensus protocol.\n\n## Building the Project\n\n### Requirements\n\nCoq definitions and proofs:\n\n* [Coq 8.9 or later](https://coq.inria.fr)\n* [Mathematical Components](http://math-comp.github.io/math-comp/) (`ssreflect`, 1.10)\n* [FCSL PCM library](https://github.com/imdea-software/fcsl-pcm)\n\nExecutable node:\n\n* [OCaml 4.06.0 or later](https://ocaml.org)\n* [OCamlbuild](https://github.com/ocaml/ocamlbuild)\n* [cryptokit](https://github.com/xavierleroy/cryptokit)\n* [ipaddr](https://github.com/mirage/ocaml-ipaddr)\n\n### Building Definitions and Proofs\n\nWe recommend installing the Coq requirements via [OPAM](https://opam.ocaml.org/doc/Install.html):\n```\nopam repo add coq-released https://coq.inria.fr/opam/released\nopam install coq coq-mathcomp-ssreflect.1.10.0 coq-fcsl-pcm\n```\n\nThen, run `make clean; make` from the root folder. This will build all\nthe libraries and check all the proofs.\n\n### Building an Executable Node\n\nThe additional OCaml dependencies for the executable node can also\nbe installed via OPAM:\n```\nopam install ocamlbuild cryptokit ipaddr\n```\n\nThen, run `make node` from the root folder. This will produce an\nexecutable named `node.native`.\n\n## Project Structure\n\nThe top-level structure consists of the following folders:\n\n* `Structures` - implementations of block forests and chain properties;\n\n* `Systems` - definition of the protocol, its state, and network semantics;\n\n* `Properties` - proved properties of the protocol, e.g., eventual\n  consistency for a clique-like network topology;\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverse-lab%2Ftoychain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fverse-lab%2Ftoychain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverse-lab%2Ftoychain/lists"}