From fe632ea32a89c3d9804bbd6e3ce9391b1d5a0993 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Fri, 26 Jan 2018 17:26:11 -0500 Subject: [PATCH] spec: minor fixes --- docs/specification/new-spec/blockchain.md | 10 ++++------ docs/specification/new-spec/encoding.md | 2 +- docs/specification/new-spec/p2p/connection.md | 2 +- docs/specification/new-spec/p2p/node.md | 4 ++-- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/specification/new-spec/blockchain.md b/docs/specification/new-spec/blockchain.md index 3f8849b15..d95d5d330 100644 --- a/docs/specification/new-spec/blockchain.md +++ b/docs/specification/new-spec/blockchain.md @@ -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: -- `Block` +- `Block` - `Header` - `Vote` - `BlockID` @@ -232,7 +232,7 @@ The first block has `block.Header.TotalTxs = block.Header.NumberTxs`. ### LastBlockID -For the previous block's BlockID: +LastBlockID is the previous block's BlockID: ```go 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. -**Note:** this field can only be further verified by real-time participants in the consensus. -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. +NOTE: we also need to track the round. -### EvidenceHash +## EvidenceHash ```go block.EvidenceHash == SimpleMerkleRoot(block.Evidence) diff --git a/docs/specification/new-spec/encoding.md b/docs/specification/new-spec/encoding.md index 97dbf0477..e0317b7ef 100644 --- a/docs/specification/new-spec/encoding.md +++ b/docs/specification/new-spec/encoding.md @@ -189,7 +189,7 @@ Note how the fields within each level are sorted. ### MakeParts -TMBIN encodes an object and slices it into parts. +Encode an object using TMBIN and slice it into parts. ```go MakeParts(object, partSize) diff --git a/docs/specification/new-spec/p2p/connection.md b/docs/specification/new-spec/p2p/connection.md index 071b8f1b6..9b5e49675 100644 --- a/docs/specification/new-spec/p2p/connection.md +++ b/docs/specification/new-spec/p2p/connection.md @@ -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 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. diff --git a/docs/specification/new-spec/p2p/node.md b/docs/specification/new-spec/p2p/node.md index 6410cc769..589e3b436 100644 --- a/docs/specification/new-spec/p2p/node.md +++ b/docs/specification/new-spec/p2p/node.md @@ -1,12 +1,12 @@ # 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. ## Seeds 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 that continuously explores to validate the availability of peers.