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) ChainID() 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 = 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 ¶
View Source
var DefaultPermissionsAccount = PermissionsAccount(permission.DefaultAccountPermissions)
Functions ¶
func NewDeterministicGenesis ¶ added in v0.18.0
func NewDeterministicGenesis(seed int64) *deterministicGenesis
Generates deterministic pseudo-random genesis state
func PermissionsAccount ¶ added in v0.28.0
func PermissionsAccount(globalPerms permission.AccountPermissions) *acm.Account
Types ¶
type Account ¶ added in v0.18.0
type Account struct { BasicAccount Name string Permissions permission.AccountPermissions }
func GenesisAccountFromAccount ¶ added in v0.18.0
func (*Account) AcmAccount ¶ added in v0.24.0
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 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) ChainID ¶
func (genesisDoc *GenesisDoc) ChainID() string
func (*GenesisDoc) GlobalPermissionsAccount ¶ added in v0.28.0
func (genesisDoc *GenesisDoc) GlobalPermissionsAccount() *acm.Account
func (*GenesisDoc) Hash ¶ added in v0.18.0
func (genesisDoc *GenesisDoc) Hash() []byte
func (*GenesisDoc) JSONBytes ¶ added in v0.18.0
func (genesisDoc *GenesisDoc) JSONBytes() ([]byte, error)
JSONBytes returns the JSON canonical bytes for a given GenesisDoc or an error.
func (*GenesisDoc) JSONString ¶ added in v0.20.0
func (genesisDoc *GenesisDoc) JSONString() string
func (*GenesisDoc) ShortHash ¶ added in v0.18.0
func (genesisDoc *GenesisDoc) ShortHash() []byte
type Validator ¶ added in v0.18.0
type Validator struct { BasicAccount Name string UnbondTo []BasicAccount }
Click to show internal directories.
Click to hide internal directories.