Increase BlockHashCount parameter
The work here involves increasing the BlockHashCount from 2400 to 4096.
Reasons
This change uses the same reasoning from a previous PR #1086 that increased the BlockHashCount initially. As it turns out, it would have been good to have the parameter set to a greater limit in the first place. Coinbase is running into expiration issues when signing certain transactions. The extra buffer that would be added by this increase would prevent less failures of broadcasting transactions. Specifically, we could set the eraPeriod to a much later time, so the node would be able to look back further when looking for a block index, which would allow us to have a transaction sit around longer waiting to be signed.
As mentioned in the previous PR, immortals are still not an option due to their potential to replay attacks.
Impact
This is where I could use the help of some experienced parity developers to help test this appropriately. From previous discussions with @joepetrowski , it was mentioned that with the 4096 value, it would land on the 3rd level of the trie which should be doable in terms of performance. I'm hoping that this could be verified.
User @marcin-cb, please sign the CLA here.
Side-note:
pallet-mmris using this as window-size for how long it holds fork-specific offchain db entries before considering them "canonical" (see here).
This should clearly get its own value then. This value is not in any way related on when something can be seen as canonical.
bot merge