I want to do some brief analysis to quantify how much one could free when self-destructing a contract. How could I calculate how much space can nodes save when selfdestructing a given contract?
I understand that "nothing on the blockchain is destroyed", but I also understand that there is no need to locally store the state of a contract if this contract is now self-destructed. No-one can call this contract onward and the future state trie will forever be unaffected by this contract after the self-destruction, since the state of the contract can't change (apart from ETH sent to it) nor be called. In addition, there is an incentive built in the SELFDESTRUCT upcode (i.e. negative gas) that doesn't really make sense if nodes gain nothing from having contracts destroyed. Why create an incentive for something that would have no benifits? There must be a potential benefit from freeing contracts.
Is this dealt at the client level? If so, I assume different clients might deal with self-destructed contracts differently. In either case, how can I calculate this?
Examples: Looking at the KyberNetwork crowdsale contract, it's clear that this contract will never be used again, a similar situation in most token sale contract. How much space could nodes free by not storing the state of this contract?