-
Notifications
You must be signed in to change notification settings - Fork 14
Add StateFraudProof and BadEncodingFraudProof to networking.md #190
Conversation
Added struct for state fraud proofs. To see how the data types within the struct will be used to verify state fraud proofs, see the link https://docs.google.com/document/d/1do1_CMiiMFU9se9nXN9uIrQLN3GqcyeEAjZcwSUBx2w/edit?usp=sharing.
Data type for the StateFraudProof is now ready for review. |
Separated headers[ ] into headerForTxns and headerForISRs.
Fixed the type for intermediateStateElements.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Commits above address the reviews made by John and (i) adds the new heading to ToC, (ii) ends sentences with '.', (iii) fixes the issues around 'isCol'. |
StateFraudProof added to networking.md.
BadEncodingFraudProof added to networking.md
Each row encapsulates the text with no whitespace padding.
Fixed the links to ./data_structures.md.
Added whitespace padding.
Padding fixed on networking.md
Where in the specs would the logic for verifying these proofs sit? |
Changed the name of 'stateShareProofs' to 'isrShareProofs'.
Shall I create a new file in the specs to contain the pseudocodes for the verify and create methods of 'StateFraudProof's and 'BadEncodingFraudProof's since these pseudocodes are part of my ToDo list for the next week? |
Hmm. For now the verification pseudocode can be placed under the respective data structure definitions IMO. If it looks messy or too busy, they can be moved. |
Removed trailing spaces.
Added references to the protobuf definitions for the fraud proofs.
Shall I add protobuf references for only the fraud proofs or shall I add them for every data structure that are used within the fraud proofs and defined elsewhere, e.g NamespaceMerkleTreeInclusionProof? In this case, I will also have to add a comment above their protobuf definitions stating that they are an anchor. |
Created PR#192 for adding protobuf definitions. |
To avoid a circular dependency, I would just transclude #192 into this PR. Otherwise, #192 depends on this PR to define the structures, and this PR depends on #192 to have the proto files to include inline. Generally, PRs should be conceptually encapsulated, and not separated by files. A single PR could touch multiple files. |
Edited types.proto.
Added protobuf definitions for all Celestia state elements.
Fixed anchor notation.
Latest state of the PRs:
|
It's not necessary at this time. If we do it it should be for all data structures, sometime in the future.
I'm a bit confused. Why is messages paid a separate field? Why not just have it be the same as everything else in the state. i.e. message StateElement {
// key of the state element
// 32-bytes
bytes key = 1;
// value can be of different types depending on the state element.
// There exists a unique protobuf for different state elements, given at the bottom of this file.
oneof value = {
Account account = 2;
Delegation delegation = 3;
Validator validator = 4;
ActiveValidatorCount activeValidatorCount = 5;
ActiveVotingPower activeVotingPower = 6;
ProposerBlockReward proposerBlockReward = 7;
ProposerInitialVotingPower proposerInitialVotingPower = 8;
ValidatorQueueHead validatorQueueHead = 9;
MessagePaid messagePaid = 10;
MessagePaidHead messagePaidHead = 11;
}
} |
Included MessagePaid inside the oneof.
Included the MessagePaid inside oneof. The next item on my agenda is to add the pseudocodes for create and verify methods of fraud proofs to networking.md. |
Validator.proto added to the specs. Validator type is defined here and is used by the state fraud proof type defined in types.proto.
Validator type commented out.
This is Tendermint related and will be deleted from celestia-specs.
Validator name changed to StateValidator to avoid confusion with Tendermint's validator. Type for block height changed to uint64 from int64.
Places where block height is used are updated to reflect the latest changes to uint64.
Reverted height back to int64 from uint64 as talked before.
Added struct for state fraud proofs. To see how the data types within the struct will be used to verify state fraud proofs, see the link https://docs.google.com/document/d/1do1_CMiiMFU9se9nXN9uIrQLN3GqcyeEAjZcwSUBx2w/edit?usp=sharing.