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. Commented Mar 22, 2021 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
    – user103136
    Commented Mar 22, 2021 at 12:13

1 Answer 1

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 and acknowledge you have read our privacy policy.