diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2018-09-17 17:43:56 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-17 17:43:56 +0800 |
commit | cbf0012603deb6d2b8c257c079de98792f7b84cf (patch) | |
tree | 10294191481d4b7516ef0bc089bca1ebf1aa705c /simulation/governance.go | |
parent | 874c4c599a80b9c6f9c085c216be5fd6492cd2c2 (diff) | |
download | tangerine-consensus-cbf0012603deb6d2b8c257c079de98792f7b84cf.tar tangerine-consensus-cbf0012603deb6d2b8c257c079de98792f7b84cf.tar.gz tangerine-consensus-cbf0012603deb6d2b8c257c079de98792f7b84cf.tar.bz2 tangerine-consensus-cbf0012603deb6d2b8c257c079de98792f7b84cf.tar.lz tangerine-consensus-cbf0012603deb6d2b8c257c079de98792f7b84cf.tar.xz tangerine-consensus-cbf0012603deb6d2b8c257c079de98792f7b84cf.tar.zst tangerine-consensus-cbf0012603deb6d2b8c257c079de98792f7b84cf.zip |
core: DKG interface (#108)
Diffstat (limited to 'simulation/governance.go')
-rw-r--r-- | simulation/governance.go | 44 |
1 files changed, 40 insertions, 4 deletions
diff --git a/simulation/governance.go b/simulation/governance.go index 61794a5..5220ae5 100644 --- a/simulation/governance.go +++ b/simulation/governance.go @@ -36,6 +36,8 @@ type simGovernance struct { phiRatio float32 chainNum uint32 crs string + dkgComplaint map[uint64][]*types.DKGComplaint + dkgMasterPublicKey map[uint64][]*types.DKGMasterPublicKey } // newSimGovernance returns a new simGovernance instance. @@ -44,10 +46,12 @@ func newSimGovernance( return &simGovernance{ validatorSet: make(map[types.ValidatorID]decimal.Decimal), expectedNumValidators: numValidators, - k: consensusConfig.K, - phiRatio: consensusConfig.PhiRatio, - chainNum: consensusConfig.ChainNum, - crs: consensusConfig.GenesisCRS, + k: consensusConfig.K, + phiRatio: consensusConfig.PhiRatio, + chainNum: consensusConfig.ChainNum, + crs: consensusConfig.GenesisCRS, + dkgComplaint: make(map[uint64][]*types.DKGComplaint), + dkgMasterPublicKey: make(map[uint64][]*types.DKGMasterPublicKey), } } @@ -111,3 +115,35 @@ func (g *simGovernance) addValidator(vID types.ValidatorID) { } g.validatorSet[vID] = decimal.NewFromFloat(0) } + +// AddDKGComplaint adds a DKGComplaint. +func (g *simGovernance) AddDKGComplaint(complaint *types.DKGComplaint) { + g.dkgComplaint[complaint.Round] = append( + g.dkgComplaint[complaint.Round], complaint) +} + +// DKGComplaints returns the DKGComplaints of round. +func (g *simGovernance) DKGComplaints(round uint64) []*types.DKGComplaint { + complaints, exist := g.dkgComplaint[round] + if !exist { + return []*types.DKGComplaint{} + } + return complaints +} + +// AddDKGMasterPublicKey adds a DKGMasterPublicKey. +func (g *simGovernance) AddDKGMasterPublicKey( + masterPublicKey *types.DKGMasterPublicKey) { + g.dkgMasterPublicKey[masterPublicKey.Round] = append( + g.dkgMasterPublicKey[masterPublicKey.Round], masterPublicKey) +} + +// DKGMasterPublicKeys returns the DKGMasterPublicKeys of round. +func (g *simGovernance) DKGMasterPublicKeys( + round uint64) []*types.DKGMasterPublicKey { + masterPublicKeys, exist := g.dkgMasterPublicKey[round] + if !exist { + return []*types.DKGMasterPublicKey{} + } + return masterPublicKeys +} |