@@ -19,43 +19,45 @@ type basicProtocolParameters struct {
19
19
// TokenSupply defines the current token supply on the network.
20
20
TokenSupply BaseToken `serix:"6,mapKey=tokenSupply"`
21
21
22
+ // GenesisSlot defines the slot of the genesis.
23
+ GenesisSlot SlotIndex `serix:"7,mapKey=genesisSlot"`
22
24
// GenesisUnixTimestamp defines the genesis timestamp at which the slots start to count.
23
- GenesisUnixTimestamp int64 `serix:"7 ,mapKey=genesisUnixTimestamp"`
25
+ GenesisUnixTimestamp int64 `serix:"8 ,mapKey=genesisUnixTimestamp"`
24
26
// SlotDurationInSeconds defines the duration of each slot in seconds.
25
- SlotDurationInSeconds uint8 `serix:"8 ,mapKey=slotDurationInSeconds"`
27
+ SlotDurationInSeconds uint8 `serix:"9 ,mapKey=slotDurationInSeconds"`
26
28
// SlotsPerEpochExponent is the number of slots in an epoch expressed as an exponent of 2.
27
29
// (2**SlotsPerEpochExponent) == slots in an epoch.
28
- SlotsPerEpochExponent uint8 `serix:"9 ,mapKey=slotsPerEpochExponent"`
30
+ SlotsPerEpochExponent uint8 `serix:"10 ,mapKey=slotsPerEpochExponent"`
29
31
30
32
// StakingUnbondingPeriod defines the unbonding period in epochs before an account can stop staking.
31
- StakingUnbondingPeriod EpochIndex `serix:"10 ,mapKey=stakingUnbondingPeriod"`
33
+ StakingUnbondingPeriod EpochIndex `serix:"11 ,mapKey=stakingUnbondingPeriod"`
32
34
// ValidationBlocksPerSlot is the number of validation blocks that each validator should issue each slot.
33
- ValidationBlocksPerSlot uint8 `serix:"11 ,mapKey=validationBlocksPerSlot"`
35
+ ValidationBlocksPerSlot uint8 `serix:"12 ,mapKey=validationBlocksPerSlot"`
34
36
// PunishmentEpochs is the number of epochs worth of Mana that a node is punished with for each additional validation block it issues.
35
- PunishmentEpochs EpochIndex `serix:"12 ,mapKey=punishmentEpochs"`
37
+ PunishmentEpochs EpochIndex `serix:"13 ,mapKey=punishmentEpochs"`
36
38
37
39
// LivenessThresholdLowerBound is used by tip-selection to determine if a block is eligible by evaluating issuingTimes.
38
40
// and commitments in its past-cone to ATT and lastCommittedSlot respectively.
39
- LivenessThresholdLowerBoundInSeconds uint16 `serix:"13 ,mapKey=livenessThresholdLowerBound"`
41
+ LivenessThresholdLowerBoundInSeconds uint16 `serix:"14 ,mapKey=livenessThresholdLowerBound"`
40
42
// LivenessThresholdUpperBound is used by tip-selection to determine if a block is eligible by evaluating issuingTimes
41
43
// and commitments in its past-cone to ATT and lastCommittedSlot respectively.
42
- LivenessThresholdUpperBoundInSeconds uint16 `serix:"14 ,mapKey=livenessThresholdUpperBound"`
44
+ LivenessThresholdUpperBoundInSeconds uint16 `serix:"15 ,mapKey=livenessThresholdUpperBound"`
43
45
44
46
// MinCommittableAge is the minimum age relative to the accepted tangle time slot index that a slot can be committed.
45
47
// For example, if the last accepted slot is in slot 100, and minCommittableAge=10, then the latest committed slot can be at most 100-10=90.
46
- MinCommittableAge SlotIndex `serix:"15 ,mapKey=minCommittableAge"`
48
+ MinCommittableAge SlotIndex `serix:"16 ,mapKey=minCommittableAge"`
47
49
// MaxCommittableAge is the maximum age for a slot commitment to be included in a block relative to the slot index of the block issuing time.
48
50
// For example, if the last accepted slot is in slot 100, and maxCommittableAge=20, then the oldest referencable commitment is 100-20=80.
49
- MaxCommittableAge SlotIndex `serix:"16 ,mapKey=maxCommittableAge"`
51
+ MaxCommittableAge SlotIndex `serix:"17 ,mapKey=maxCommittableAge"`
50
52
// EpochNearingThreshold is used by the epoch orchestrator to detect the slot that should trigger a new committee
51
53
// selection for the next and upcoming epoch.
52
- EpochNearingThreshold SlotIndex `serix:"17 ,mapKey=epochNearingThreshold"`
54
+ EpochNearingThreshold SlotIndex `serix:"18 ,mapKey=epochNearingThreshold"`
53
55
// RMCParameters defines the parameters used by to calculate the Reference Mana Cost (RMC).
54
- CongestionControlParameters CongestionControlParameters `serix:"18 ,mapKey=congestionControlParameters"`
56
+ CongestionControlParameters CongestionControlParameters `serix:"19 ,mapKey=congestionControlParameters"`
55
57
// VersionSignaling defines the parameters used for version upgrades.
56
- VersionSignaling VersionSignaling `serix:"19 ,mapKey=versionSignaling"`
58
+ VersionSignaling VersionSignaling `serix:"20 ,mapKey=versionSignaling"`
57
59
// RewardsParameters defines the parameters used for reward calculation.
58
- RewardsParameters RewardsParameters `serix:"20 ,mapKey=rewardsParameters"`
60
+ RewardsParameters RewardsParameters `serix:"21 ,mapKey=rewardsParameters"`
59
61
}
60
62
61
63
func (b basicProtocolParameters ) Equals (other basicProtocolParameters ) bool {
@@ -66,6 +68,7 @@ func (b basicProtocolParameters) Equals(other basicProtocolParameters) bool {
66
68
b .WorkScoreParameters .Equals (other .WorkScoreParameters ) &&
67
69
b .ManaParameters .Equals (other .ManaParameters ) &&
68
70
b .TokenSupply == other .TokenSupply &&
71
+ b .GenesisSlot == other .GenesisSlot &&
69
72
b .GenesisUnixTimestamp == other .GenesisUnixTimestamp &&
70
73
b .SlotDurationInSeconds == other .SlotDurationInSeconds &&
71
74
b .SlotsPerEpochExponent == other .SlotsPerEpochExponent &&
0 commit comments