mirror of
https://github.com/fluencelabs/tendermint
synced 2025-07-30 19:51:58 +00:00
state: require block.Time of the fist block to be genesis time (#2594)
* require block.Time of the fist block to be genesis time Refs #2587: ``` We only start validating block.Time when Height > 1, because there is no commit to compute the median timestamp from for the first block. This means a faulty proposer could make the first block with whatever time they want. Instead, we should require the timestamp of block 1 to match the genesis time. I discovered this while refactoring the ValidateBlock tests to be table-driven while working on tests for #2560. ``` * do not accept blocks with negative height * update changelog and spec * nanos precision for test genesis time * Fix failing test (#2607)
This commit is contained in:
committed by
Ethan Buchman
parent
3744e8271d
commit
e1538bf67e
@@ -230,6 +230,15 @@ It must equal the weighted median of the timestamps of the valid votes in the bl
|
||||
Note: the timestamp of a vote must be greater by at least one millisecond than that of the
|
||||
block being voted on.
|
||||
|
||||
The timestamp of the first block must be equal to the genesis time (since
|
||||
there's no votes to compute the median).
|
||||
|
||||
```
|
||||
if block.Header.Height == 1 {
|
||||
block.Header.Timestamp == genesisTime
|
||||
}
|
||||
```
|
||||
|
||||
See the section on [BFT time](../consensus/bft-time.md) for more details.
|
||||
|
||||
### NumTxs
|
||||
|
Reference in New Issue
Block a user