Documentation ¶
Index ¶
- Constants
- Variables
- func NewDeterministicGenesis(seed int64) *deterministicGenesis
- func PermissionsAccount(globalPerms permission.AccountPermissions) *acm.Account
- type Account
- type BasicAccount
- type GenesisDoc
- func (genesisDoc *GenesisDoc) GetChainID() string
- func (genesisDoc *GenesisDoc) GlobalPermissionsAccount() *acm.Account
- func (genesisDoc *GenesisDoc) Hash() []byte
- func (genesisDoc *GenesisDoc) JSONBytes() ([]byte, error)
- func (genesisDoc *GenesisDoc) JSONString() string
- func (genesisDoc *GenesisDoc) ShortHash() []byte
- type Validator
Constants ¶
View Source
const DefaultProposalThreshold uint64 = 1
View Source
const ShortHashSuffixBytes = 0
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 ¶
View Source
var DefaultPermissionsAccount = PermissionsAccount(permission.DefaultAccountPermissions)
Functions ¶
func NewDeterministicGenesis ¶
func NewDeterministicGenesis(seed int64) *deterministicGenesis
Generates deterministic pseudo-random genesis state
func PermissionsAccount ¶
func PermissionsAccount(globalPerms permission.AccountPermissions) *acm.Account
Types ¶
type Account ¶
type Account struct { BasicAccount Name string Permissions permission.AccountPermissions }
func (*Account) AcmAccount ¶
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 // Ordinarily we derive this from the genesis hash but to support explicit Ethereum ChainID it may be set ChainID string `json:",omitempty" toml:",omitempty"` AppHash binary.HexBytes `json:",omitempty" toml:",omitempty"` Params params `json:",omitempty" toml:",omitempty"` Salt []byte `json:",omitempty" toml:",omitempty"` GlobalPermissions permission.AccountPermissions Accounts []Account Validators []Validator // contains filtered or unexported fields }
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) GetChainID ¶
func (genesisDoc *GenesisDoc) GetChainID() string
func (*GenesisDoc) GlobalPermissionsAccount ¶
func (genesisDoc *GenesisDoc) GlobalPermissionsAccount() *acm.Account
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
Click to show internal directories.
Click to hide internal directories.