diff options
author | Wei-Ning Huang <w@dexon.org> | 2019-01-06 23:21:54 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-03-12 12:19:09 +0800 |
commit | 7d2bde74ea108ccf2ea9facb5d6a74a77eee7ab9 (patch) | |
tree | dd8c2815881d8a72273742911e2514ba92c16711 /params | |
parent | 01d282cc48e8c85eb18b7f5eccb555d09dbe2780 (diff) | |
download | dexon-7d2bde74ea108ccf2ea9facb5d6a74a77eee7ab9.tar.gz dexon-7d2bde74ea108ccf2ea9facb5d6a74a77eee7ab9.tar.zst dexon-7d2bde74ea108ccf2ea9facb5d6a74a77eee7ab9.zip |
core: vm: implement byzantine reporting mechanism (#128)
Diffstat (limited to 'params')
-rw-r--r-- | params/config.go | 24 | ||||
-rw-r--r-- | params/gen_dexcon_config.go | 74 |
2 files changed, 65 insertions, 33 deletions
diff --git a/params/config.go b/params/config.go index 6cdd95f5f..6cdec3c28 100644 --- a/params/config.go +++ b/params/config.go @@ -26,8 +26,8 @@ import ( // Genesis hashes to enforce below configs on. var ( - MainnetGenesisHash = common.HexToHash("0xf0510808109583b9ef62f846886179f2fb40d1d4f1872d33529947bdd03e9bc1") - TestnetGenesisHash = common.HexToHash("0x3e14e72125f46254853814b6e9f0b79d296e16b1d60d312516002bf8cfad62f8") + MainnetGenesisHash = common.HexToHash("0x81abe3e66f63afe3806b64e7529d2a3f2ae9be7ba3e6fca2a561808bf7875a03") + TestnetGenesisHash = common.HexToHash("0x3fe7a48aca63addc5e502fe60a37a865b454c649e106d07d3cd810e086e1fc6d") ) var ( @@ -60,6 +60,11 @@ var ( DKGSetSize: 4, RoundInterval: 600000, MinBlockInterval: 900, + FineValues: []*big.Int{ + new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1e4)), + new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1e4)), + new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1e5)), + }, }, } @@ -100,6 +105,11 @@ var ( DKGSetSize: 4, RoundInterval: 600000, MinBlockInterval: 900, + FineValues: []*big.Int{ + new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1e4)), + new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1e4)), + new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1e5)), + }, }, } @@ -131,6 +141,11 @@ var ( DKGSetSize: 13, RoundInterval: 3600000, MinBlockInterval: 900, + FineValues: []*big.Int{ + new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1e4)), + new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1e4)), + new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1e5)), + }, }, } @@ -274,16 +289,18 @@ type DexconConfig struct { DKGSetSize uint32 `json:"dkgSetSize"` RoundInterval uint64 `json:"roundInterval"` MinBlockInterval uint64 `json:"minBlockInterval"` + FineValues []*big.Int `json:"fineValues"` } type dexconConfigSpecMarshaling struct { MinStake *math.HexOrDecimal256 BlockReward *math.HexOrDecimal256 + FineValues []*math.HexOrDecimal256 } // String implements the stringer interface, returning the consensus engine details. func (d *DexconConfig) String() string { - return fmt.Sprintf("{GenesisCRSText: %v Owner: %v MinStake: %v LockupPeriod: %v BlockReward: %v BlockGasLimit: %v NumChains: %v LambdaBA: %v LambdaDKG: %v K: %v PhiRatio: %v NotarySetSize: %v DKGSetSize: %v RoundInterval: %v MinBlockInterval: %v}", + return fmt.Sprintf("{GenesisCRSText: %v Owner: %v MinStake: %v LockupPeriod: %v BlockReward: %v BlockGasLimit: %v NumChains: %v LambdaBA: %v LambdaDKG: %v K: %v PhiRatio: %v NotarySetSize: %v DKGSetSize: %v RoundInterval: %v MinBlockInterval: %v FineValues: %v}", d.GenesisCRSText, d.Owner, d.MinStake, @@ -299,6 +316,7 @@ func (d *DexconConfig) String() string { d.DKGSetSize, d.RoundInterval, d.MinBlockInterval, + d.FineValues, ) } diff --git a/params/gen_dexcon_config.go b/params/gen_dexcon_config.go index 55d98ba37..4ec55c0c9 100644 --- a/params/gen_dexcon_config.go +++ b/params/gen_dexcon_config.go @@ -15,21 +15,22 @@ var _ = (*dexconConfigSpecMarshaling)(nil) // MarshalJSON marshals as JSON. func (d DexconConfig) MarshalJSON() ([]byte, error) { type DexconConfig struct { - GenesisCRSText string `json:"genesisCRSText"` - Owner common.Address `json:"owner"` - MinStake *math.HexOrDecimal256 `json:"minStake"` - LockupPeriod uint64 `json:"lockupPeriod"` - BlockReward *math.HexOrDecimal256 `json:"blockReward"` - BlockGasLimit uint64 `json:"blockGasLimit"` - NumChains uint32 `json:"numChains"` - LambdaBA uint64 `json:"lambdaBA"` - LambdaDKG uint64 `json:"lambdaDKG"` - K uint32 `json:"k"` - PhiRatio float32 `json:"phiRatio"` - NotarySetSize uint32 `json:"notarySetSize"` - DKGSetSize uint32 `json:"dkgSetSize"` - RoundInterval uint64 `json:"roundInterval"` - MinBlockInterval uint64 `json:"minBlockInterval"` + GenesisCRSText string `json:"genesisCRSText"` + Owner common.Address `json:"owner"` + MinStake *math.HexOrDecimal256 `json:"minStake"` + LockupPeriod uint64 `json:"lockupPeriod"` + BlockReward *math.HexOrDecimal256 `json:"blockReward"` + BlockGasLimit uint64 `json:"blockGasLimit"` + NumChains uint32 `json:"numChains"` + LambdaBA uint64 `json:"lambdaBA"` + LambdaDKG uint64 `json:"lambdaDKG"` + K uint32 `json:"k"` + PhiRatio float32 `json:"phiRatio"` + NotarySetSize uint32 `json:"notarySetSize"` + DKGSetSize uint32 `json:"dkgSetSize"` + RoundInterval uint64 `json:"roundInterval"` + MinBlockInterval uint64 `json:"minBlockInterval"` + FineValues []*math.HexOrDecimal256 `json:"fineValues"` } var enc DexconConfig enc.GenesisCRSText = d.GenesisCRSText @@ -47,27 +48,34 @@ func (d DexconConfig) MarshalJSON() ([]byte, error) { enc.DKGSetSize = d.DKGSetSize enc.RoundInterval = d.RoundInterval enc.MinBlockInterval = d.MinBlockInterval + if d.FineValues != nil { + enc.FineValues = make([]*math.HexOrDecimal256, len(d.FineValues)) + for k, v := range d.FineValues { + enc.FineValues[k] = (*math.HexOrDecimal256)(v) + } + } return json.Marshal(&enc) } // UnmarshalJSON unmarshals from JSON. func (d *DexconConfig) UnmarshalJSON(input []byte) error { type DexconConfig struct { - GenesisCRSText *string `json:"genesisCRSText"` - Owner *common.Address `json:"owner"` - MinStake *math.HexOrDecimal256 `json:"minStake"` - LockupPeriod *uint64 `json:"lockupPeriod"` - BlockReward *math.HexOrDecimal256 `json:"blockReward"` - BlockGasLimit *uint64 `json:"blockGasLimit"` - NumChains *uint32 `json:"numChains"` - LambdaBA *uint64 `json:"lambdaBA"` - LambdaDKG *uint64 `json:"lambdaDKG"` - K *uint32 `json:"k"` - PhiRatio *float32 `json:"phiRatio"` - NotarySetSize *uint32 `json:"notarySetSize"` - DKGSetSize *uint32 `json:"dkgSetSize"` - RoundInterval *uint64 `json:"roundInterval"` - MinBlockInterval *uint64 `json:"minBlockInterval"` + GenesisCRSText *string `json:"genesisCRSText"` + Owner *common.Address `json:"owner"` + MinStake *math.HexOrDecimal256 `json:"minStake"` + LockupPeriod *uint64 `json:"lockupPeriod"` + BlockReward *math.HexOrDecimal256 `json:"blockReward"` + BlockGasLimit *uint64 `json:"blockGasLimit"` + NumChains *uint32 `json:"numChains"` + LambdaBA *uint64 `json:"lambdaBA"` + LambdaDKG *uint64 `json:"lambdaDKG"` + K *uint32 `json:"k"` + PhiRatio *float32 `json:"phiRatio"` + NotarySetSize *uint32 `json:"notarySetSize"` + DKGSetSize *uint32 `json:"dkgSetSize"` + RoundInterval *uint64 `json:"roundInterval"` + MinBlockInterval *uint64 `json:"minBlockInterval"` + FineValues []*math.HexOrDecimal256 `json:"fineValues"` } var dec DexconConfig if err := json.Unmarshal(input, &dec); err != nil { @@ -118,5 +126,11 @@ func (d *DexconConfig) UnmarshalJSON(input []byte) error { if dec.MinBlockInterval != nil { d.MinBlockInterval = *dec.MinBlockInterval } + if dec.FineValues != nil { + d.FineValues = make([]*big.Int, len(dec.FineValues)) + for k, v := range dec.FineValues { + d.FineValues[k] = (*big.Int)(v) + } + } return nil } |