template

package module
v0.0.0-...-6588121 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2018 License: GPL-3.0, LGPL-3.0, AGPL-3.0 Imports: 5 Imported by: 0

README

Go implementation of the Cypherium protocol/service/app

Overview

This repo is the official Go implementation of the Cypherium protocols, services and apps. Cypherium is a highly scalable & permission-less hybrid blockchain platform based on proof-of-work and Byzantine fault tolerance consensus. For more information, see: https://www.cypherium.io

How to run the MVP version of Cypherium locally

To use the code of this package you need to:

  • Install Golang
  • Optional: Set $GOPATH to point to your Go workspace directory
  • Add $(go env GOPATH)/bin to $PATH

TODO

Documentation

You can find more documentation on the wiki: Cypherium

License

Documentation

Index

Constants

View Source
const (
	// ErrorParse indicates an error while parsing the protobuf-file.
	ErrorParse = iota + 4000
)
View Source
const ReadFirstNBlocks = 400

ReadFirstNBlocks specifcy how many blocks in the the BlocksDir it must read (so you only have to copy the first blocks to deterLab)

View Source
const ServiceName = "Template"

ServiceName is used for registration on the onet.

Variables

View Source
var MagicNum = [4]byte{0xF9, 0xBE, 0xB4, 0xD9}

Functions

This section is empty.

Types

type Client

type Client struct {
	*onet.Client
}

Client is a structure to communicate with the template service

func NewClient

func NewClient() *Client

NewClient instantiates a new template.Client

func (*Client) Clock

func (c *Client) Clock(r *onet.Roster) (*ClockReply, error)

Clock chooses one server from the Roster at random. It sends a Clock to it, which is then processed on the server side via the code in the service package.

Clock will return the time in seconds it took to run the protocol.

func (*Client) Count

func (c *Client) Count(si *network.ServerIdentity) (int, error)

Count will return the number of times `Clock` has been called on this service-node.

func (*Client) Send

func (c *Client) Send(r *onet.Roster, transactions []blockchain.STransaction) (*TransReply, error)

Send chooses one server from the Roster at random. It sends a transactions to it, which is then processed on the server side via the code in the service package.

Send will return the result status to run the protocol.

type Clock

type Clock struct {
	Roster *onet.Roster
}

Clock will run the tepmlate-protocol on the roster and return the time spent doing so.

type ClockReply

type ClockReply struct {
	Time     float64
	Children int
}

ClockReply returns the time spent for the protocol-run.

type Count

type Count struct {
}

Count will return how many times the protocol has been run.

type CountReply

type CountReply struct {
	Count int
}

CountReply returns the number of protocol-runs

type TransReply

type TransReply struct {
	Time     float64
	Children int
	Status   int
}

TransReply return the result status.

type Transaction

type Transaction struct {
	Roster   *onet.Roster
	TransMsg []blockchain.STransaction
}

Transaction will run the tepmlate-protocol on the roster and return the result status.

Directories

Path Synopsis
Package accounts implements high level Ethereum account management.
Package accounts implements high level Ethereum account management.
abi
Package abi implements the Ethereum ABI (Application Binary Interface).
Package abi implements the Ethereum ABI (Application Binary Interface).
abi/bind
Package bind generates Ethereum contract Go bindings.
Package bind generates Ethereum contract Go bindings.
keystore
Package keystore implements encrypted storage of secp256k1 private keys.
Package keystore implements encrypted storage of secp256k1 private keys.
usbwallet
Package usbwallet implements support for USB hardware wallets.
Package usbwallet implements support for USB hardware wallets.
usbwallet/internal/trezor
Package trezor contains the wire protocol wrapper in Go.
Package trezor contains the wire protocol wrapper in Go.
* This is a template for creating an app.
* This is a template for creating an app.
Package blockchain is a generated protocol buffer package.
Package blockchain is a generated protocol buffer package.
blkparser
Basically adapation from the file at https://github.com/tsileo/blkparser
Basically adapation from the file at https://github.com/tsileo/blkparser
Package common contains various helper functions.
Package common contains various helper functions.
bitutil
Package bitutil implements fast bitwise operations.
Package bitutil implements fast bitwise operations.
compiler
Package compiler wraps the Solidity compiler executable (solc).
Package compiler wraps the Solidity compiler executable (solc).
hexutil
Package hexutil implements hex encoding with 0x prefix.
Package hexutil implements hex encoding with 0x prefix.
math
Package math provides integer math utilities.
Package math provides integer math utilities.
mclock
package mclock is a wrapper for a monotonic clock source
package mclock is a wrapper for a monotonic clock source
Conode is the main binary for running a Cothority server.
Conode is the main binary for running a Cothority server.
Package core implements the Cypherium consensus protocol.
Package core implements the Cypherium consensus protocol.
CoSi is a scalable protocol for collectively signing messages.
CoSi is a scalable protocol for collectively signing messages.
crypto
Package crypto is a temporary copy of gopkg.in/dedis/crypto.v0/cosi.
Package crypto is a temporary copy of gopkg.in/dedis/crypto.v0/cosi.
protocol
Package cosi implements a round of a Collective Signing protocol.
Package cosi implements a round of a Collective Signing protocol.
simulation command
bn256
Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve.
Package bn256 implements the Optimal Ate pairing over a 256-bit Barreto-Naehrig curve.
bn256/cloudflare
Package bn256 implements a particular bilinear group at the 128-bit security level.
Package bn256 implements a particular bilinear group at the 128-bit security level.
bn256/google
Package bn256 implements a particular bilinear group at the 128-bit security level.
Package bn256 implements a particular bilinear group at the 128-bit security level.
secp256k1
Package secp256k1 wraps the bitcoin secp256k1 C library.
Package secp256k1 wraps the bitcoin secp256k1 C library.
sha3
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202.
Package event deals with subscriptions to real-time events.
Package event deals with subscriptions to real-time events.
filter
Package filter implements event filters.
Package filter implements event filters.
log
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable.
Package log15 provides an opinionated, simple toolkit for best-practice logging that is both human and machine readable.
Go port of Coda Hale's Metrics library
Go port of Coda Hale's Metrics library
exp
Hook go-metrics into expvar on any /debug/metrics request, load all vars from the registry into expvar, and execute regular expvar handler
Hook go-metrics into expvar on any /debug/metrics request, load all vars from the registry into expvar, and execute regular expvar handler
Package stream is a generated protocol buffer package.
Package stream is a generated protocol buffer package.
Package protocol contains an example demonstrating how to write a protocol and a simulation.
Package protocol contains an example demonstrating how to write a protocol and a simulation.
Package rlp implements the RLP serialization format.
Package rlp implements the RLP serialization format.
Package trie implements Merkle Patricia Tries.
Package trie implements Merkle Patricia Tries.
state
Package state provides a caching layer atop the Ethereum state trie.
Package state provides a caching layer atop the Ethereum state trie.
types
Package types contains data types related to Ethereum consensus.
Package types contains data types related to Ethereum consensus.
vm
Package vm implements the Ethereum Virtual Machine.
Package vm implements the Ethereum Virtual Machine.
vm/runtime
Package runtime provides a basic execution model for executing EVM code.
Package runtime provides a basic execution model for executing EVM code.

Jump to

Keyboard shortcuts

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