I went ahead and started specifying DoS limits in terms of "inputs cost" (sigops + potentially the size of the wit vector by some divisor) and "outputs cost". Both of these "costs" are weighed based on witness program version, allowing for upgradeable relaxing of DoS limits.
I'm really not sure what the optimal values are right now. This will require some further testing.
The idea is, we will have a slightly high max extension block size, but in reality, the max size ext. block will be much smaller since it is limited by total "transaction cost", which is upgradeable. In the future, we may upgrade to hit the max extension block size if a new soft fork is implemented.
I went ahead and started specifying DoS limits in terms of "inputs cost" (sigops + potentially the size of the wit vector by some divisor) and "outputs cost". Both of these "costs" are weighed based on witness program version, allowing for upgradeable relaxing of DoS limits.
I'm really not sure what the optimal values are right now. This will require some further testing.
The idea is, we will have a slightly high max extension block size, but in reality, the max size ext. block will be much smaller since it is limited by total "transaction cost", which is upgradeable. In the future, we may upgrade to hit the max extension block size if a new soft fork is implemented.
cc @josephpoon @indutny