19 #include <ripple/basics/make_SSLContext.h>
20 #include <ripple/beast/unit_test.h>
21 #include <ripple/overlay/impl/OverlayImpl.h>
22 #include <ripple/overlay/impl/PeerImp.h>
23 #include <ripple/peerfinder/impl/SlotImp.h>
24 #include <test/jtx/Env.h>
49 doTest(
"Config Test", log, [&](
bool log) {
50 auto test = [&](
bool enable,
54 bool success =
true) {
56 str <<
"[reduce_relay]\n"
57 <<
"tx_enable=" <<
static_cast<int>(enable) <<
"\n"
58 <<
"tx_metrics=" <<
static_cast<int>(metrics) <<
"\n"
59 <<
"tx_min_peers=" << min <<
"\n"
60 <<
"tx_relay_percentage=" << pct <<
"\n";
84 test(
true,
true, 20, 25);
85 test(
false,
false, 20, 25);
86 test(
false,
false, 20, 0,
false);
87 test(
false,
false, 20, 101,
false);
88 test(
false,
false, 9, 10,
false);
89 test(
false,
false, 10, 9,
false);
113 std::move(stream_ptr),
166 boost::beast::http::request<boost::beast::http::dynamic_body> request;
168 ? (
void)request.insert(
172 auto stream_ptr = std::make_unique<stream_type>(
173 socket_type(std::forward<boost::asio::io_service&>(
181 auto consumer = overlay.resourceManager().newInboundEndpoint(remote);
182 auto slot = overlay.peerFinder().new_inbound_slot(local, remote);
183 auto const peer = std::make_shared<PeerTest>(
190 std::move(stream_ptr),
192 overlay.add_active(peer);
193 peers.emplace_back(peer);
214 env.app().config().TX_REDUCE_RELAY_ENABLE = txRREnabled;
215 env.app().config().TX_REDUCE_RELAY_MIN_PEERS = minPeers;
216 env.app().config().TX_RELAY_PERCENTAGE = relayPercentage;
220 for (
int i = 0; i < nPeers; i++)
221 addPeer(env, peers, nDisabled);
222 protocol::TMTransaction m;
223 m.set_rawtransaction(
"transaction");
224 m.set_deferred(
false);
225 m.set_status(protocol::TransactionStatus::tsNEW);
226 env.app().overlay().relay(
uint256{0}, m, toSkip);
239 testRelay(
"feature disabled",
false, 10, 0, 10, 25, 10, 0);
241 testRelay(
"feature disabled & skip",
false, 10, 0, 10, 25, 5, 0, skip);
243 testRelay(
"relay all 1",
true, 10, 0, 20, 25, 10, 0);
245 testRelay(
"relay all 2",
true, 20, 15, 10, 25, 20, 0);
248 testRelay(
"relay & queue",
true, 60, 0, 20, 25, 30, 30);
252 testRelay(
"skip",
true, 60, 0, 20, 25, 25, 30, skip);
255 testRelay(
"disabled",
true, 70, 10, 20, 25, 40, 30);
259 testRelay(
"disabled & skip",
true, 70, 10, 20, 25, 35, 30, skip);
263 skip = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
264 testRelay(
"disabled & skip, no queue",
true, 15, 5, 10, 25, 5, 0, skip);
268 skip = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
269 testRelay(
"disabled & skip, no relay",
true, 20, 2, 10, 25, 0, 6, skip);