mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 03:52:49 +01:00
Merge #6309: backport: Merge bitcoin#24237, 23631, 24609
e237301b76
Merge bitcoin/bitcoin#24609: Clarify -maxtimeadjustment that only outbound peers influence timedata (MarcoFalke)e101fd8e3b
Merge bitcoin/bitcoin#23631: p2p: Don't use timestamps from inbound peers for Adjusted Time (Vijay)abfa8c0bd4
Merge bitcoin/bitcoin#24237: test: Avoid testing negative block heights (MarcoFalke) Pull request description: bitcoin backports ACKs for top commit: UdjinM6: utACKe237301b76
Tree-SHA512: 5ecb1c3504a92a2b84962809aa349e5b102455984748a65bee8f2fb6c39e1ba85c6a0063780030f73806546017efffca21959de6d96ba65b4a2db9416d8fd6ed
This commit is contained in:
commit
c2b83dc80e
@ -570,7 +570,7 @@ void SetupServerArgs(ArgsManager& argsman)
|
|||||||
argsman.AddArg("-maxconnections=<n>", strprintf("Maintain at most <n> connections to peers (temporary service connections excluded) (default: %u). This limit does not apply to connections manually added via -addnode or the addnode RPC, which have a separate limit of %u.", DEFAULT_MAX_PEER_CONNECTIONS, MAX_ADDNODE_CONNECTIONS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
argsman.AddArg("-maxconnections=<n>", strprintf("Maintain at most <n> connections to peers (temporary service connections excluded) (default: %u). This limit does not apply to connections manually added via -addnode or the addnode RPC, which have a separate limit of %u.", DEFAULT_MAX_PEER_CONNECTIONS, MAX_ADDNODE_CONNECTIONS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||||
argsman.AddArg("-maxreceivebuffer=<n>", strprintf("Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)", DEFAULT_MAXRECEIVEBUFFER), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
argsman.AddArg("-maxreceivebuffer=<n>", strprintf("Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)", DEFAULT_MAXRECEIVEBUFFER), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||||
argsman.AddArg("-maxsendbuffer=<n>", strprintf("Maximum per-connection memory usage for the send buffer, <n>*1000 bytes (default: %u)", DEFAULT_MAXSENDBUFFER), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
argsman.AddArg("-maxsendbuffer=<n>", strprintf("Maximum per-connection memory usage for the send buffer, <n>*1000 bytes (default: %u)", DEFAULT_MAXSENDBUFFER), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||||
argsman.AddArg("-maxtimeadjustment", strprintf("Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by peers forward or backward by this amount. (default: %u seconds)", DEFAULT_MAX_TIME_ADJUSTMENT), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
argsman.AddArg("-maxtimeadjustment", strprintf("Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by outbound peers forward or backward by this amount (default: %u seconds).", DEFAULT_MAX_TIME_ADJUSTMENT), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||||
argsman.AddArg("-maxuploadtarget=<n>", strprintf("Tries to keep outbound traffic under the given target per 24h. Limit does not apply to peers with 'download' permission or blocks created within past week. 0 = no limit (default: %s). Optional suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000 base while uppercase is 1024 base", DEFAULT_MAX_UPLOAD_TARGET), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
argsman.AddArg("-maxuploadtarget=<n>", strprintf("Tries to keep outbound traffic under the given target per 24h. Limit does not apply to peers with 'download' permission or blocks created within past week. 0 = no limit (default: %s). Optional suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000 base while uppercase is 1024 base", DEFAULT_MAX_UPLOAD_TARGET), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||||
argsman.AddArg("-onion=<ip:port>", "Use separate SOCKS5 proxy to reach peers via Tor onion services, set -noonion to disable (default: -proxy)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
argsman.AddArg("-onion=<ip:port>", "Use separate SOCKS5 proxy to reach peers via Tor onion services, set -noonion to disable (default: -proxy)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||||
argsman.AddArg("-i2psam=<ip:port>", "I2P SAM proxy to reach I2P peers and accept I2P connections (default: none)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
argsman.AddArg("-i2psam=<ip:port>", "I2P SAM proxy to reach I2P peers and accept I2P connections (default: none)", ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);
|
||||||
|
@ -3689,7 +3689,11 @@ void PeerManagerImpl::ProcessMessage(
|
|||||||
|
|
||||||
int64_t nTimeOffset = nTime - GetTime();
|
int64_t nTimeOffset = nTime - GetTime();
|
||||||
pfrom.nTimeOffset = nTimeOffset;
|
pfrom.nTimeOffset = nTimeOffset;
|
||||||
AddTimeData(pfrom.addr, nTimeOffset);
|
if (!pfrom.IsInboundConn()) {
|
||||||
|
// Don't use timedata samples from inbound peers to make it
|
||||||
|
// harder for others to tamper with our adjusted time.
|
||||||
|
AddTimeData(pfrom.addr, nTimeOffset);
|
||||||
|
}
|
||||||
|
|
||||||
// Feeler connections exist only to verify if address is online.
|
// Feeler connections exist only to verify if address is online.
|
||||||
if (pfrom.IsFeelerConn()) {
|
if (pfrom.IsFeelerConn()) {
|
||||||
|
@ -334,7 +334,7 @@ BOOST_AUTO_TEST_CASE(updatecoins_simulation_test)
|
|||||||
tx.vout.resize(1);
|
tx.vout.resize(1);
|
||||||
tx.vout[0].nValue = i; //Keep txs unique unless intended to duplicate
|
tx.vout[0].nValue = i; //Keep txs unique unless intended to duplicate
|
||||||
tx.vout[0].scriptPubKey.assign(InsecureRand32() & 0x3F, 0); // Random sizes so we can test memory usage accounting
|
tx.vout[0].scriptPubKey.assign(InsecureRand32() & 0x3F, 0); // Random sizes so we can test memory usage accounting
|
||||||
unsigned int height = InsecureRand32();
|
const int height{int(InsecureRand32() >> 1)};
|
||||||
Coin old_coin;
|
Coin old_coin;
|
||||||
|
|
||||||
// 2/20 times create a new coinbase
|
// 2/20 times create a new coinbase
|
||||||
@ -403,11 +403,11 @@ BOOST_AUTO_TEST_CASE(updatecoins_simulation_test)
|
|||||||
// Update the expected result to know about the new output coins
|
// Update the expected result to know about the new output coins
|
||||||
assert(tx.vout.size() == 1);
|
assert(tx.vout.size() == 1);
|
||||||
const COutPoint outpoint(tx.GetHash(), 0);
|
const COutPoint outpoint(tx.GetHash(), 0);
|
||||||
result[outpoint] = Coin(tx.vout[0], height, CTransaction(tx).IsCoinBase());
|
result[outpoint] = Coin(tx.vout[0], height, CTransaction{tx}.IsCoinBase());
|
||||||
|
|
||||||
// Call UpdateCoins on the top cache
|
// Call UpdateCoins on the top cache
|
||||||
CTxUndo undo;
|
CTxUndo undo;
|
||||||
UpdateCoins(CTransaction(tx), *(stack.back()), undo, height);
|
UpdateCoins(CTransaction{tx}, *(stack.back()), undo, height);
|
||||||
|
|
||||||
// Update the utxo set for future spends
|
// Update the utxo set for future spends
|
||||||
utxoset.insert(outpoint);
|
utxoset.insert(outpoint);
|
||||||
|
@ -214,7 +214,7 @@ FUZZ_TARGET_INIT(coins_view, initialize_coins_view)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
bool expected_code_path = false;
|
bool expected_code_path = false;
|
||||||
const int height = fuzzed_data_provider.ConsumeIntegral<int>();
|
const int height{int(fuzzed_data_provider.ConsumeIntegral<uint32_t>() >> 1)};
|
||||||
const bool possible_overwrite = fuzzed_data_provider.ConsumeBool();
|
const bool possible_overwrite = fuzzed_data_provider.ConsumeBool();
|
||||||
try {
|
try {
|
||||||
AddCoins(coins_view_cache, transaction, height, possible_overwrite);
|
AddCoins(coins_view_cache, transaction, height, possible_overwrite);
|
||||||
|
@ -51,7 +51,6 @@ implicit-integer-sign-change:bech32.cpp
|
|||||||
implicit-integer-sign-change:common/bloom.cpp
|
implicit-integer-sign-change:common/bloom.cpp
|
||||||
implicit-integer-sign-change:chain.cpp
|
implicit-integer-sign-change:chain.cpp
|
||||||
implicit-integer-sign-change:chain.h
|
implicit-integer-sign-change:chain.h
|
||||||
implicit-integer-sign-change:coins.h
|
|
||||||
implicit-integer-sign-change:compat/stdin.cpp
|
implicit-integer-sign-change:compat/stdin.cpp
|
||||||
implicit-integer-sign-change:compressor.h
|
implicit-integer-sign-change:compressor.h
|
||||||
implicit-integer-sign-change:crc32c/
|
implicit-integer-sign-change:crc32c/
|
||||||
|
Loading…
Reference in New Issue
Block a user