mirror of
https://github.com/logos-storage/das-research.git
synced 2026-01-07 15:43:08 +00:00
Study subnetDAS bandwidth
This commit is contained in:
parent
866229f8e8
commit
5ac954a1b4
59
bandwidthSim.py
Normal file
59
bandwidthSim.py
Normal file
@ -0,0 +1,59 @@
|
||||
import random
|
||||
import time
|
||||
|
||||
class Config:
|
||||
|
||||
def __init__(self):
|
||||
self.networkSize = 100
|
||||
self.networkDegree = 8
|
||||
self.badBoy = 66
|
||||
self.builders = [12, 26]
|
||||
self.nbSlots = 10
|
||||
|
||||
class Node:
|
||||
|
||||
def __init__(self, config):
|
||||
self.peers = []
|
||||
self.speed = random.randint(0, 10)
|
||||
self.networkDegree = config.networkDegree
|
||||
self.networkSize = config.networkSize
|
||||
for i in range(self.networkDegree):
|
||||
self.peers.append(random.randint(0, self.networkSize-1))
|
||||
|
||||
def executeSlot(config, nodes):
|
||||
|
||||
pastBorder = []
|
||||
currentBorder = []
|
||||
for b in config.builders:
|
||||
currentBorder.append(b)
|
||||
while(True):
|
||||
#print("Current border size: " + str(len(currentBorder)))
|
||||
#print("Past border size: " + str(len(pastBorder)))
|
||||
#print("Nodes size: " + str(len(nodes)))
|
||||
for nodeID in currentBorder:
|
||||
for peer in nodes[nodeID].peers:
|
||||
if peer not in pastBorder and peer not in currentBorder:
|
||||
currentBorder.append(peer)
|
||||
pastBorder.append(nodeID)
|
||||
currentBorder.remove(nodeID)
|
||||
if len(pastBorder) == len(nodes):
|
||||
break
|
||||
#time.sleep(1)
|
||||
return 0
|
||||
|
||||
def sim():
|
||||
|
||||
config = Config()
|
||||
nodes = []
|
||||
|
||||
for i in range(config.networkSize):
|
||||
nodes.append(Node(config))
|
||||
|
||||
for i in range(config.networkSize):
|
||||
print("My speed is "+ str(nodes[i].speed))
|
||||
print("My peers are "+ str(nodes[i].peers))
|
||||
|
||||
for slot in range(config.nbSlots):
|
||||
executeSlot(config, nodes)
|
||||
print("Slot finished: "+ str(slot))
|
||||
sim()
|
||||
Loading…
x
Reference in New Issue
Block a user