The core protocol of WoopChain
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.
 
 
 
woop/internal/configs/sharding/mainnet.go

58 lines
1.3 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) + 1)
default:
return big.NewInt(0)
}
}
func (ms mainnetSchedule) IsLastBlock(blockNum uint64) bool {
blocks := ms.BlocksPerEpoch()
switch {
case blockNum == mainnetEpochBlock1:
return true
default:
return ((blockNum-mainnetEpochBlock1)%blocks == blocks-1)
}
}
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)