remove resetShape
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
parent
6e4b37a3d2
commit
122f6a8348
|
@ -25,6 +25,18 @@ class Simulator:
|
||||||
self.proposerID = 0
|
self.proposerID = 0
|
||||||
self.glob = []
|
self.glob = []
|
||||||
|
|
||||||
|
# In GossipSub the initiator might push messages without participating in the mesh.
|
||||||
|
# proposerPublishOnly regulates this behavior. If set to true, the proposer is not
|
||||||
|
# part of the p2p distribution graph, only pushes segments to it. If false, the proposer
|
||||||
|
# might get back segments from other peers since links are symmetric.
|
||||||
|
self.proposerPublishOnly = True
|
||||||
|
|
||||||
|
# If proposerPublishOnly == True, this regulates how many copies of each segment are
|
||||||
|
# pushed out by the proposer.
|
||||||
|
# 1: the data is sent out exactly once on rows and once on columns (2 copies in total)
|
||||||
|
# self.shape.netDegree: default behavior similar (but not same) to previous code
|
||||||
|
self.proposerPublishTo = self.shape.netDegree
|
||||||
|
|
||||||
def initValidators(self):
|
def initValidators(self):
|
||||||
"""It initializes all the validators in the network."""
|
"""It initializes all the validators in the network."""
|
||||||
self.glob = Observer(self.logger, self.shape)
|
self.glob = Observer(self.logger, self.shape)
|
||||||
|
@ -150,29 +162,6 @@ class Simulator:
|
||||||
logger.addHandler(ch)
|
logger.addHandler(ch)
|
||||||
self.logger = logger
|
self.logger = logger
|
||||||
|
|
||||||
def resetShape(self, shape):
|
|
||||||
"""It resets the parameters of the simulation."""
|
|
||||||
self.shape = shape
|
|
||||||
self.result = Result(self.shape)
|
|
||||||
for val in self.validators:
|
|
||||||
val.shape.failureRate = shape.failureRate
|
|
||||||
val.shape.chi = shape.chi
|
|
||||||
val.shape.vpn1 = shape.vpn1
|
|
||||||
val.shape.vpn2 = shape.vpn2
|
|
||||||
|
|
||||||
# In GossipSub the initiator might push messages without participating in the mesh.
|
|
||||||
# proposerPublishOnly regulates this behavior. If set to true, the proposer is not
|
|
||||||
# part of the p2p distribution graph, only pushes segments to it. If false, the proposer
|
|
||||||
# might get back segments from other peers since links are symmetric.
|
|
||||||
self.proposerPublishOnly = True
|
|
||||||
|
|
||||||
# If proposerPublishOnly == True, this regulates how many copies of each segment are
|
|
||||||
# pushed out by the proposer.
|
|
||||||
# 1: the data is sent out exactly once on rows and once on columns (2 copies in total)
|
|
||||||
# self.shape.netDegree: default behavior similar (but not same) to previous code
|
|
||||||
self.proposerPublishTo = self.shape.netDegree
|
|
||||||
|
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
"""It runs the main simulation until the block is available or it gets stucked."""
|
"""It runs the main simulation until the block is available or it gets stucked."""
|
||||||
self.glob.checkRowsColumns(self.validators)
|
self.glob.checkRowsColumns(self.validators)
|
||||||
|
|
4
study.py
4
study.py
|
@ -24,14 +24,12 @@ def initLogger(config):
|
||||||
|
|
||||||
def runOnce(config, shape):
|
def runOnce(config, shape):
|
||||||
|
|
||||||
sim = Simulator(shape, config)
|
|
||||||
|
|
||||||
if config.deterministic:
|
if config.deterministic:
|
||||||
shape.setSeed(config.randomSeed+"-"+str(shape))
|
shape.setSeed(config.randomSeed+"-"+str(shape))
|
||||||
random.seed(shape.randomSeed)
|
random.seed(shape.randomSeed)
|
||||||
|
|
||||||
|
sim = Simulator(shape, config)
|
||||||
sim.initLogger()
|
sim.initLogger()
|
||||||
sim.resetShape(shape)
|
|
||||||
sim.initValidators()
|
sim.initValidators()
|
||||||
sim.initNetwork()
|
sim.initNetwork()
|
||||||
result = sim.run()
|
result = sim.run()
|
||||||
|
|
Loading…
Reference in New Issue