aboutsummaryrefslogtreecommitdiffstats
path: root/core/test/network.go
diff options
context:
space:
mode:
authorMission Liao <mission.liao@dexon.org>2019-03-20 17:29:22 +0800
committerGitHub <noreply@github.com>2019-03-20 17:29:22 +0800
commitc852eda00f781abafaab2b41d2c1a85fe9d3177f (patch)
tree931680bf76590c4bdb74c247582f213c17db9274 /core/test/network.go
parent448935829700500ecf512b9e0a6437cbb63504b3 (diff)
downloadtangerine-consensus-c852eda00f781abafaab2b41d2c1a85fe9d3177f.tar.gz
tangerine-consensus-c852eda00f781abafaab2b41d2c1a85fe9d3177f.tar.zst
tangerine-consensus-c852eda00f781abafaab2b41d2c1a85fe9d3177f.zip
core: reset DKG (#502)
* Allow utils.NodeSetCache to purge by rounds. * Purge utils.NodeSetCache when DKG reset. * Add a utils.RoundEvent handler to abort all previous running DKG * Fix test.App hangs in BlockDelivered when utils.RoundEvent is attached. ValidateNextRound is a blocking call and would block test.App.BlockDelivered.
Diffstat (limited to 'core/test/network.go')
-rw-r--r--core/test/network.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/core/test/network.go b/core/test/network.go
index 0bbb12e..443a26c 100644
--- a/core/test/network.go
+++ b/core/test/network.go
@@ -498,14 +498,19 @@ func (n *Network) addStateModule(s *State) {
n.stateModule = s
}
-// AddNodeSetCache attaches an utils.NodeSetCache to this module. Once attached
+// AttachNodeSetCache attaches an utils.NodeSetCache to this module. Once attached
// The behavior of Broadcast-X methods would be switched to broadcast to correct
// set of peers, instead of all peers.
-func (n *Network) AddNodeSetCache(cache *utils.NodeSetCache) {
+func (n *Network) AttachNodeSetCache(cache *utils.NodeSetCache) {
// This variable should be attached before run, no lock to protect it.
n.cache = cache
}
+// PurgeNodeSetCache purges cache of some round in attached utils.NodeSetCache.
+func (n *Network) PurgeNodeSetCache(round uint64) {
+ n.cache.Purge(round)
+}
+
func (n *Network) pullBlocksAsync(hashes common.Hashes) {
// Setup notification channels for each block hash.
notYetReceived := make(map[common.Hash]struct{})