44 bool printHeaders =
false)
51 "DistributedValidators_"
52 "completeTrustCompleteConnectFixedDelay";
53 std::fstream txLog(prefix +
"_tx.csv", std::ofstream::app),
54 ledgerLog(prefix +
"_ledger.csv", std::ofstream::app);
57 log << prefix <<
"(" << numPeers <<
"," << delay.count() <<
")"
61 BEAST_EXPECT(numPeers >= 1);
64 PeerGroup peers = sim.createGroup(numPeers);
70 peers.connect(peers, delay);
73 TxCollector txCollector;
74 LedgerCollector ledgerCollector;
75 auto colls = makeCollectors(txCollector, ledgerCollector);
76 sim.collectors.add(colls);
87 HeartbeatTimer heart(sim.scheduler);
90 auto peerSelector = makeSelector(
95 auto txSubmitter = makeSubmitter(
96 ConstantDistribution{
rate.inv()},
97 sim.scheduler.now() + quiet,
98 sim.scheduler.now() + simDuration - quiet,
105 sim.run(simDuration);
113 << duration_cast<milliseconds>(simDuration).count() <<
" ms";
114 log <<
" | Branches: " <<
std::setw(1) << sim.branches();
116 << (sim.synchronized() ?
"Y" :
"N");
119 txCollector.report(simDuration,
log,
true);
120 ledgerCollector.report(simDuration,
log,
false);
123 txCollector.csv(simDuration, txLog, tag, printHeaders);
124 ledgerCollector.csv(simDuration, ledgerLog, tag, printHeaders);
133 bool printHeaders =
false)
140 "DistributedValidators__"
141 "completeTrustScaleFreeConnectFixedDelay";
142 std::fstream txLog(prefix +
"_tx.csv", std::ofstream::app),
143 ledgerLog(prefix +
"_ledger.csv", std::ofstream::app);
146 log << prefix <<
"(" << numPeers <<
"," << delay.count() <<
")"
150 int const numCNLs =
std::max(
int(1.00 * numPeers), 1);
151 int const minCNLSize =
std::max(
int(0.25 * numCNLs), 1);
152 int const maxCNLSize =
std::max(
int(0.50 * numCNLs), 1);
153 BEAST_EXPECT(numPeers >= 1);
154 BEAST_EXPECT(numCNLs >= 1);
156 1 <= minCNLSize && minCNLSize <= maxCNLSize &&
157 maxCNLSize <= numPeers);
160 PeerGroup peers = sim.createGroup(numPeers);
167 sample(peers.size(), PowerLawDistribution{1, 3}, sim.rng);
177 TxCollector txCollector;
178 LedgerCollector ledgerCollector;
179 auto colls = makeCollectors(txCollector, ledgerCollector);
180 sim.collectors.add(colls);
191 HeartbeatTimer heart(sim.scheduler);
194 auto peerSelector = makeSelector(
199 auto txSubmitter = makeSubmitter(
200 ConstantDistribution{
rate.inv()},
201 sim.scheduler.now() + quiet,
202 sim.scheduler.now() + simDuration - quiet,
209 sim.run(simDuration);
217 << duration_cast<milliseconds>(simDuration).count() <<
" ms";
218 log <<
" | Branches: " <<
std::setw(1) << sim.branches();
220 << (sim.synchronized() ?
"Y" :
"N");
223 txCollector.report(simDuration,
log,
true);
224 ledgerCollector.report(simDuration,
log,
false);
227 txCollector.csv(simDuration, txLog, tag, printHeaders);
228 ledgerCollector.csv(simDuration, ledgerLog, tag, printHeaders);