25 bool printHeaders =
false)
32 "DistributedValidators_"
33 "completeTrustCompleteConnectFixedDelay";
34 std::fstream txLog(prefix +
"_tx.csv", std::ofstream::app),
35 ledgerLog(prefix +
"_ledger.csv", std::ofstream::app);
38 log << prefix <<
"(" << numPeers <<
"," << delay.count() <<
")" <<
std::endl;
41 BEAST_EXPECT(numPeers >= 1);
44 PeerGroup peers = sim.createGroup(numPeers);
50 peers.connect(peers, delay);
53 TxCollector txCollector;
54 LedgerCollector ledgerCollector;
55 auto colls = makeCollectors(txCollector, ledgerCollector);
56 sim.collectors.add(colls);
67 HeartbeatTimer heart(sim.scheduler);
72 auto txSubmitter = makeSubmitter(
73 ConstantDistribution{
rate.inv()},
74 sim.scheduler.now() + quiet,
75 sim.scheduler.now() + simDuration - quiet,
89 log <<
" | Duration: " <<
std::setw(6) << duration_cast<milliseconds>(simDuration).count()
91 log <<
" | Branches: " <<
std::setw(1) << sim.branches();
92 log <<
" | Synchronized: " <<
std::setw(1) << (sim.synchronized() ?
"Y" :
"N");
95 txCollector.report(simDuration,
log,
true);
96 ledgerCollector.report(simDuration,
log,
false);
99 txCollector.csv(simDuration, txLog, tag, printHeaders);
100 ledgerCollector.csv(simDuration, ledgerLog, tag, printHeaders);
109 bool printHeaders =
false)
116 "DistributedValidators__"
117 "completeTrustScaleFreeConnectFixedDelay";
118 std::fstream txLog(prefix +
"_tx.csv", std::ofstream::app),
119 ledgerLog(prefix +
"_ledger.csv", std::ofstream::app);
122 log << prefix <<
"(" << numPeers <<
"," << delay.count() <<
")" <<
std::endl;
125 int const numCNLs =
std::max(
int(1.00 * numPeers), 1);
126 int const minCNLSize =
std::max(
int(0.25 * numCNLs), 1);
127 int const maxCNLSize =
std::max(
int(0.50 * numCNLs), 1);
128 BEAST_EXPECT(numPeers >= 1);
129 BEAST_EXPECT(numCNLs >= 1);
130 BEAST_EXPECT(1 <= minCNLSize && minCNLSize <= maxCNLSize && maxCNLSize <= numPeers);
133 PeerGroup peers = sim.createGroup(numPeers);
139 std::vector<double> const ranks = sample(peers.size(), PowerLawDistribution{1, 3}, sim.rng);
149 TxCollector txCollector;
150 LedgerCollector ledgerCollector;
151 auto colls = makeCollectors(txCollector, ledgerCollector);
152 sim.collectors.add(colls);
163 HeartbeatTimer heart(sim.scheduler);
168 auto txSubmitter = makeSubmitter(
169 ConstantDistribution{
rate.inv()},
170 sim.scheduler.now() + quiet,
171 sim.scheduler.now() + simDuration - quiet,
178 sim.run(simDuration);
185 log <<
" | Duration: " <<
std::setw(6) << duration_cast<milliseconds>(simDuration).count()
187 log <<
" | Branches: " <<
std::setw(1) << sim.branches();
188 log <<
" | Synchronized: " <<
std::setw(1) << (sim.synchronized() ?
"Y" :
"N");
191 txCollector.report(simDuration,
log,
true);
192 ledgerCollector.report(simDuration,
log,
false);
195 txCollector.csv(simDuration, txLog, tag, printHeaders);
196 ledgerCollector.csv(simDuration, ledgerLog, tag, printHeaders);