0

If incoming connections are disabled, Max full-relay connections are 8: src/net.h#L64 and Max block-relay-only connections are 2: src/net.h#L68

How are these decided and how can a user change these values?

Its mentioned in doc/reduce-memory.md that each connection takes up some memory. What if the user is okay with it?

Will changing MAX_OUTBOUND_FULL_RELAY_CONNECTIONS to 32 or above help in faster sync? Or dbcache and par are the only options to improve sync?

I tried changing it to 40 but extra nodes keep disconnecting. I see this line in the logs src/net_processing.cpp#L4581 and not sure if its related to DoS protection or something else.

peers

Update 1: I commented the if statement here: src/net_processing.cpp#L4577 Compiled successfully and tests passed. I could see more than 15 peers connected but sync almost paused after few minutes and nothing happened. Couldn't find anything useful in logs.

peers-sync

2
  • 1
    Number of connections is not the bottleneck for synchronization speed.
    – darosior
    Mar 22 at 10:35
  • Can changing number of connections affect IBD? How will it work with 1-2 peers and what will be the change with 20-30 peers. At least the downloading part if not verification
    – Prayank
    Mar 22 at 12:13
0

outgoing-full-relay-16

Issue resolved. I was able to get 16 outgoing full relay connections that are stable using the below changes in code:

Adding below lines in src/init.cpp

argsman.AddArg("-maxoutfullrelay=<n>", strprintf("Maintain at most <n> outbound full relay connections to peers (default: %u)", MAX_OUTBOUND_FULL_RELAY_CONNECTIONS), ArgsManager::ALLOW_ANY, OptionsCategory::CONNECTION);

int nMaxOutboundFullRelay;

nMaxOutboundFullRelay = args.GetArg("-maxoutfullrelay", MAX_OUTBOUND_FULL_RELAY_CONNECTIONS);
nMaxOutboundFullRelay = std::max(nMaxOutboundFullRelay, 0);

connOptions.m_max_outbound_full_relay = std::min(nMaxOutboundFullRelay, connOptions.nMaxConnections);

And maxoutfullrelay=16 in bitcoin.conf. Tried with 20 as well and it works fine.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.