hyperdrive

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2019 License: GPL-3.0 Imports: 7 Imported by: 0

README

Hyperdrive

CircleCI Go Report Coverage Status

A Byzantine fault tolerant consensus algorithm for secure multiparty computation protocols. Inspired by Tendermint.

Built with ❤ by Ren.

Documentation

Index

Constants

View Source
const NumHistoricalShards = 3

NumHistoricalShards specifies the number of historical shards allowed.

Variables

This section is empty.

Functions

This section is empty.

Types

type Hyperdrive

type Hyperdrive interface {
	Sync(shardHash sig.Hash, commit block.Commit) bool

	AcceptTick(t time.Time)
	AcceptPropose(shardHash sig.Hash, proposed block.SignedPropose)
	AcceptPreVote(shardHash sig.Hash, preVote block.SignedPreVote)
	AcceptPreCommit(shardHash sig.Hash, preCommit block.SignedPreCommit)

	BeginShard(shard, previousShard shard.Shard, head *block.Commit, pool tx.Pool)
	EndShard(shardHash sig.Hash)
	DropShard(shardHash sig.Hash)
}

Hyperdrive accepts blocks and ticks and sends relevant Transitions to the respective replica.

func New

func New(signer sig.SignerVerifier, dispatcher replica.Dispatcher) Hyperdrive

New returns a Hyperdrive.

Directories

Path Synopsis
sig
ecdsa
Package ecdsa provides Sign and Verify capabilities using ECDSA I picked ethereum-go's implementation of ECDSA instead of the built in go libraries since it provides both build in marshaling/unmarshaling for the signature and a way to recover the Public Key from the signature.
Package ecdsa provides Sign and Verify capabilities using ECDSA I picked ethereum-go's implementation of ECDSA instead of the built in go libraries since it provides both build in marshaling/unmarshaling for the signature and a way to recover the Public Key from the signature.
Package state contains the interface TransitionBuffer and its implementation Note: TransitionBuffer is not thread safe `Dequeue` will return the most relevant `Proposed` transition for the given `Height`.
Package state contains the interface TransitionBuffer and its implementation Note: TransitionBuffer is not thread safe `Dequeue` will return the most relevant `Proposed` transition for the given `Height`.

Jump to

Keyboard shortcuts

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