In your latest What's New list (April 30, v 2.73) you indicate "peer connection speed evaluation for rotation is now based on a combination of short, medium, and long averages." That's a useful technique for integrating multiple frequency/amplitude variables into a single frequency, amplitude or phase representation. I use it in my work, evaluating stock price momentum.
I'm interested to learn some details of the algorithm or even just the arithmetic you've started to use. Is this something minor enough yet of sufficient interest for you to share and perhaps discuss?
on 2020/05/05 10:50:50 PM
There's not much to it, at this point. We are working on having user-configurable scripting so it can be fully customized, but that's still a bit further down the road.
Currently we rank the peers on a weighted average of a few simple moving averages, for the various sample durations. Then on the ranked list we can set a cutoff point using a more complex algorithm that looks at the result of the previous calculation from all connected peers in totality (eg. the climb profile from slowest to fastest), and then do the actual choking / disconnect if the timing is right and a few other minor conditions are met. It took a huge amount of experimentation over years to get a well-performing algorithm, and changes need to be made regularly because other clients evolve their patterns as well, so it is a bit of an arms race, somewhat like HFT bots in the markets but on a much longer timescale.
The next step is an adaptive AI controlled choking / rotation, that would probably be optimal. But very costly in terms of research, development, and testing time.