I am trying to understand more about chain states. Basically
Geth is capable of downloading blocks pretty fast now, but getting "known" and "pulled" states takes much longer and seems to be bottlenecked in an unclear way.
syncing chain states exclusively doesn't use much CPU, it seems to use a lot less network bandwidth, and not much disk I/O
Is there any insight into why this can't be done faster? It most likely could be optimized, I am just wondering what it is actually doing? I am guessing it asks other nodes for states and sees what the consensus of those states are before processing it again locally. Still seems like certain states could be processed in parallel, like in some kind of graph or tree until it finds a state that is related to a on another branch and waits for that branch to catch up.