aboutsummaryrefslogtreecommitdiffstats
path: root/simulation/governance.go
diff options
context:
space:
mode:
authorJimmy Hu <jimmy.hu@dexon.org>2018-09-17 17:43:56 +0800
committerGitHub <noreply@github.com>2018-09-17 17:43:56 +0800
commitcbf0012603deb6d2b8c257c079de98792f7b84cf (patch)
tree10294191481d4b7516ef0bc089bca1ebf1aa705c /simulation/governance.go
parent874c4c599a80b9c6f9c085c216be5fd6492cd2c2 (diff)
downloadtangerine-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.go44
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
+}