diff --git a/.gitignore b/.gitignore index f745afdf2..1e3cbce3c 100644 --- a/.gitignore +++ b/.gitignore @@ -47,13 +47,7 @@ test/fuzz/**/corpus test/fuzz/**/crashers test/fuzz/**/suppressions test/fuzz/**/*.zip -proto/tendermint/blocksync/types.proto -proto/tendermint/consensus/types.proto -proto/tendermint/mempool/*.proto -proto/tendermint/p2p/*.proto -proto/tendermint/statesync/*.proto -proto/tendermint/types/*.proto -proto/tendermint/version/*.proto +proto/spec/**/*.pb.go *.aux *.bbl *.blg @@ -61,4 +55,3 @@ proto/tendermint/version/*.proto *.pdf *.gz *.dvi -*.pb.go diff --git a/proto/README.md b/proto/README.md index ebecd82d1..8aa5a30f5 100644 --- a/proto/README.md +++ b/proto/README.md @@ -1,8 +1,13 @@ # Protocol Buffers -This sections defines the types and messages shared across implementations. The definition of the data structures are located in the [core/data_structures](../spec/core/data_structures.md) for the core data types and ABCI definitions are located in the [ABCI](../spec/abci/README.md) section. +This sections defines the protocol buffers used in Tendermint. This is split into two directories: `spec`, the types required for all implementations and `tendermint`, a set of types internal to the Go implementation. All generated go code is also stored in `tendermint`. +More descriptions of the data structures are located in the spec directory as follows: -## Process of Updates +- [Block](../spec/core/data_structures.md) +- [ABCI](../spec/abci/README.md) +- [P2P](../spec/p2p/messages/README.md) + +## Process to generate protos The `.proto` files within this section are core to the protocol and updates must be treated as such. @@ -14,10 +19,4 @@ The `.proto` files within this section are core to the protocol and updates must 1b. Merge the RFC. 2. Make the necessary changes to the `.proto` file(s), [core data structures](../spec/core/data_structures.md) and/or [ABCI protocol](../spec/abci/apps.md). 3. Open issues within Tendermint-go and Tendermint-rs repos. This is used to notify the teams that a change occurred in the spec. - 1. Tag the issue with a spec version label. This will notify the team the changed has been made on master but has not entered a release. - -### Versioning - -The spec repo aims to be versioned. Once it has been versioned, updates to the protobuf files will live on master. After a certain amount of time, decided on by Tendermint-go and Tendermint-rs team leads, a release will be made on the spec repo. The spec may contain minor releases as well, depending on the implementation these changes may lead to a breaking change. If so, the implementation team should open an issue within the spec repo requiring a major release of the spec. - -If the steps above were followed each implementation should have issues tagged with a spec change label. Once all issues have been completed the team should signify their readiness for release. + 1. Tag the issue with a spec version label. This will notify the team the changed has been made on master but has not entered a release. \ No newline at end of file diff --git a/proto/tendermint/abci/types.proto b/proto/spec/abci/types.proto similarity index 100% rename from proto/tendermint/abci/types.proto rename to proto/spec/abci/types.proto diff --git a/proto/tendermint/blocksync/types.proto b/proto/spec/blocksync/types.proto similarity index 100% rename from proto/tendermint/blocksync/types.proto rename to proto/spec/blocksync/types.proto diff --git a/proto/tendermint/consensus/types.proto b/proto/spec/consensus/types.proto similarity index 100% rename from proto/tendermint/consensus/types.proto rename to proto/spec/consensus/types.proto diff --git a/proto/tendermint/crypto/keys.proto b/proto/spec/crypto/keys.proto similarity index 100% rename from proto/tendermint/crypto/keys.proto rename to proto/spec/crypto/keys.proto diff --git a/proto/tendermint/crypto/proof.proto b/proto/spec/crypto/proof.proto similarity index 100% rename from proto/tendermint/crypto/proof.proto rename to proto/spec/crypto/proof.proto diff --git a/proto/tendermint/libs/bits/types.proto b/proto/spec/libs/bits/types.proto similarity index 100% rename from proto/tendermint/libs/bits/types.proto rename to proto/spec/libs/bits/types.proto diff --git a/proto/tendermint/mempool/types.proto b/proto/spec/mempool/types.proto similarity index 100% rename from proto/tendermint/mempool/types.proto rename to proto/spec/mempool/types.proto diff --git a/proto/tendermint/p2p/conn.proto b/proto/spec/p2p/conn.proto similarity index 100% rename from proto/tendermint/p2p/conn.proto rename to proto/spec/p2p/conn.proto diff --git a/proto/tendermint/p2p/pex.proto b/proto/spec/p2p/pex.proto similarity index 100% rename from proto/tendermint/p2p/pex.proto rename to proto/spec/p2p/pex.proto diff --git a/proto/tendermint/p2p/types.proto b/proto/spec/p2p/types.proto similarity index 100% rename from proto/tendermint/p2p/types.proto rename to proto/spec/p2p/types.proto diff --git a/proto/tendermint/statesync/types.proto b/proto/spec/statesync/types.proto similarity index 100% rename from proto/tendermint/statesync/types.proto rename to proto/spec/statesync/types.proto diff --git a/proto/tendermint/types/block.proto b/proto/spec/types/block.proto similarity index 100% rename from proto/tendermint/types/block.proto rename to proto/spec/types/block.proto diff --git a/proto/tendermint/types/evidence.proto b/proto/spec/types/evidence.proto similarity index 100% rename from proto/tendermint/types/evidence.proto rename to proto/spec/types/evidence.proto diff --git a/proto/tendermint/types/params.proto b/proto/spec/types/params.proto similarity index 100% rename from proto/tendermint/types/params.proto rename to proto/spec/types/params.proto diff --git a/proto/tendermint/types/types.proto b/proto/spec/types/types.proto similarity index 100% rename from proto/tendermint/types/types.proto rename to proto/spec/types/types.proto diff --git a/proto/tendermint/types/validator.proto b/proto/spec/types/validator.proto similarity index 100% rename from proto/tendermint/types/validator.proto rename to proto/spec/types/validator.proto diff --git a/proto/tendermint/version/types.proto b/proto/spec/version/types.proto similarity index 100% rename from proto/tendermint/version/types.proto rename to proto/spec/version/types.proto