From 7e9c2912e39677007b41e551632fb6f808e24749 Mon Sep 17 00:00:00 2001 From: William Banfield Date: Wed, 11 Aug 2021 17:31:20 -0400 Subject: [PATCH] update image for dark background and update proposal validation language --- .../adr-071-proposer-based-timestamps.md | 19 ++++++++++++------ docs/architecture/img/pbts-message.png | Bin 31879 -> 32028 bytes 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/architecture/adr-071-proposer-based-timestamps.md b/docs/architecture/adr-071-proposer-based-timestamps.md index 701c894ba..7bbcb143b 100644 --- a/docs/architecture/adr-071-proposer-based-timestamps.md +++ b/docs/architecture/adr-071-proposer-based-timestamps.md @@ -65,7 +65,11 @@ Implement proposer-based timestamps and remove `BFTTime`. ### Overview Implementing proposer-based timestamps will require a few changes to Tendermint’s code. -These changes will be to the state package, the vote types, and to the consensus parameters. +These changes will be to the following components: +* The `internal/consensus/` package. +* The `state/` package. +* The `Vote`, `CommitSig`, `Commit` and `Header` types. +* The consensus parameters. ### Proposal Timestamp and Block Timestamp @@ -103,7 +107,7 @@ This field will be populated each height with the proposal timestamp decided on This timestamp will also be saved with the rest of the commit in the state store [when the commit is finalized](https://github.com/tendermint/tendermint/blob/e8013281281985e3ada7819f42502b09623d24a0/internal/consensus/state.go#L1611) so that it can be recovered if Tendermint crashes. Changes to the `CommitSig` and `Commit` struct are detailed below. -### Changes to CommitSig +### Changes to `CommitSig` The [CommitSig](https://github.com/tendermint/tendermint/blob/a419f4df76fe4aed668a6c74696deabb9fe73211/types/block.go#L604) struct currently contains a timestamp. This timestamp is the local time of the validator when it issued a `Precommit` for the block. @@ -120,7 +124,7 @@ type CommitSig struct { } ``` -### Changes to Commit +### Changes to `Commit` The [Commit](https://github.com/tendermint/tendermint/blob/a419f4df76fe4aed668a6c74696deabb9fe73211/types/block.go#L746) struct does not currently contain a timestamp. The timestamps in the `Commit.CommitSig` entries are currently used to build the block timestamp. @@ -183,13 +187,13 @@ It is used in the new algorithm to [calculate a timeout for the propose step](ht The consensus will be updated to include this `Timestamp` field as follows: -```go +```diff type ConsensusParams struct { Block BlockParams `json:"block"` Evidence EvidenceParams `json:"evidence"` Validator ValidatorParams `json:"validator"` Version VersionParams `json:"version"` - Timestamp TimestampParams `json:"timestamp"` +++ Timestamp TimestampParams `json:"timestamp"` } ``` @@ -201,7 +205,7 @@ type TimestampParams struct { } ``` -### Changes to Header +### Changes to `Header` The [Header](https://github.com/tendermint/tendermint/blob/a419f4df76fe4aed668a6c74696deabb9fe73211/types/block.go#L338) struct currently contains a timestamp. This timestamp is set as the `BFTtime` derived from the block's `LastCommit.CommitSig` timestamps. @@ -300,6 +304,9 @@ This validation logic will be updated to check that the proposal timestamp is wi If the timestamp is not within `PRECISION` of the validator’s local time, the proposal will not be considered valid. The validator will also check that the proposal time is greater than the block timestamp from the previous height. +If no valid proposal is received by the proposal timeout, the validator will prevote nil. +This is identical to the current logic. + #### Block timestamp validation The [validBlock function](https://github.com/tendermint/tendermint/blob/c3ae6f5b58e07b29c62bfdc5715b6bf8ae5ee951/state/validation.go#L14) currently [validates the proposed block timestamp in three ways](https://github.com/tendermint/tendermint/blob/c3ae6f5b58e07b29c62bfdc5715b6bf8ae5ee951/state/validation.go#L118). diff --git a/docs/architecture/img/pbts-message.png b/docs/architecture/img/pbts-message.png index b2f21dad416c73f12d35127c43212c4621bfdcad..400f3569021ca719fe06f20e0db17940091751a1 100644 GIT binary patch literal 32028 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 literal 31879 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