mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-12 21:01:21 +00:00
spec: minor fixes
This commit is contained in:
@ -6,7 +6,7 @@ Here we describe the data structures in the Tendermint blockchain and the rules
|
|||||||
|
|
||||||
The Tendermint blockchains consists of a short list of basic data types:
|
The Tendermint blockchains consists of a short list of basic data types:
|
||||||
|
|
||||||
- `Block`
|
- `Block`
|
||||||
- `Header`
|
- `Header`
|
||||||
- `Vote`
|
- `Vote`
|
||||||
- `BlockID`
|
- `BlockID`
|
||||||
@ -232,7 +232,7 @@ The first block has `block.Header.TotalTxs = block.Header.NumberTxs`.
|
|||||||
|
|
||||||
### LastBlockID
|
### LastBlockID
|
||||||
|
|
||||||
For the previous block's BlockID:
|
LastBlockID is the previous block's BlockID:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
prevBlockParts := MakeParts(prevBlock, state.LastConsensusParams.BlockGossip.BlockPartSize)
|
prevBlockParts := MakeParts(prevBlock, state.LastConsensusParams.BlockGossip.BlockPartSize)
|
||||||
@ -297,11 +297,9 @@ block.Header.Proposer in state.Validators
|
|||||||
|
|
||||||
Original proposer of the block. Must be a current validator.
|
Original proposer of the block. Must be a current validator.
|
||||||
|
|
||||||
**Note:** this field can only be further verified by real-time participants in the consensus.
|
NOTE: we also need to track the round.
|
||||||
This is because the same block can be proposed in multiple rounds for the same height
|
|
||||||
and we do not track the initial round that the block was proposed.
|
|
||||||
|
|
||||||
### EvidenceHash
|
## EvidenceHash
|
||||||
|
|
||||||
```go
|
```go
|
||||||
block.EvidenceHash == SimpleMerkleRoot(block.Evidence)
|
block.EvidenceHash == SimpleMerkleRoot(block.Evidence)
|
||||||
|
@ -189,7 +189,7 @@ Note how the fields within each level are sorted.
|
|||||||
|
|
||||||
### MakeParts
|
### MakeParts
|
||||||
|
|
||||||
TMBIN encodes an object and slices it into parts.
|
Encode an object using TMBIN and slice it into parts.
|
||||||
|
|
||||||
```go
|
```go
|
||||||
MakeParts(object, partSize)
|
MakeParts(object, partSize)
|
||||||
|
@ -22,7 +22,7 @@ The ping and pong messages consist of writing a single byte to the connection; 0
|
|||||||
|
|
||||||
When we haven't received any messages on an `MConnection` in time `pingTimeout`, we send a ping message.
|
When we haven't received any messages on an `MConnection` in time `pingTimeout`, we send a ping message.
|
||||||
When a ping is received on the `MConnection`, a pong is sent in response only if there are no other messages
|
When a ping is received on the `MConnection`, a pong is sent in response only if there are no other messages
|
||||||
to send and the peer has not sent us too many pings (how many is too many?).
|
to send and the peer has not sent us too many pings (TODO).
|
||||||
|
|
||||||
If a pong or message is not received in sufficient time after a ping, the peer is disconnected from.
|
If a pong or message is not received in sufficient time after a ping, the peer is disconnected from.
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
# Tendermint Peer Discovery
|
# Tendermint Peer Discovery
|
||||||
|
|
||||||
A Tendermint P2P network has different kinds of nodes with different requirements for connectivity compared to other types of networks.
|
A Tendermint P2P network has different kinds of nodes with different requirements for connectivity to one another.
|
||||||
This document describes what kind of nodes Tendermint should enable and how they should work.
|
This document describes what kind of nodes Tendermint should enable and how they should work.
|
||||||
|
|
||||||
## Seeds
|
## Seeds
|
||||||
|
|
||||||
Seeds are the first point of contact for a new node.
|
Seeds are the first point of contact for a new node.
|
||||||
They return a list of known active peers and disconnect....if?
|
They return a list of known active peers and then disconnect.
|
||||||
|
|
||||||
Seeds should operate full nodes with the PEX reactor in a "crawler" mode
|
Seeds should operate full nodes with the PEX reactor in a "crawler" mode
|
||||||
that continuously explores to validate the availability of peers.
|
that continuously explores to validate the availability of peers.
|
||||||
|
Reference in New Issue
Block a user