Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Default = defaultConfig()
Default contains the default genesis config
Functions ¶
This section is empty.
Types ¶
type Account ¶ added in v0.5.0
type Account struct {
// InitBalanceMap is the address and initial balance mapping before the first block.
InitBalanceMap map[string]string `yaml:"initBalances"`
}
Account contains the configs for account protocol
type Blockchain ¶ added in v0.5.0
type Blockchain struct {
// Timestamp is the timestamp of the genesis block
Timestamp int64
// BlockGasLimit is the total gas limit could be consumed in a block
BlockGasLimit uint64 `yaml:"blockGasLimit"`
// ActionGasLimit is the per action gas limit cap
ActionGasLimit uint64 `yaml:"actionGasLimit"`
// BlockInterval is the interval between two blocks
BlockInterval time.Duration `yaml:"blockInterval"`
// NumSubEpochs is the number of sub epochs in one epoch of block production
NumSubEpochs uint64 `yaml:"numSubEpochs"`
// NumDelegates is the number of delegates that participate into one epoch of block production
NumDelegates uint64 `yaml:"numDelegates"`
// NumCandidateDelegates is the number of candidate delegates, who may be selected as a delegate via roll dpos
NumCandidateDelegates uint64 `yaml:"numCandidateDelegates"`
// TimeBasedRotation is the flag to enable rotating delegates' time slots on a block height
TimeBasedRotation bool `yaml:"timeBasedRotation"`
// PacificBlockHeight is the start height of using the logic of Pacific version
// TODO: PacificBlockHeight is not added into protobuf definition for backward compatibility
PacificBlockHeight uint64 `yaml:"pacificHeight"`
// AleutianBlockHeight is the start height of adding bloom filter of all events into block header
AleutianBlockHeight uint64 `yaml:"aleutianHeight"`
// BeringBlockHeight is the start height of reducing block interval to 5 seconds
BeringBlockHeight uint64 `yaml:"beringHeight"`
}
Blockchain contains blockchain level configs
type Delegate ¶ added in v0.5.0
type Delegate struct {
// OperatorAddrStr is the address who will operate the node
OperatorAddrStr string `yaml:"operatorAddr"`
// RewardAddrStr is the address who will get the reward when operator produces blocks
RewardAddrStr string `yaml:"rewardAddr"`
// VotesStr is the score for the operator to rank and weight for rewardee to split epoch reward
VotesStr string `yaml:"votes"`
}
Delegate defines a delegate with address and votes
func (*Delegate) OperatorAddr ¶ added in v0.5.0
OperatorAddr is the address of operator
func (*Delegate) RewardAddr ¶ added in v0.5.0
RewardAddr is the address of rewardee, which is allowed to be nil
type Genesis ¶ added in v0.5.0
type Genesis struct {
Blockchain `yaml:"blockchain"`
Account `ymal:"account"`
Poll `yaml:"poll"`
Rewarding `yaml:"rewarding"`
}
Genesis is the root level of genesis config. Genesis config is the network-wide blockchain config. All the nodes participating into the same network should use EXACTLY SAME genesis config.
type Poll ¶ added in v0.5.0
type Poll struct {
// EnableGravityChainVoting is a flag whether read voting from gravity chain
EnableGravityChainVoting bool `yaml:"enableGravityChainVoting"`
// GravityChainStartHeight is the height in gravity chain where the init poll result stored
GravityChainStartHeight uint64 `yaml:"gravityChainStartHeight"`
// GravityChainHeightInterval the height interval on gravity chain to pull delegate information
GravityChainHeightInterval uint64 `yaml:"gravityChainHeightInterval"`
// RegisterContractAddress is the address of register contract
RegisterContractAddress string `yaml:"registerContractAddress"`
// StakingContractAddress is the address of staking contract
StakingContractAddress string `yaml:"stakingContractAddress"`
// VoteThreshold is the vote threshold amount in decimal string format
VoteThreshold string `yaml:"voteThreshold"`
// ScoreThreshold is the score threshold amount in decimal string format
ScoreThreshold string `yaml:"scoreThreshold"`
// SelfStakingThreshold is self-staking vote threshold amount in decimal string format
SelfStakingThreshold string `yaml:"selfStakingThreshold"`
// Delegates is a list of delegates with votes
Delegates []Delegate `yaml:"delegates"`
}
Poll contains the configs for poll protocol
type Rewarding ¶ added in v0.5.0
type Rewarding struct {
// InitBalanceStr is the initial balance of the rewarding protocol in decimal string format
InitBalanceStr string `yaml:"initBalance"`
// BlockReward is the block reward amount in decimal string format
BlockRewardStr string `yaml:"blockReward"`
// EpochReward is the epoch reward amount in decimal string format
EpochRewardStr string `yaml:"epochReward"`
// AleutianEpochRewardStr is the epoch reward amount in decimal string format after aleutian fork
AleutianEpochRewardStr string `yaml:"aleutianEpochReward"`
// NumDelegatesForEpochReward is the number of top candidates that will share a epoch reward
NumDelegatesForEpochReward uint64 `yaml:"numDelegatesForEpochReward"`
// ExemptAddrStrsFromEpochReward is the list of addresses in encoded string format that exempt from epoch reward
ExemptAddrStrsFromEpochReward []string `yaml:"exemptAddrsFromEpochReward"`
// FoundationBonusStr is the bootstrap bonus in decimal string format
FoundationBonusStr string `yaml:"foundationBonus"`
// NumDelegatesForFoundationBonus is the number of top candidate that will get the bootstrap bonus
NumDelegatesForFoundationBonus uint64 `yaml:"numDelegatesForFoundationBonus"`
// FoundationBonusLastEpoch is the last epoch number that bootstrap bonus will be granted
FoundationBonusLastEpoch uint64 `yaml:"foundationBonusLastEpoch"`
// ProductivityThreshold is the percentage number that a delegate's productivity needs to reach to get the
// epoch reward
ProductivityThreshold uint64 `yaml:"productivityThreshold"`
}
Rewarding contains the configs for rewarding protocol
func (*Rewarding) AleutianEpochReward ¶ added in v0.7.1
AleutianEpochReward returns the epoch reward amount after Aleutian fork
func (*Rewarding) BlockReward ¶ added in v0.5.0
BlockReward returns the block reward amount
func (*Rewarding) EpochReward ¶ added in v0.5.0
EpochReward returns the epoch reward amount
func (*Rewarding) ExemptAddrsFromEpochReward ¶ added in v0.5.0
ExemptAddrsFromEpochReward returns the list of addresses that exempt from epoch reward
func (*Rewarding) FoundationBonus ¶ added in v0.5.0
FoundationBonus returns the bootstrap bonus amount rewarded per epoch
func (*Rewarding) InitBalance ¶ added in v0.5.0
InitBalance returns the init balance of the rewarding fund