Peter R / awemany,
The user-configurable software blocksize limit proposal got me thinking a bit about what features would be best for a full node implementation.
I like to think about individual incentives, what individual actors in a system may be motivated to do, then after extrapolate out to see how these choices would affect the whole system. In fact, the realization that Bitcoin could work in an environment where all the participants follow their individual incentives was what interested me in it in the first place.
So what do I, individually, want in a full node implementation? I am not a miner. I run a full node (on my crappy 6-year-old laptop) because I want to be able to monitor transactions on the Bitcoin network and make sure they are valid. So to be able to best do this, the software should:
1) Keep track of the longest proof-of-work blockchain
2) monitor other branching proof-of-work chains and let me know about them
3) detect what what consensus rules are being followed in any branching proof-of-work chains.
Software that does this would allow an individual to make informed decisions about what transactions they are willing to accept, and help them mitigate the risk of falling out of consensus. It could also possibly enable more sophisticated actions such as speculating between competing blockchain forks.
So if everyone else also followed this behaviour, what would happen? It seems to me that the overall system would end up being more robust, with less risk of accidental blockchain forks, and any forks that do occur resolving quickly to global consensus again.