Replies: 1 comment 5 replies
-
I think that you are misreading the state of your node. It is not really that your node has plenty of resources, but rather the chia code is bad, and cannot adjust to network conditions. If you think about it, when you start syncing from scratch (removing your db), it will take few days to get you synchronized. However, when you calculate your data rates, it will be below 2Mbps download. That would imply that you really need just one fully synced node to keep up with the flow, and not put too much strain on that one node. A big part of the problem is that chia is using some garbage numbers to control the network handling (e.g., 80 peers). No one who is sane puts such numbers there, as from one point of view, there are different nodes there (more or less capable), and the network conditions change (more or less transactions per second). Any networking code needs to dynamically adjust to what is at hand. Also, another way of looking at that is that your peers should reflect the state of the network (i.e., when everything is good, it should be ~100% of synced nodes, and during dust storms about 2x-4x * network_space_drop "lagging" nodes. If a node has more of those "lagging" nodes, it implies that it just cannot handle the traffic (the number of connected nodes). Also, when you start seeing nodes that don't have any heights (either none, or 0), that implies that your node is making connections, but is not able to fully handshake with those peers - basically, your node is SOL, yet still it is scheduling those peers for more work - putting strain on db side. The best way for your node is to just drop the number of peers in your config.yaml (say by half, if not, then half again, etc.). It is better to run a node with limited number of peers, rather than to have a dead node on the network. Yet another way of looking at that 80 peers number is from p2p topology. It is enough to have 3 peers to start building a network. Although, that will be a not really resilient network. On the other hand, if every node connects to every node, that would be a super resilient network. With those two extremes, chia developer picked that 80 from a hat, as a sort of compromise, without any understanding of what that implies. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
In the recent dusting events i read something that seems to be a good idea for improving the main node. It would have kept my main node online. It has a lots of cpu, memory and the db on ssd to keep easily afloat. Instead it got "knocked off". Well sort of. My node was full of fallen behind connections so i fell behind too.
I propose:
Monitor the list of active nodes if they move with the chain. Then if the amount of nodes that is not moving with the chain is above 70%(that is debatable off course) ban some 10% of the slow ones for a while to make room for new connections.
Of course we need to help people syncing up but it should be balanced.
Thanks for the good work, by the way. Its an amazing product and a fine piece of engineering working like this out of the box.
Beta Was this translation helpful? Give feedback.
All reactions