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() <<
")"
42 BEAST_EXPECT(numPeers >= 1);
45 PeerGroup peers = sim.createGroup(numPeers);
51 peers.connect(peers, delay);
54 TxCollector txCollector;
55 LedgerCollector ledgerCollector;
56 auto colls = makeCollectors(txCollector, ledgerCollector);
57 sim.collectors.add(colls);
68 HeartbeatTimer heart(sim.scheduler);
71 auto peerSelector = makeSelector(
76 auto txSubmitter = makeSubmitter(
77 ConstantDistribution{
rate.inv()},
78 sim.scheduler.now() + quiet,
79 sim.scheduler.now() + simDuration - quiet,
94 << duration_cast<milliseconds>(simDuration).count() <<
" ms";
95 log <<
" | Branches: " <<
std::setw(1) << sim.branches();
97 << (sim.synchronized() ?
"Y" :
"N");
100 txCollector.report(simDuration,
log,
true);
101 ledgerCollector.report(simDuration,
log,
false);
104 txCollector.csv(simDuration, txLog, tag, printHeaders);
105 ledgerCollector.csv(simDuration, ledgerLog, tag, printHeaders);
114 bool printHeaders =
false)
121 "DistributedValidators__"
122 "completeTrustScaleFreeConnectFixedDelay";
123 std::fstream txLog(prefix +
"_tx.csv", std::ofstream::app),
124 ledgerLog(prefix +
"_ledger.csv", std::ofstream::app);
127 log << prefix <<
"(" << numPeers <<
"," << delay.count() <<
")"
131 int const numCNLs =
std::max(
int(1.00 * numPeers), 1);
132 int const minCNLSize =
std::max(
int(0.25 * numCNLs), 1);
133 int const maxCNLSize =
std::max(
int(0.50 * numCNLs), 1);
134 BEAST_EXPECT(numPeers >= 1);
135 BEAST_EXPECT(numCNLs >= 1);
137 1 <= minCNLSize && minCNLSize <= maxCNLSize &&
138 maxCNLSize <= numPeers);
141 PeerGroup peers = sim.createGroup(numPeers);
148 sample(peers.size(), PowerLawDistribution{1, 3}, sim.rng);
158 TxCollector txCollector;
159 LedgerCollector ledgerCollector;
160 auto colls = makeCollectors(txCollector, ledgerCollector);
161 sim.collectors.add(colls);
172 HeartbeatTimer heart(sim.scheduler);
175 auto peerSelector = makeSelector(
180 auto txSubmitter = makeSubmitter(
181 ConstantDistribution{
rate.inv()},
182 sim.scheduler.now() + quiet,
183 sim.scheduler.now() + simDuration - quiet,
190 sim.run(simDuration);
198 << duration_cast<milliseconds>(simDuration).count() <<
" ms";
199 log <<
" | Branches: " <<
std::setw(1) << sim.branches();
201 << (sim.synchronized() ?
"Y" :
"N");
204 txCollector.report(simDuration,
log,
true);
205 ledgerCollector.report(simDuration,
log,
false);
208 txCollector.csv(simDuration, txLog, tag, printHeaders);
209 ledgerCollector.csv(simDuration, ledgerLog, tag, printHeaders);