Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
31825ec
back to sample assignment based on id
srene Sep 15, 2023
9d013bd
dht fix
srene Sep 15, 2023
c19c9fc
disable initial elaborate response dht
srene Sep 15, 2023
498eb78
fix starting multiple builder issue
srene Oct 3, 2023
35d513f
fix sampling to node mapping
srene Oct 3, 2023
a05af55
getting extra samples in case some fail for random sampling
srene Oct 3, 2023
191d330
xback to sample assignment based on id
srene Sep 15, 2023
175ff5b
add neighbour and search table refresh
srene Sep 15, 2023
79ee39d
ttl discovery done
srene Sep 15, 2023
66c48b7
discoveries reporting
srene Sep 29, 2023
5bf7f95
discovery reporting fix + ttl time based
srene Sep 30, 2023
b978063
discoveries report extended
srene Sep 30, 2023
86f29c5
targeted discovery for missing samples
srene Oct 3, 2023
3abf442
updating neighbours seen time search table
srene Oct 4, 2023
9cce48e
fixing turbulance
srene Oct 4, 2023
c3f45f0
adding num random samples as parameter
srene Oct 4, 2023
e6c249e
disable global node knowledge / enable node discovery
srene Oct 5, 2023
cf42a3d
remove builder from discovery
srene Oct 6, 2023
5373ca3
increase radius to reasign when missing nodes for samples
srene Oct 15, 2023
dad1732
switch to learned nodes + bug fix
srene Oct 16, 2023
55678df
filtering builder address from searchtable
srene Oct 16, 2023
50a8c4b
load builder searchtable with validators
srene Oct 17, 2023
6e571f3
python notebook report update
srene Nov 22, 2023
0307488
missing figure report
srene Nov 22, 2023
1d0b7cf
missing figure report
srene Nov 22, 2023
21dabc7
Merge pull request #52 from datahop/new_discovery
srene Nov 23, 2023
ed45642
cleaning
srene Jun 6, 2024
9176d93
fixed malicious config
oascigil Jun 7, 2024
8da1ce6
merged EvilValidator and EvilNonValidator
oascigil Jun 7, 2024
bd792ae
fixed builder address
oascigil Jun 7, 2024
da042a1
Merge pull request #54 from datahop/mergeDiscoveryAndEvil
oascigil Jun 7, 2024
42ccde7
adding missing protocols
oascigil Jun 7, 2024
88250ce
updated config
oascigil Jun 7, 2024
d8d09d8
fix bad evil node instance
srene Jun 8, 2024
5cd0d5c
search table bootstrapping for evil nodes
oascigil Jun 11, 2024
baa497c
validator op
srene Feb 9, 2025
5c83702
new files
srene Feb 16, 2025
fbd9ad6
fix logger
srene Feb 16, 2025
3f8a398
row/column single message
srene Feb 16, 2025
0a92142
gossip
srene Feb 16, 2025
b80fdac
fix
srene Feb 16, 2025
2a679fe
ren to gosispdas
srene Feb 22, 2025
d2b0749
rename + sampling fix
srene Feb 22, 2025
2f67376
missing files
srene Feb 23, 2025
535ec33
das fix
srene Feb 23, 2025
978c979
missing files
srene Feb 23, 2025
83df117
new transport
srene Feb 23, 2025
a857e38
bw
srene Feb 23, 2025
fad9e6b
extra class removed
srene Feb 23, 2025
7165153
missing
srene Feb 23, 2025
05795c2
bw fix
srene Feb 24, 2025
99c52fa
report msg
srene Feb 25, 2025
ac46bb9
fix
srene Feb 25, 2025
63b67f7
msg report fix
srene Feb 25, 2025
270022a
observer
srene Feb 25, 2025
7470993
obs
srene Feb 25, 2025
b8ebf01
minor
srene Feb 26, 2025
e773bde
bw fix
srene Mar 4, 2025
ca13ab8
observer fix
srene Mar 4, 2025
a57bf8b
two rows columns
srene Apr 5, 2025
2cb4743
config parmas
srene Apr 5, 2025
d06eee4
avoid panic if no validator found
srene Apr 5, 2025
96aefcd
dht config
srene Apr 5, 2025
291a33d
dht
srene Apr 5, 2025
ae11602
report dht parcel size
srene Apr 5, 2025
599a4c1
fix dht
srene Apr 6, 2025
1e9c3a6
fix size
srene Apr 6, 2025
6223c94
mcache refactor
srene Apr 9, 2025
777311c
disable random sampling
srene Apr 11, 2025
7e70784
config update
Countermatt May 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ target/
logs/
.vscode/
*.code-workspace
*.csv
4 changes: 2 additions & 2 deletions simulator/config/dasprotocol.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# ::::: GLOBAL ::::::

# Network size
SIZE 1000
SIZE 50000

# Random seed
K 5
Expand Down Expand Up @@ -116,7 +116,7 @@ control.0traffic peersim.kademlia.das.TrafficGeneratorSample
control.0traffic.step TRAFFIC_STEP
control.0traffic.mapping_fn 2
control.0traffic.sample_copy_per_node 2
control.0traffic.block_dim_size 100
control.0traffic.block_dim_size 512
control.0traffic.num_samples 75
control.0traffic.kadprotocol 3kademlia

Expand Down
138 changes: 138 additions & 0 deletions simulator/config/dasprotocoldht10k.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# ::::::::::::::::::::::::::::::::::::::::::::::::::::::
# :: Kademlia Default Configuration
# ::::::::::::::::::::::::::::::::::::::::::::::::::::::

# ::::: GLOBAL ::::::

# Network size
SIZE 10000

# Random seed
K 5

MINDELAY 5
MAXDELAY 5

#Simulation time in ms
SIM_TIME 1000*24

CHURN_RATE_HOUR 5

#Traffic generator is executed every TRAFFIC_STEP
TRAFFIC_STEP 12000 #10000000/SIZE
#Tracing module is executed every OBSERVER_STEP
OBSERVER_STEP 10000
#Turbulence module is executed every TURBULENCE_STEP enabling churning
TURBULENCE_STEP 120000000 #100000000/SIZE


# add network config parameters to simulation
random.seed 24680
simulation.experiments 1
simulation.endtime SIM_TIME
network.size SIZE


# Peersim protocols enabled in each node

#A protocol that stores links. It does nothing apart from that. Use by default
protocol.0link peersim.core.IdleProtocol

#A protocol that stores links. It does nothing apart from that. Use by default
#A protocol that stores links. It does nothing apart from that. Use by default
#protocol.1uniftr.mindelay MINDELAY
#protocol.1uniftr.maxdelay MAXDELAY

protocol.1uniftr peersim.transport.DASTransport

#transport layer that reliably delivers messages with a random delay, emulating TCP
protocol.2unreltr peersim.transport.BwTransport
protocol.2unreltr.mindelay MINDELAY
protocol.2unreltr.maxdelay MAXDELAY
protocol.2unreltr.size SIZE

#Kademlia protocol with 256 bits identifiers and 17 buckets in the routing table.
#Use FINDMODE 1 to send FINDMODE messages looking for distance to specific node instead of sending the id of the node like in DEVP2P
protocol.3kademlia peersim.kademlia.KademliaProtocol
protocol.3kademlia.transport 2unreltr
protocol.3kademlia.reportMsg true
protocol.3kademlia.BITS 256
protocol.3kademlia.NBUCKETS 17
protocol.3kademlia.FINDMODE 1

#Kademlia protocol with 256 bits identifiers and 17 buckets in the routing table.
#Use FINDMODE 1 to send FINDMODE messages looking for distance to specific node instead of sending the id of the node like in DEVP2P
protocol.4dasprotocol peersim.kademlia.das.DASDHTProtocolBuilder
protocol.4dasprotocol.transport 2unreltr
protocol.4dasprotocol.kademlia 3kademlia
protocol.4dasprotocol.parcelSize 512
protocol.4dasprotocol.bw 10000

protocol.5dasprotocol peersim.kademlia.das.DASDHTProtocolValidator
protocol.5dasprotocol.transport 2unreltr
protocol.5dasprotocol.kademlia 3kademlia
protocol.5dasprotocol.bw 1000

protocol.6dasprotocol peersim.kademlia.das.DASDHTProtocolNonValidator
protocol.6dasprotocol.transport 2unreltr
protocol.6dasprotocol.kademlia 3kademlia
protocol.6dasprotocol.bw 100



# ::::: INITIALIZERS :::::
#Class that initializes nodes with kademlia protocol and generates uniform ids
init.1uniqueNodeID peersim.kademlia.das.CustomDistributionDas
init.1uniqueNodeID.protocolkad 3kademlia
init.1uniqueNodeID.protocoldasbuilder 4dasprotocol
init.1uniqueNodeID.protocoldasvalidator 5dasprotocol
init.1uniqueNodeID.protocoldasnonvalidator 6dasprotocol
init.1uniqueNodeID.protocolEvildas 6dasprotocol
init.1uniqueNodeID.validator_rate 1.0
init.1uniqueNodeID.evilNodeRatioValidator 0.0
init.1uniqueNodeID.evilNodeRatioNonValidator 0.0


#Adds initial state to the routing tables
init.2statebuilder peersim.kademlia.StateBuilder
init.2statebuilder.protocol 3kademlia
init.2statebuilder.transport 2unreltr

# ::::: CONTROLS :::::

#TrafficGenerator class sends and initial
control.0traffic peersim.kademlia.das.TrafficGeneratorDHT
control.0traffic.step TRAFFIC_STEP
control.0traffic.mapping_fn 1
control.0traffic.sample_copy_per_node 1
control.0traffic.block_dim_size 512
control.0traffic.kadprotocol 3kademlia

# turbulence non-validator
#control.2turbolenceAdd peersim.kademlia.das.TurbulenceDas
#control.2turbolenceAdd.protocol 3kademlia
#control.2turbolenceAdd.protocoldas 4dasprotocol
#control.2turbolenceAdd.protocolevildas 7evildasprotocol
#control.2turbolenceAdd.transport 2unreltr
#control.2turbolenceAdd.step TURBULENCE_STEP
#control.2turbolenceAdd.p_idle 0.5
#control.2turbolenceAdd.p_rem 0.25
#control.2turbolenceAdd.p_add 0.25

# turbulence validators
#control.3turbolenceAdd peersim.kademlia.das.TurbulenceDasValidator
#control.3turbolenceAdd.protocol 3kademlia
#control.3turbolenceAdd.protocoldas 4dasprotocol
#control.3turbolenceAdd.protocolevildas 7evildasprotocol
#control.3turbolenceAdd.transport 2unreltr
#control.3turbolenceAdd.step TURBULENCE_STEP
#control.3turbolenceAdd.p_idle 0.5
#control.3turbolenceAdd.p_rem 0.25
#control.3turbolenceAdd.p_add 0.25

# ::::: OBSERVER :::::
#The observer is executed every OBSERVER_STEP and will generate data traces
control.4 peersim.kademlia.KademliaObserver
control.4.protocol 3kademlia
control.4.step OBSERVER_STEP
control.4.logfolder logsDHT_10k
138 changes: 138 additions & 0 deletions simulator/config/dasprotocoldht1k.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# ::::::::::::::::::::::::::::::::::::::::::::::::::::::
# :: Kademlia Default Configuration
# ::::::::::::::::::::::::::::::::::::::::::::::::::::::

# ::::: GLOBAL ::::::

# Network size
SIZE 1000

# Random seed
K 5

MINDELAY 5
MAXDELAY 5

#Simulation time in ms
SIM_TIME 1000*24

CHURN_RATE_HOUR 5

#Traffic generator is executed every TRAFFIC_STEP
TRAFFIC_STEP 12000 #10000000/SIZE
#Tracing module is executed every OBSERVER_STEP
OBSERVER_STEP 10000
#Turbulence module is executed every TURBULENCE_STEP enabling churning
TURBULENCE_STEP 120000000 #100000000/SIZE


# add network config parameters to simulation
random.seed 24680
simulation.experiments 1
simulation.endtime SIM_TIME
network.size SIZE


# Peersim protocols enabled in each node

#A protocol that stores links. It does nothing apart from that. Use by default
protocol.0link peersim.core.IdleProtocol

#A protocol that stores links. It does nothing apart from that. Use by default
#A protocol that stores links. It does nothing apart from that. Use by default
#protocol.1uniftr.mindelay MINDELAY
#protocol.1uniftr.maxdelay MAXDELAY

protocol.1uniftr peersim.transport.DASTransport

#transport layer that reliably delivers messages with a random delay, emulating TCP
protocol.2unreltr peersim.transport.BwTransport
protocol.2unreltr.mindelay MINDELAY
protocol.2unreltr.maxdelay MAXDELAY
protocol.2unreltr.size SIZE

#Kademlia protocol with 256 bits identifiers and 17 buckets in the routing table.
#Use FINDMODE 1 to send FINDMODE messages looking for distance to specific node instead of sending the id of the node like in DEVP2P
protocol.3kademlia peersim.kademlia.KademliaProtocol
protocol.3kademlia.transport 2unreltr
protocol.3kademlia.reportMsg true
protocol.3kademlia.BITS 256
protocol.3kademlia.NBUCKETS 17
protocol.3kademlia.FINDMODE 1

#Kademlia protocol with 256 bits identifiers and 17 buckets in the routing table.
#Use FINDMODE 1 to send FINDMODE messages looking for distance to specific node instead of sending the id of the node like in DEVP2P
protocol.4dasprotocol peersim.kademlia.das.DASDHTProtocolBuilder
protocol.4dasprotocol.transport 2unreltr
protocol.4dasprotocol.kademlia 3kademlia
protocol.4dasprotocol.parcelSize 512
protocol.4dasprotocol.bw 10000

protocol.5dasprotocol peersim.kademlia.das.DASDHTProtocolValidator
protocol.5dasprotocol.transport 2unreltr
protocol.5dasprotocol.kademlia 3kademlia
protocol.5dasprotocol.bw 1000

protocol.6dasprotocol peersim.kademlia.das.DASDHTProtocolNonValidator
protocol.6dasprotocol.transport 2unreltr
protocol.6dasprotocol.kademlia 3kademlia
protocol.6dasprotocol.bw 100



# ::::: INITIALIZERS :::::
#Class that initializes nodes with kademlia protocol and generates uniform ids
init.1uniqueNodeID peersim.kademlia.das.CustomDistributionDas
init.1uniqueNodeID.protocolkad 3kademlia
init.1uniqueNodeID.protocoldasbuilder 4dasprotocol
init.1uniqueNodeID.protocoldasvalidator 5dasprotocol
init.1uniqueNodeID.protocoldasnonvalidator 6dasprotocol
init.1uniqueNodeID.protocolEvildas 6dasprotocol
init.1uniqueNodeID.validator_rate 1.0
init.1uniqueNodeID.evilNodeRatioValidator 0.0
init.1uniqueNodeID.evilNodeRatioNonValidator 0.0


#Adds initial state to the routing tables
init.2statebuilder peersim.kademlia.StateBuilder
init.2statebuilder.protocol 3kademlia
init.2statebuilder.transport 2unreltr

# ::::: CONTROLS :::::

#TrafficGenerator class sends and initial
control.0traffic peersim.kademlia.das.TrafficGeneratorDHT
control.0traffic.step TRAFFIC_STEP
control.0traffic.mapping_fn 1
control.0traffic.sample_copy_per_node 1
control.0traffic.block_dim_size 512
control.0traffic.kadprotocol 3kademlia

# turbulence non-validator
#control.2turbolenceAdd peersim.kademlia.das.TurbulenceDas
#control.2turbolenceAdd.protocol 3kademlia
#control.2turbolenceAdd.protocoldas 4dasprotocol
#control.2turbolenceAdd.protocolevildas 7evildasprotocol
#control.2turbolenceAdd.transport 2unreltr
#control.2turbolenceAdd.step TURBULENCE_STEP
#control.2turbolenceAdd.p_idle 0.5
#control.2turbolenceAdd.p_rem 0.25
#control.2turbolenceAdd.p_add 0.25

# turbulence validators
#control.3turbolenceAdd peersim.kademlia.das.TurbulenceDasValidator
#control.3turbolenceAdd.protocol 3kademlia
#control.3turbolenceAdd.protocoldas 4dasprotocol
#control.3turbolenceAdd.protocolevildas 7evildasprotocol
#control.3turbolenceAdd.transport 2unreltr
#control.3turbolenceAdd.step TURBULENCE_STEP
#control.3turbolenceAdd.p_idle 0.5
#control.3turbolenceAdd.p_rem 0.25
#control.3turbolenceAdd.p_add 0.25

# ::::: OBSERVER :::::
#The observer is executed every OBSERVER_STEP and will generate data traces
control.4 peersim.kademlia.KademliaObserver
control.4.protocol 3kademlia
control.4.step OBSERVER_STEP
control.4.logfolder logsDHT_1k
Loading