21#include <test/csf/random.h>
23#include <xrpl/beast/unit_test.h>
43 int const numUNLs = 15;
44 int const minUNLSize = N / 4, maxUNLSize = N / 2;
48 PeerGroup network = sim.createGroup(N);
52 sample(network.size(), PowerLawDistribution{1, 3}, sim.rng);
63 network.connectFromTrust(
64 round<milliseconds>(0.2 * parms.ledgerGRANULARITY));
67 TxCollector txCollector;
68 LedgerCollector ledgerCollector;
69 auto colls = makeCollectors(txCollector, ledgerCollector);
70 sim.collectors.add(colls);
76 HeartbeatTimer heart(sim.scheduler,
seconds(10s));
85 makeSelector(network.begin(), network.end(), ranks, sim.rng);
86 auto txSubmitter = makeSubmitter(
87 ConstantDistribution{
rate.inv()},
88 sim.scheduler.now() + quiet,
89 sim.scheduler.now() + (simDuration - quiet),
98 BEAST_EXPECT(sim.branches() == 1);
99 BEAST_EXPECT(sim.synchronized());
104 log <<
"Simulated Duration: "
105 << duration_cast<milliseconds>(simDuration).count() <<
" ms"
108 log <<
"Synchronized: " << (sim.synchronized() ?
"Y" :
"N")
112 txCollector.report(simDuration,
log);
113 ledgerCollector.report(simDuration,
log);
122BEAST_DEFINE_TESTSUITE_MANUAL_PRIO(ScaleFreeSim, consensus,
ripple, 80);
log_os< char > log
Logging output stream.
void run() override
Runs the suite.
Json::Value rate(Account const &account, double multiplier)
Set a transfer rate.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Consensus algorithm parameters.
Represents a transfer rate.