mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-04 18:22:57 +02:00
Merge bitcoin/bitcoin#34882: refactor: Use NodeClock::time_point in more places
fa1015bbcbrefactor: Use NodeClock::time_point for m_connected (MarcoFalke)fa244b984crefactor: Use NodeClock::time_point for m_last_send/recv and m_ping_start (MarcoFalke)fa2605b204refactor: Use NodeClock::time_point for CNetMessage::m_time (MarcoFalke)fa644e625brefactor: Use NodeClock::duration for m_last_ping_time/m_min_ping_time/m_ping_wait (MarcoFalke)333316f6bedoc: Fix typo "eviction criterium" -> "eviction criterion" (MarcoFalke)fa54fb0129refactor: gui: Accept up to nanoseconds in formatDurationStr, but clarify they are ignored (MarcoFalke)fab88884b7refactor: Avoid manual chrono casts with * or / (MarcoFalke)facfce37f6util: Add NodeClock::epoch alias (MarcoFalke)fa41e072b3refactor: Use NodeClock alias over deprecated GetTime (MarcoFalke) Pull request description: It is a bit confusing to have some code use the deprecated `GetTime`, which returns a duration and not a time point, and other code to use `NodeClock` time points. Fix a few more places to properly use time_point types. ACKs for top commit: stickies-v: re-ACKfa1015bbcbseduless: re-ACKfa1015bbcbnaiyoma: ACKfa1015bbcbsedited: ACKfa1015bbcbTree-SHA512: 7c8df1a9025271b08a40fd0d176bcbbf90920bc4d83a6e1c8cfaad2a894632af2b9a1aca5c3c9ddc3803e559dd168244121fd188ef22f399d60075ff194a9140
This commit is contained in:
@@ -23,7 +23,7 @@ FUZZ_TARGET(node_eviction)
|
||||
{
|
||||
eviction_candidates.push_back({
|
||||
/*id=*/fuzzed_data_provider.ConsumeIntegral<NodeId>(),
|
||||
/*m_connected=*/ConsumeTime(fuzzed_data_provider).time_since_epoch(),
|
||||
/*m_connected=*/ConsumeTime(fuzzed_data_provider),
|
||||
/*m_min_ping_time=*/ConsumeDuration<decltype(NodeEvictionCandidate::m_min_ping_time)>(fuzzed_data_provider, /*min=*/std::chrono::years{-1}, /*max=*/decltype(CNode::m_min_ping_time.load())::max()),
|
||||
/*m_last_block_time=*/ConsumeTime(fuzzed_data_provider).time_since_epoch(),
|
||||
/*m_last_tx_time=*/ConsumeTime(fuzzed_data_provider).time_since_epoch(),
|
||||
|
||||
@@ -78,13 +78,13 @@ FUZZ_TARGET(p2p_transport_serialization, .init = initialize_p2p_transport_serial
|
||||
break;
|
||||
}
|
||||
if (recv_transport.ReceivedMessageComplete()) {
|
||||
const std::chrono::microseconds m_time{std::numeric_limits<int64_t>::max()};
|
||||
const auto time{NodeClock::time_point::max()};
|
||||
bool reject_message{false};
|
||||
CNetMessage msg = recv_transport.GetReceivedMessage(m_time, reject_message);
|
||||
CNetMessage msg = recv_transport.GetReceivedMessage(time, reject_message);
|
||||
assert(msg.m_type.size() <= CMessageHeader::MESSAGE_TYPE_SIZE);
|
||||
assert(msg.m_raw_message_size <= mutable_msg_bytes.size());
|
||||
assert(msg.m_raw_message_size == CMessageHeader::HEADER_SIZE + msg.m_message_size);
|
||||
assert(msg.m_time == m_time);
|
||||
assert(msg.m_time == time);
|
||||
|
||||
std::vector<unsigned char> header;
|
||||
auto msg2 = NetMsg::Make(msg.m_type, std::span{msg.m_recv});
|
||||
|
||||
@@ -68,7 +68,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// to be protected from eviction.
|
||||
BOOST_CHECK(IsProtected(
|
||||
num_peers, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = false;
|
||||
c.m_network = NET_IPV4;
|
||||
},
|
||||
@@ -79,7 +79,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// Verify in the opposite direction.
|
||||
BOOST_CHECK(IsProtected(
|
||||
num_peers, [num_peers](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{num_peers - c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{num_peers - c.id}};
|
||||
c.m_is_local = false;
|
||||
c.m_network = NET_IPV6;
|
||||
},
|
||||
@@ -104,7 +104,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// sorted by longest uptime (lowest m_connected), if no localhost, I2P or CJDNS peers.
|
||||
BOOST_CHECK(IsProtected(
|
||||
num_peers, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = false;
|
||||
c.m_network = (c.id == 3 || c.id > 7) ? NET_ONION : NET_IPV6;
|
||||
},
|
||||
@@ -127,7 +127,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// sorted by longest uptime (lowest m_connected), if no onion, I2P, or CJDNS peers.
|
||||
BOOST_CHECK(IsProtected(
|
||||
num_peers, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id > 6);
|
||||
c.m_network = NET_IPV6;
|
||||
},
|
||||
@@ -150,7 +150,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// by longest uptime (lowest m_connected), if no onion, localhost, or CJDNS peers.
|
||||
BOOST_CHECK(IsProtected(
|
||||
num_peers, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = false;
|
||||
c.m_network = (c.id == 4 || c.id > 8) ? NET_I2P : NET_IPV6;
|
||||
},
|
||||
@@ -173,7 +173,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// by longest uptime (lowest m_connected), if no onion, localhost, or I2P peers.
|
||||
BOOST_CHECK(IsProtected(
|
||||
num_peers, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = false;
|
||||
c.m_network = (c.id == 4 || c.id > 8) ? NET_CJDNS : NET_IPV6;
|
||||
},
|
||||
@@ -188,7 +188,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// stable sort breaks tie with array order of localhost first.
|
||||
BOOST_CHECK(IsProtected(
|
||||
4, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 4);
|
||||
c.m_network = (c.id == 3) ? NET_ONION : NET_IPV4;
|
||||
},
|
||||
@@ -201,7 +201,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// uptime; stable sort breaks tie with array order of localhost first.
|
||||
BOOST_CHECK(IsProtected(
|
||||
7, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 6);
|
||||
c.m_network = (c.id == 5) ? NET_ONION : NET_IPV4;
|
||||
},
|
||||
@@ -214,7 +214,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// by uptime; stable sort breaks tie with array order of localhost first.
|
||||
BOOST_CHECK(IsProtected(
|
||||
8, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 6);
|
||||
c.m_network = (c.id == 5) ? NET_ONION : NET_IPV4;
|
||||
},
|
||||
@@ -227,7 +227,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// uptime; stable sort breaks ties with the array order of localhost first.
|
||||
BOOST_CHECK(IsProtected(
|
||||
num_peers, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 6 || c.id == 9 || c.id == 11);
|
||||
c.m_network = (c.id == 7 || c.id == 8 || c.id == 10) ? NET_ONION : NET_IPV6;
|
||||
},
|
||||
@@ -239,7 +239,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// protect 2 localhost and 1 onion, plus 3 other peers, sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
num_peers, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id > 4 && c.id < 9);
|
||||
c.m_network = (c.id == 10) ? NET_ONION : NET_IPV4;
|
||||
},
|
||||
@@ -251,7 +251,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// protect 2 localhost and 2 onions, plus 4 other peers, sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
16, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 6 || c.id == 9 || c.id == 11 || c.id == 12);
|
||||
c.m_network = (c.id == 8 || c.id == 10) ? NET_ONION : NET_IPV6;
|
||||
},
|
||||
@@ -264,7 +264,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// others, sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
16, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id > 10);
|
||||
c.m_network = (c.id == 10) ? NET_ONION : NET_IPV4;
|
||||
},
|
||||
@@ -277,7 +277,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// plus 4 others, sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
16, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 15);
|
||||
c.m_network = (c.id > 6 && c.id < 11) ? NET_ONION : NET_IPV6;
|
||||
},
|
||||
@@ -290,7 +290,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// others, sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
num_peers, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = false;
|
||||
if (c.id == 8 || c.id == 10) {
|
||||
c.m_network = NET_ONION;
|
||||
@@ -311,7 +311,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// by longest uptime; stable sort breaks tie with array order of I2P first.
|
||||
BOOST_CHECK(IsProtected(
|
||||
4, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 2);
|
||||
if (c.id == 3) {
|
||||
c.m_network = NET_I2P;
|
||||
@@ -330,7 +330,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// by longest uptime; stable sort breaks tie with array order of I2P first.
|
||||
BOOST_CHECK(IsProtected(
|
||||
7, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 4);
|
||||
if (c.id == 6) {
|
||||
c.m_network = NET_I2P;
|
||||
@@ -349,7 +349,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// by uptime; stable sort breaks tie with array order of I2P then localhost.
|
||||
BOOST_CHECK(IsProtected(
|
||||
8, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 6);
|
||||
if (c.id == 5) {
|
||||
c.m_network = NET_I2P;
|
||||
@@ -368,7 +368,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// for 8 total, sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
16, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 6 || c.id > 11);
|
||||
if (c.id == 7 || c.id == 11) {
|
||||
c.m_network = NET_I2P;
|
||||
@@ -387,7 +387,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
24, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 12);
|
||||
if (c.id > 14 && c.id < 23) { // 4 protected instead of usual 2
|
||||
c.m_network = NET_I2P;
|
||||
@@ -406,7 +406,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// unused localhost slot), plus 6 others for 12/24 total, sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
24, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 15);
|
||||
if (c.id == 12 || c.id == 14 || c.id == 17) {
|
||||
c.m_network = NET_I2P;
|
||||
@@ -425,7 +425,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// for 12/24 total, sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
24, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 13);
|
||||
if (c.id > 16) {
|
||||
c.m_network = NET_I2P;
|
||||
@@ -444,7 +444,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
24, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id > 15);
|
||||
if (c.id > 10 && c.id < 15) {
|
||||
c.m_network = NET_CJDNS;
|
||||
@@ -466,7 +466,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// order of CJDNS first.
|
||||
BOOST_CHECK(IsProtected(
|
||||
5, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 3);
|
||||
if (c.id == 4) {
|
||||
c.m_network = NET_CJDNS;
|
||||
@@ -488,7 +488,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// array order of CJDNS first.
|
||||
BOOST_CHECK(IsProtected(
|
||||
7, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 4);
|
||||
if (c.id == 6) {
|
||||
c.m_network = NET_CJDNS;
|
||||
@@ -510,7 +510,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// array order of CJDNS first.
|
||||
BOOST_CHECK(IsProtected(
|
||||
8, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 3);
|
||||
if (c.id == 5) {
|
||||
c.m_network = NET_CJDNS;
|
||||
@@ -531,7 +531,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// total), plus 4 others for 8 total, sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
16, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id > 5);
|
||||
if (c.id == 11 || c.id == 15) {
|
||||
c.m_network = NET_CJDNS;
|
||||
@@ -552,7 +552,7 @@ BOOST_AUTO_TEST_CASE(peer_protection_test)
|
||||
// total), plus 6 others for 12/24 total, sorted by longest uptime.
|
||||
BOOST_CHECK(IsProtected(
|
||||
24, [](NodeEvictionCandidate& c) {
|
||||
c.m_connected = std::chrono::seconds{c.id};
|
||||
c.m_connected = NodeSeconds{std::chrono::seconds{c.id}};
|
||||
c.m_is_local = (c.id == 13);
|
||||
if (c.id > 17) {
|
||||
c.m_network = NET_CJDNS;
|
||||
|
||||
@@ -140,7 +140,7 @@ std::vector<NodeEvictionCandidate> GetRandomNodeEvictionCandidates(int n_candida
|
||||
for (int id = 0; id < n_candidates; ++id) {
|
||||
candidates.push_back({
|
||||
.id=id,
|
||||
.m_connected=std::chrono::seconds{random_context.randrange(100)},
|
||||
.m_connected=NodeSeconds{std::chrono::seconds{random_context.randrange(100)}},
|
||||
.m_min_ping_time=std::chrono::microseconds{random_context.randrange(100)},
|
||||
.m_last_block_time=std::chrono::seconds{random_context.randrange(100)},
|
||||
.m_last_tx_time=std::chrono::seconds{random_context.randrange(100)},
|
||||
|
||||
Reference in New Issue
Block a user