You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since we use the DataAvailabilityHeader to commit to block data, the PartSetHeader is redundant and should be removed from the header so it is not included in the header hash or signed over.
Details
As described in ADR 007 #504, we are treating our fork of tendermint like a black box and minimizing changes. This means reverting the changes we've made so far to get rid of the PartSetHeader (see #509 and #510). Despite this, we still don't want to sign over the PartSetHeader or include it in the header hash, as it is a redundant commit to the block data. Previously, this was already done in #456, which removed the PSH from the header and the canonical vote. We can no longer use that mechanism to remove the PSH from the header, since we still need the BlockID and are reverting #441 in #510.
Proposal
Replace the BlockID struct with a simple hash only in header.LastBlockID and CanonicalVote.CanonicalBlockID. Notably, we will also likely have to change some BlockID methods to not use the PartSetHeader such as Equals, ValidateBasic, and Key.
Implementation
replace header.LastBlockID with a simple hash
replace CanonicalVote.CanonicalBlockID with a simple hash
investigate whether or not we have to alter certain methods of BlockID to use the PSH
Summary
Since we use the DataAvailabilityHeader to commit to block data, the PartSetHeader is redundant and should be removed from the header so it is not included in the header hash or signed over.
Details
As described in ADR 007 #504, we are treating our fork of tendermint like a black box and minimizing changes. This means reverting the changes we've made so far to get rid of the PartSetHeader (see #509 and #510). Despite this, we still don't want to sign over the PartSetHeader or include it in the header hash, as it is a redundant commit to the block data. Previously, this was already done in #456, which removed the PSH from the header and the canonical vote. We can no longer use that mechanism to remove the PSH from the header, since we still need the BlockID and are reverting #441 in #510.
Proposal
Replace the
BlockID
struct with a simple hash only inheader.LastBlockID
andCanonicalVote.CanonicalBlockID
. Notably, we will also likely have to change someBlockID
methods to not use thePartSetHeader
such asEquals
,ValidateBasic
, andKey
.Implementation
header.LastBlockID
with a simple hashCanonicalVote.CanonicalBlockID
with a simple hashBlockID
to use the PSHReferences
ADR #504
Blocked by #510
Blocked by #492
The text was updated successfully, but these errors were encountered: