Second Look at Weak Blocks

What level of validation of weak blocks is required to share the weak block transactions?

Well, it is possible to introduce “delayed validation”. For example: validating the block hashes would be the first step, then validating only the coinbase transaction (because it contains the basic block reward), and later, validating a single high-fee-paying transaction (and when we will run out of the basic block reward, people will focus on those). Because I guess you don’t have to validate 100% of the block, if it does not meet all consensus rules. It is “purely informational”, and can be used for example to distribute the coinbase reward, by handling “weak blocks” as “shares”. Also, when it comes to header-only validation, it may be useful to trace all valid block headers, to properly calculate the global difficulty.

What PoW “multiplier”(factor decrease from consensus-required) should we set?

It could be “difficulty per X seconds, based on valid received blocks”. Which means, that if your node receives more block headers, it will raise the locally accepted difficulty, and if there is nothing for a longer time, then weaker blocks are accepted. So, it could be locally adjusted, based on the traffic. And of course, not every node needs every block, because they are “outside consensus rules” anyway.

How many blocks should we buffer?

This is similar question to “how many blocks should we prune?”. And I guess, that the proper answer is similar, and could be expressed by the stored bytes, instead of the number of blocks (or could be both, like in pruning, for example 550 MB, and 288 blocks).