21#include <test/csf/random.h>
22#include <xrpl/beast/unit_test.h>
42 int const numUNLs = 15;
43 int const minUNLSize = N / 4, maxUNLSize = N / 2;
47 PeerGroup network = sim.createGroup(N);
51 sample(network.size(), PowerLawDistribution{1, 3}, sim.rng);
62 network.connectFromTrust(
63 round<milliseconds>(0.2 * parms.ledgerGRANULARITY));
66 TxCollector txCollector;
67 LedgerCollector ledgerCollector;
68 auto colls = makeCollectors(txCollector, ledgerCollector);
69 sim.collectors.add(colls);
75 HeartbeatTimer heart(sim.scheduler,
seconds(10s));
84 makeSelector(network.begin(), network.end(), ranks, sim.rng);
85 auto txSubmitter = makeSubmitter(
86 ConstantDistribution{
rate.inv()},
87 sim.scheduler.now() + quiet,
88 sim.scheduler.now() + (simDuration - quiet),
97 BEAST_EXPECT(sim.branches() == 1);
98 BEAST_EXPECT(sim.synchronized());
103 log <<
"Simulated Duration: "
104 << duration_cast<milliseconds>(simDuration).count() <<
" ms"
107 log <<
"Synchronized: " << (sim.synchronized() ?
"Y" :
"N")
111 txCollector.report(simDuration,
log);
112 ledgerCollector.report(simDuration,
log);
121BEAST_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.