If we split pubsub message IDs into "validation IDs" and "propagation IDs", we'll be able to drop equivalent pubsub messages even if they're not 100% identical.
At the validation layer, use the message hash to deduplicate (make sure to make this work with rebroadcast).
After successful validation, identify the message based on the hash of the gpbft value.
An improved finality certificate protocol. But that can always be punted till later.
Avoiding justification validation. Given #592, I'm not sure if that's still critical. Validation of justification signatures is just as fast as validating the message so, at most, we'd cut validation time by 1/2 (but I'm not sure if that's worth it, also https://github.com/filecoin-project/go-f3/issues/614).
If we split pubsub message IDs into "validation IDs" and "propagation IDs", we'll be able to drop equivalent pubsub messages even if they're not 100% identical.