protocols

package
v0.0.0-...-53feb6c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 3, 2016 License: GPL-2.0 Imports: 10 Imported by: 0

README

#Protocols

Byzcoin

XXX Need references. ByzCoin implements the ByzCoin protocols which consists of two CoSi Protocols:

  • One Prepare phase where the block is dispatched and signed amongst the tree.
  • One Commit phase where the previous signature is seen by all the participants and they make a final one out of it. This implicitly implements a Byzantine Fault Tolerant protocol.

PBFT

PBFT is the Practical Fault Tolerant algorithm described in http://pmg.csail.mit.edu/papers/osdi99.pdf . It's a very simple implementation just to compare the performance relative to ByzCoin.

Ntree

Ntree is like ByzCoin but with independant signatures. There is no Collective Signature (CoSi) done. It has been made to compare the perform relative to ByzCoin.

Documentation

Overview

The storage point of all protocols that Cothority can run.

If you want to add a new protocol, chose one of example/channels or example/handlers and copy it to a new directory under protocols. Adjust all names and implement your protocol. You can always test it using the _test.go test.

For simulating your protocol, insert the include-path below, so that the Cothority-framework knows about it. Now you can copy one of simul/runfiles/test_channels.toml, adjust the Simulation-name and change the parameters to your liking. You can run it like any other simulation now:

cd simul
go build
./simul runfiles/test_yourprotocol.toml
matplotlib/plot.py test_data/test_yourprotocol.csv

Don't forget to tell us on the cothority-mailing list about your new protocol!

Directories

Path Synopsis
Package bftcosi store a novel way of scaling BFT for high scale internet applications especially blockchains
Package bftcosi store a novel way of scaling BFT for high scale internet applications especially blockchains
Package byzcoin store a novel way of implementing the Bitcoin protocol using CoSi for signing sidechains.
Package byzcoin store a novel way of implementing the Bitcoin protocol using CoSi for signing sidechains.
blockchain
Bitcoin-blockchain specific functions.
Bitcoin-blockchain specific functions.
blockchain/blkparser
Basically adapation from the file at https://github.com/tsileo/blkparser Copy/paste from the file at https://github.com/tsileo/blkparser Basically adapation from the file at https://github.com/tsileo/blkparser Package blkparser basically is an adaptation from a file at https://github.com/tsileo/blkparser
Basically adapation from the file at https://github.com/tsileo/blkparser Copy/paste from the file at https://github.com/tsileo/blkparser Basically adapation from the file at https://github.com/tsileo/blkparser Package blkparser basically is an adaptation from a file at https://github.com/tsileo/blkparser
pbft
Package pbft is the Practical Byzantine Fault Tolerance algorithm with some simplifications.
Package pbft is the Practical Byzantine Fault Tolerance algorithm with some simplifications.
Package cosi implements a round of a Collective Signing protocol.
Package cosi implements a round of a Collective Signing protocol.
Package example contains simple examples of protocols and simulations that can be used as base for your experiments.
Package example contains simple examples of protocols and simulations that can be used as base for your experiments.
channels
Package example_channels contains an example demonstrating how to write a protocol and a simulation using channels for message communication.
Package example_channels contains an example demonstrating how to write a protocol and a simulation using channels for message communication.
handlers
Package example_handlers contains an example demonstrating how to write a protocol and a simulation using handlers (aka callbacks) for message communication.
Package example_handlers contains an example demonstrating how to write a protocol and a simulation using handlers (aka callbacks) for message communication.
JVSS provides a threshold signing scheme based on Shamir's joint verifiable secret sharing algorithm and Schnorr signatures.
JVSS provides a threshold signing scheme based on Shamir's joint verifiable secret sharing algorithm and Schnorr signatures.
Package manage implements protocols used when setting up and testing a tree.
Package manage implements protocols used when setting up and testing a tree.
Package randhound is a client/server protocol that allows a list of nodes to produce a public random string in an unbiasable and verifiable way given that a threshold of nodes is honest.
Package randhound is a client/server protocol that allows a list of nodes to produce a public random string in an unbiasable and verifiable way given that a threshold of nodes is honest.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL