You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.1 KiB
48 lines
1.1 KiB
package shardingconfig
|
|
|
|
import (
|
|
"math/big"
|
|
|
|
"github.com/harmony-one/harmony/internal/genesis"
|
|
)
|
|
|
|
const (
|
|
mainnetEpochBlock1 = 288887
|
|
fiveOne = 11111
|
|
)
|
|
|
|
// MainnetSchedule is the mainnet sharding configuration schedule.
|
|
var MainnetSchedule mainnetSchedule
|
|
|
|
type mainnetSchedule struct{}
|
|
|
|
func (mainnetSchedule) InstanceForEpoch(epoch *big.Int) Instance {
|
|
switch {
|
|
//case epoch.Cmp(big.NewInt(1000)) >= 0:
|
|
// return mainnet6400
|
|
//case epoch.Cmp(big.NewInt(100)) >= 0:
|
|
// return mainnetV2
|
|
default: // genesis
|
|
return mainnetV0
|
|
}
|
|
}
|
|
|
|
func (mainnetSchedule) BlocksPerEpoch() uint64 {
|
|
return fiveOne
|
|
}
|
|
|
|
func (ms mainnetSchedule) CalcEpochNumber(blockNum uint64) *big.Int {
|
|
blocks := ms.BlocksPerEpoch()
|
|
switch {
|
|
case blockNum > mainnetEpochBlock1:
|
|
return big.NewInt(int64((blockNum - mainnetEpochBlock1) / blocks))
|
|
default:
|
|
return big.NewInt(0)
|
|
}
|
|
}
|
|
|
|
var mainnetReshardingEpoch = make([]*big.Int, 0)
|
|
var mainnetV0 = MustNewInstance(4, 150, 112, genesis.HarmonyAccounts, genesis.FoundationalNodeAccounts, mainnetReshardingEpoch)
|
|
|
|
//var mainnetV2 = MustNewInstance(8, 200, 100)
|
|
//var mainnet6400 = MustNewInstance(16, 400, 50)
|
|
|