I started wondering recently if generated ethereum addresses were evenly distributed in the address space and figured I could do some basic stats to see if they're clustered in one way or another.
My first thought was to run some JS code in geth that steps back through each block (using
web3.eth.getBlock), adding all transactions with tx.to or tx.from addresses to a map. I tried that with a couple thousand blocks last night and it was painfully slow, there's no way I can traverse the whole blockchain history like that.
Is there a better way to accomplish this?