Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
24 changes: 16 additions & 8 deletions beamsim.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": null,
"id": "7d4de5f9",
"metadata": {},
"outputs": [],
Expand All @@ -363,6 +363,13 @@
"# - ns3-direct: NS-3 simulation with direct peer connections\n",
"backend: ns3-direct\n",
"\n",
"snark1_pull: true\n",
"snark1_group_once: true\n",
"snark1_half_direct: true\n",
"snark1_pull_early: false\n",
"snark1_global_smart_push: true\n",
"signature_half_direct: 4\n",
"\n",
"# Network Topology Configuration. Options: direct, gossip, grid\n",
"topology: gossip\n",
"\n",
Expand All @@ -375,21 +382,21 @@
"# Role Assignment Configuration\n",
"roles:\n",
" # Number of validator groups (affects parallel processing and aggregation)\n",
" group_count: 10\n",
" group_count: 8\n",
" \n",
" # Number of validators per group (including local aggregators)\n",
" group_validator_count: 64\n",
" group_validator_count: 1024\n",
" \n",
" # Number of local aggregators per group \n",
" group_local_aggregator_count: 10\n",
" group_local_aggregator_count: 10%\n",
"\n",
" # Total number of global aggregators (final aggregation layer)\n",
" global_aggregator_count: 1\n",
" global_aggregator_count: 100\n",
"\n",
"# Gossipsub Network Configuration (only applies when topology=gossip)\n",
"gossip:\n",
" # Target number of peers in the mesh network for each topic\n",
" mesh_n: 6\n",
" mesh_n: 8\n",
" \n",
" # Number of non-mesh peers to maintain connections with\n",
" non_mesh_n: 4\n",
Expand All @@ -415,10 +422,10 @@
" aggregation_rate_per_sec: 1000\n",
" \n",
" # Rate of SNARK proof recursion/aggregation (proofs per second)\n",
" snark_recursion_aggregation_rate_per_sec: 100\n",
" snark_recursion_aggregation_rate_per_sec: 10\n",
" \n",
" # Time to verify a single post-quantum signature\n",
" pq_signature_verification_time: 3ms\n",
" pq_signature_verification_time: 3us\n",
" \n",
" # Time to verify a single SNARK proof\n",
" snark_proof_verification_time: 10ms\n",
Expand All @@ -427,6 +434,7 @@
"network:\n",
" # Take latencies from shadow atlas file\n",
" gml: \"shadow-atlas.bin\"\n",
" max_bitrate: 100Mbps\n",
"\"\"\")"
]
},
Expand Down
8 changes: 8 additions & 0 deletions cli.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -581,6 +581,12 @@ struct SimulationConfig {
local_aggregation_only,
"stop simulation after local aggregator generates snark1",
}};
bool snark1_global_smart_push = false;
Args::FlagBool flag_snark1_global_smart_push{{
{"--snark1-global-smart-push"},
snark1_global_smart_push,
"global aggregators push the first snark1 per group and ignore further ones",
}};
std::optional<beamsim::DirectRouterConfig> direct_router;
std::string gml_path;
Args::FlagStr flag_gml_path{{
Expand Down Expand Up @@ -626,6 +632,7 @@ struct SimulationConfig {
flag_signature_half_direct,
flag_snark1_half_direct,
flag_local_aggregation_only,
flag_snark1_global_smart_push,
flag_gml_path,
flag_max_bitrate,
flag_report,
Expand Down Expand Up @@ -688,6 +695,7 @@ struct SimulationConfig {
yaml.at({"snark1_pull_early"}).get(snark1_pull_early);
yaml.at({"signature_half_direct"}).get(signature_half_direct);
yaml.at({"snark1_half_direct"}).get(snark1_half_direct);
yaml.at({"snark1_global_smart_push"}).get(snark1_global_smart_push);

yaml.at({"random_seed"}).get(random_seed);

Expand Down
Loading