Probabilistic churn in selection
This changes how to select which node account gets churned in. Before we were just selecting based on the higher bond wins. Now we are randomly selecting with a relationship to bond size.
So say we have two nodes waiting to be churned in. NodeA has 100 bond, and NodeB has 200. NodeB has a 67% chance to be selected, while NodeA would have 33% chance.
We are making this change for two reasons.
- If we attempt to churn and a node is unavailable, we don't want to keep trying that same node over and over again. That would give a single node an ability to halt churning entirely.
- This also makes it more difficult for a sybil attack. Before you could do it with enough capital, but now you need high capital and luck.