From 2d62b5a3d235539a50540d4f00b0d122cb27e755 Mon Sep 17 00:00:00 2001 From: Callum Waters Date: Fri, 11 Feb 2022 16:29:42 +0100 Subject: [PATCH] split protos into tendermint and spec --- .gitignore | 9 +-------- proto/README.md | 17 ++++++++--------- proto/{tendermint => spec}/abci/types.proto | 0 .../{tendermint => spec}/blocksync/types.proto | 0 .../{tendermint => spec}/consensus/types.proto | 0 proto/{tendermint => spec}/crypto/keys.proto | 0 proto/{tendermint => spec}/crypto/proof.proto | 0 .../{tendermint => spec}/libs/bits/types.proto | 0 proto/{tendermint => spec}/mempool/types.proto | 0 proto/{tendermint => spec}/p2p/conn.proto | 0 proto/{tendermint => spec}/p2p/pex.proto | 0 proto/{tendermint => spec}/p2p/types.proto | 0 .../{tendermint => spec}/statesync/types.proto | 0 proto/{tendermint => spec}/types/block.proto | 0 proto/{tendermint => spec}/types/evidence.proto | 0 proto/{tendermint => spec}/types/params.proto | 0 proto/{tendermint => spec}/types/types.proto | 0 .../{tendermint => spec}/types/validator.proto | 0 proto/{tendermint => spec}/version/types.proto | 0 19 files changed, 9 insertions(+), 17 deletions(-) rename proto/{tendermint => spec}/abci/types.proto (100%) rename proto/{tendermint => spec}/blocksync/types.proto (100%) rename proto/{tendermint => spec}/consensus/types.proto (100%) rename proto/{tendermint => spec}/crypto/keys.proto (100%) rename proto/{tendermint => spec}/crypto/proof.proto (100%) rename proto/{tendermint => spec}/libs/bits/types.proto (100%) rename proto/{tendermint => spec}/mempool/types.proto (100%) rename proto/{tendermint => spec}/p2p/conn.proto (100%) rename proto/{tendermint => spec}/p2p/pex.proto (100%) rename proto/{tendermint => spec}/p2p/types.proto (100%) rename proto/{tendermint => spec}/statesync/types.proto (100%) rename proto/{tendermint => spec}/types/block.proto (100%) rename proto/{tendermint => spec}/types/evidence.proto (100%) rename proto/{tendermint => spec}/types/params.proto (100%) rename proto/{tendermint => spec}/types/types.proto (100%) rename proto/{tendermint => spec}/types/validator.proto (100%) rename proto/{tendermint => spec}/version/types.proto (100%) 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