I wrote this on Discord but feel it is worth putting here for long term and further focused discussion.
It seems to me to be a very very simple way to ensure the AEC is largely sync'd between nodes during saturation, although it does still require PoW (personally I like PoW as at least it's not free to spam to infinity).
So here we go.
- Keep the buckets.
- Order by PoW within the buckets (easy to beat the spammers PoW or just use a different bucket)
- Anything with the same PoW is ordered alphabetically by block hash, still within the bucket.
- RR carries on as normal.
All nodes will agree on PoW and all nodes will agree on the alphabet. Therefore AEC should largely consist of the same blocks across all nodes.
Nothing fancy, should be quick to implement to get V22 off the ground.
Also has the added benefit of clearing the existing backlog on mainnet as LRU for that backlog doesn't properly exist, but alphabetical ordering will work so simply.
Once a better solution comes about change it for sure but to me I see this is the simplest way to keep nodes sync'd. LRU is too vague and nodes can disagree ever so slightly causing desync.