diff --git a/rfc/README.md b/rfc/README.md index 9682b9f1a..ef91e9d30 100644 --- a/rfc/README.md +++ b/rfc/README.md @@ -21,3 +21,5 @@ If recorded decisions turned out to be lacking, convene a discussion, record the Some RFC's will be presented at a Tendermint Dev Session. If you are an outside contributor and have submitted a RFC, you may be invited to present your RFC at one of these calls. ## Table of Contents + +[001-block-retention](./001-block-retention.md) diff --git a/spec/README.md b/spec/README.md index 4ed12aef3..fcec18f63 100644 --- a/spec/README.md +++ b/spec/README.md @@ -22,9 +22,9 @@ please submit them to our [bug bounty](https://tendermint.com/security)! ### Data Structures -- [Encoding and Digests](./blockchain/encoding.md) -- [Blockchain](./blockchain/blockchain.md) -- [State](./blockchain/state.md) +- [Encoding and Digests](./core/encoding.md) +- [Blockchain](./core/data_structures.md) +- [State](./core/state.md) ### Consensus Protocol diff --git a/spec/abci/README.md b/spec/abci/README.md index 4bf311119..128f24551 100644 --- a/spec/abci/README.md +++ b/spec/abci/README.md @@ -10,7 +10,7 @@ _methods_, where each method has a corresponding `Request` and `Response` message type. Tendermint calls the ABCI methods on the ABCI application by sending the `Request*` messages and receiving the `Response*` messages in return. -All message types are defined in a [protobuf file](https://github.com/tendermint/tendermint/blob/master/proto/abci/types.proto). +All message types are defined in a [protobuf file](https://github.com/tendermint/tendermint/blob/master/proto/tendermint/abci/types.proto). This allows Tendermint to run applications written in any programming language. This specification is split as follows: diff --git a/spec/abci/abci.md b/spec/abci/abci.md index 2188c07bf..663c51df7 100644 --- a/spec/abci/abci.md +++ b/spec/abci/abci.md @@ -3,7 +3,7 @@ ## Overview The ABCI message types are defined in a [protobuf -file](https://github.com/tendermint/tendermint/blob/master/proto/abci/types.proto). +file](https://github.com/tendermint/tendermint/blob/master/proto/tendermint/abci/types.proto). ABCI methods are split across four separate ABCI _connections_: diff --git a/spec/abci/client-server.md b/spec/abci/client-server.md index c5c77be89..967199455 100644 --- a/spec/abci/client-server.md +++ b/spec/abci/client-server.md @@ -9,7 +9,7 @@ Applications](./apps.md). ## Message Protocol The message protocol consists of pairs of requests and responses defined in the -[protobuf file](https://github.com/tendermint/tendermint/blob/master/proto/abci/types.proto). +[protobuf file](https://github.com/tendermint/tendermint/blob/master/proto/tendermint/abci/types.proto). Some messages have no fields, while others may include byte-arrays, strings, integers, or custom protobuf types. @@ -49,7 +49,7 @@ If GRPC is available in your language, this is the easiest approach, though it will have significant performance overhead. To get started with GRPC, copy in the [protobuf -file](https://github.com/tendermint/tendermint/blob/master/proto/abci/types.proto) +file](https://github.com/tendermint/tendermint/blob/master/proto/tendermint/abci/types.proto) and compile it using the GRPC plugin for your language. For instance, for golang, the command is `protoc --go_out=plugins=grpc:. types.proto`. See the [grpc documentation for more details](http://www.grpc.io/docs/). diff --git a/spec/blockchain/readme.md b/spec/blockchain/readme.md deleted file mode 100644 index bd9b7e4f4..000000000 --- a/spec/blockchain/readme.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -cards: true ---- - -# Blockchain diff --git a/spec/consensus/consensus.md b/spec/consensus/consensus.md index 9c43ea615..93696ab31 100644 --- a/spec/consensus/consensus.md +++ b/spec/consensus/consensus.md @@ -17,7 +17,7 @@ vote](https://godoc.org/github.com/tendermint/tendermint/types#FirstPrecommit) for something. - A vote _at_ `(H,R)` is a vote signed with the bytes for `H` and `R` - included in its [sign-bytes](../blockchain/blockchain.md#vote). + included in its [sign-bytes](../core/data_structures.md#vote). - _+2/3_ is short for "more than 2/3" - _1/3+_ is short for "1/3 or more" - A set of +2/3 of prevotes for a particular block or `` at @@ -251,7 +251,7 @@ commit-set) are each justified in the JSet with no duplicitous vote signatures (by the committers). - **Lemma**: When a fork is detected by the existence of two - conflicting [commits](../blockchain/blockchain.md#commit), the + conflicting [commits](../core/data_structures.md#commit), the union of the JSets for both commits (if they can be compiled) must include double-signing by at least 1/3+ of the validator set. **Proof**: The commit cannot be at the same round, because that diff --git a/spec/blockchain/blockchain.md b/spec/core/data_structures.md similarity index 99% rename from spec/blockchain/blockchain.md rename to spec/core/data_structures.md index 38b87eabc..86c51d704 100644 --- a/spec/blockchain/blockchain.md +++ b/spec/core/data_structures.md @@ -1,9 +1,7 @@ -# Blockchain +# Data Structures Here we describe the data structures in the Tendermint blockchain and the rules for validating them. -## Data Structures - The Tendermint blockchains consists of a short list of basic data types: - `Block` diff --git a/spec/blockchain/encoding.md b/spec/core/encoding.md similarity index 100% rename from spec/blockchain/encoding.md rename to spec/core/encoding.md diff --git a/spec/core/readme.md b/spec/core/readme.md new file mode 100644 index 000000000..5302239c7 --- /dev/null +++ b/spec/core/readme.md @@ -0,0 +1,11 @@ +--- +cards: true +--- + +# Core + +This section describes the core types and functionality of the Tendermint protocol implementation. + +[Core Data Structures](./data_structures.md) +[Encoding](./encoding.md) +[State](./state.md) diff --git a/spec/blockchain/state.md b/spec/core/state.md similarity index 100% rename from spec/blockchain/state.md rename to spec/core/state.md