All Projects → bobg → scp

bobg / scp

Licence: MIT license
Standalone implementation of the Stellar Consensus Protocol.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to scp

stellar
A modular action based Web Framework for Node.js
Stars: ✭ 39 (+14.71%)
Mutual labels:  stellar
paper-wallet
stellar.github.io/paper-wallet/
Stars: ✭ 41 (+20.59%)
Mutual labels:  stellar
boki
Boki: Stateful Serverless Computing with Shared Logs [SOSP '21]
Stars: ✭ 39 (+14.71%)
Mutual labels:  consensus
stellar-rust-sdk
A lightweight SDK for the stellar horizon api. Written in rust.
Stars: ✭ 34 (+0%)
Mutual labels:  stellar
go-cita
A Go implementation of CITA. https://docs.nervos.org/cita
Stars: ✭ 25 (-26.47%)
Mutual labels:  consensus
robotarium-rendezvous-RSSDOA
This repository contains the Matlab source codes (to use in Robotarium platform) of various rendezvous controllers for consensus control in a multi-agent / multi-robot system.
Stars: ✭ 35 (+2.94%)
Mutual labels:  consensus
stellar-js-sdk
Playing with Stellar JavaScript SDK - Stellar Lumens
Stars: ✭ 21 (-38.24%)
Mutual labels:  stellar
paxakos
Rust implementation of Paxos consensus algorithm
Stars: ✭ 79 (+132.35%)
Mutual labels:  consensus
albedo
Security-centric, developer-friendly, easy-to-use delegated signer and keystore for Stellar Network
Stars: ✭ 57 (+67.65%)
Mutual labels:  stellar
metapay-chrome
A Chrome extension wallet for Stellar that simplifies payment.
Stars: ✭ 21 (-38.24%)
Mutual labels:  stellar
bb8
a command line interface to Stellar networks
Stars: ✭ 37 (+8.82%)
Mutual labels:  stellar
toychain
A minimalistic blockchain consensus implemented and verified in Coq
Stars: ✭ 103 (+202.94%)
Mutual labels:  consensus
detailed-plutus-lecture-notes
Initially started as my own personal lecture notes. Slowly, I'm converting this repo into an extremely detailed set of notes to help future pioneers, Cardano devs and anyone with an academic interest in DLTs and Blockchain Consensus Algorithms.
Stars: ✭ 21 (-38.24%)
Mutual labels:  consensus
vrrm
rough code for running consensus
Stars: ✭ 18 (-47.06%)
Mutual labels:  consensus
minority
Ethereum 2.0 node multiplexer between consensus and execution
Stars: ✭ 94 (+176.47%)
Mutual labels:  consensus
openraft
rust raft with improvements
Stars: ✭ 826 (+2329.41%)
Mutual labels:  consensus
kin-sdk-python
Kin SDK for Python
Stars: ✭ 29 (-14.71%)
Mutual labels:  stellar
gttc
Official Go implementation of maro (TTC), A Decentralized and Incentivized Social Networking Protocol
Stars: ✭ 117 (+244.12%)
Mutual labels:  consensus
stellar-turrets
Reference implementation of the Stellar Turrets protocol
Stars: ✭ 32 (-5.88%)
Mutual labels:  stellar
crypto-watcher
Real-time cryptocurrencies prices.
Stars: ✭ 25 (-26.47%)
Mutual labels:  stellar

SCP - A standalone implementation of the Stellar Consensus Protocol

This is an implementation in Go of SCP, the Stellar Consensus Protocol. It allows a leaderless network of participating nodes to reach consensus on proposals.

In an SCP network, time is divided into consecutive slots, each of which produces consensus on a single proposal. In the early stages of a slot, nodes are able to nominate proposals they would like the network to adopt. As the slot progresses, some proposals may be discarded, others may be combined, and by the end, all nodes agree on one. After that, a new slot begins.

In this implementation, proposals are represented by the abstract type Value. Concrete instantiations of this type may include any data that can be serialized and totally ordered. It must also be possible to write a deterministic, commutative Combine operation (reducing two Values to a single one).

A toy demo can be found in cmd/lunch. It takes the name of a TOML file as an argument. The TOML file specifies the network participants and topology. Sample TOML files are in cmd/lunch/toml.

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].