genesis

package
v0.0.0-...-25a45d7 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultProposalThreshold uint64 = 3
View Source
const ShortHashSuffixBytes = 3

How many bytes to take from the front of the GenesisDoc hash to append to the ChainName to form the ChainID. The idea is to avoid some classes of replay attack between chains with the same name.

Variables

This section is empty.

Functions

func NewDeterministicGenesis

func NewDeterministicGenesis(seed int64) *deterministicGenesis

Generates deterministic pseudo-random genesis state

Types

type Account

type Account struct {
	BasicAccount
	Name        string
	Permissions permission.AccountPermissions
}

func GenesisAccountFromAccount

func GenesisAccountFromAccount(name string, account *acm.Account) Account

func (*Account) Clone

func (genesisAccount *Account) Clone() Account

Clone clones the genesis account

type BasicAccount

type BasicAccount struct {
	// Address  is convenient to have in file for reference, but otherwise ignored since derived from PublicKey
	Address   crypto.Address
	PublicKey crypto.PublicKey
	Amount    uint64
}

func (*BasicAccount) Clone

func (basicAccount *BasicAccount) Clone() BasicAccount

Clone clones the basic account

type GenesisDoc

type GenesisDoc struct {
	GenesisTime       time.Time
	ChainName         string
	Params            params `json:",omitempty" toml:",omitempty"`
	Salt              []byte `json:",omitempty" toml:",omitempty"`
	GlobalPermissions permission.AccountPermissions
	Accounts          []Account
	Validators        []Validator
}

func GenesisDocFromJSON

func GenesisDocFromJSON(jsonBlob []byte) (*GenesisDoc, error)

func MakeGenesisDocFromAccounts

func MakeGenesisDocFromAccounts(chainName string, salt []byte, genesisTime time.Time, accounts map[string]*acm.Account,
	validators map[string]validator.Validator) *GenesisDoc

MakeGenesisDocFromAccounts takes a chainName and a slice of pointers to Account, and a slice of pointers to Validator to construct a GenesisDoc, or returns an error on failure. In particular MakeGenesisDocFromAccount uses the local time as a timestamp for the GenesisDoc.

func (*GenesisDoc) ChainID

func (genesisDoc *GenesisDoc) ChainID() string

func (*GenesisDoc) Hash

func (genesisDoc *GenesisDoc) Hash() []byte

func (*GenesisDoc) JSONBytes

func (genesisDoc *GenesisDoc) JSONBytes() ([]byte, error)

JSONBytes returns the JSON canonical bytes for a given GenesisDoc or an error.

func (*GenesisDoc) JSONString

func (genesisDoc *GenesisDoc) JSONString() string

func (*GenesisDoc) ShortHash

func (genesisDoc *GenesisDoc) ShortHash() []byte

type Validator

type Validator struct {
	BasicAccount
	NodeAddress *crypto.Address `json:",omitempty" toml:",omitempty" yaml:",omitempty"`
	Name        string
	UnbondTo    []BasicAccount
}

func (*Validator) Clone

func (gv *Validator) Clone() Validator

Clone clones the genesis validator

func (*Validator) Validator

func (gv *Validator) Validator() validator.Validator

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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