-
Notifications
You must be signed in to change notification settings - Fork 4.1k
refactor: bring cometbft back to v0.38.x family #25285
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📝 WalkthroughWalkthroughThe changelog moves sr25519 removal to the Breaking Changes section and removes the CometBFT v2 migration note. The Makefile switches CometBFT module/version resolution to the base module, replaces proto paths from cometbft/* to tendermint/*, rewrites proto fetch/update targets, and adjusts ldflags and phony targets accordingly. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Dev as Developer
participant MK as Makefile: proto-update-deps
participant GH as GitHub Raw (cometbft v0.38.0)
participant FS as Local FS
participant DK as Docker (buf)
Dev->>MK: make proto-update-deps
MK->>GH: curl -sSL proto/tendermint/.../*.proto
GH-->>MK: .proto contents
MK->>FS: Write tendermint proto files
MK->>DK: buf mod update
DK-->>MK: Module deps updated
MK-->>Dev: Proto deps refreshed
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
CHANGELOG.md (2)
42-49: Call out the CometBFT rollback as a Breaking Change (module path + proto namespace).Given the repo is reverting from CometBFT v1/v2 to v0.38.x, add an explicit bullet here noting:
- Go module path switched back to github.com/cometbft/cometbft (no /v2).
- Protobuf namespaces switched from cometbft/* back to tendermint/*.
- Action items for integrators (e.g., update imports, re-run proto generation).
This avoids ambiguity for downstreams.
Apply something like:
+* (deps/proto) Revert CometBFT to v0.38.x: module path is `github.com/cometbft/cometbft` (no `/v2`); protobuf packages moved back to `tendermint/*`. Downstreams must update imports and regenerate protos.
56-56: “comet/v2 PubKeys” reference is inconsistent with the v0.38.x rollback.This feature description still mentions converting from
comet/v2PubKeys. Either:
- Update wording to reflect v0.38.x types, or
- Note that the helper handles v2 types for forward-compat while the SDK targets v0.38.x.
Without clarification, this conflicts with the PR’s objective.
-* (crypto) [#24861] add `PubKeyFromCometTypeAndBytes` helper function to convert from `comet/v2` PubKeys to the `cryptotypes.Pubkey` interface. +* (crypto) [#24861] add `PubKeyFromCometTypeAndBytes` helper to convert CometBFT PubKeys to `cryptotypes.PubKey`. Note: when targeting v0.38.x, this helper remains for forward-compat with v1/v2 key encodings.
🧹 Nitpick comments (1)
Makefile (1)
15-16: Double-check TMCoreSemVer injection against CometBFT v0.38.x.
- Path
github.com/cometbft/cometbft/version.TMCoreSemVermatches v0.38.x; verify the symbol name hasn’t changed across patch versions.- Confirm
go list -m github.com/cometbft/cometbftyields a tag with leadingv(e.g.,v0.38.10) so downstream uses get a consistent semver string.If needed, tighten extraction to avoid empty results on replace directives:
-export CMTVERSION := $(shell go list -m github.com/cometbft/cometbft | sed 's:.* ::') +export CMTVERSION := $(shell go list -m -f '{{.Version}}' github.com/cometbft/cometbft)Also applies to: 70-71
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Knowledge Base: Disabled due to Reviews > Disable Knowledge Base setting
⛔ Files ignored due to path filters (88)
api/cometbft/abci/v2/service.pulsar.gois excluded by!**/*.pulsar.goapi/cometbft/abci/v2/service_grpc.pb.gois excluded by!**/*.pb.go,!**/*.pb.goapi/cometbft/p2p/v1/conn.pulsar.gois excluded by!**/*.pulsar.goapi/cometbft/p2p/v1/pex.pulsar.gois excluded by!**/*.pulsar.goapi/cometbft/types/v2/canonical.pulsar.gois excluded by!**/*.pulsar.goapi/cometbft/types/v2/events.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/base/abci/v1beta1/abci.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/base/tendermint/v1beta1/query.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/base/tendermint/v1beta1/types.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/circuit/module/v1/module.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/circuit/v1/query.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/circuit/v1/query_grpc.pb.gois excluded by!**/*.pb.go,!**/*.pb.goapi/cosmos/circuit/v1/tx.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/circuit/v1/tx_grpc.pb.gois excluded by!**/*.pb.go,!**/*.pb.goapi/cosmos/circuit/v1/types.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/consensus/v1/query.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/consensus/v1/tx.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/evidence/module/v1/module.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/group/module/v1/module.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/group/v1/events.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/group/v1/genesis.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/group/v1/query.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/group/v1/query_grpc.pb.gois excluded by!**/*.pb.go,!**/*.pb.goapi/cosmos/group/v1/tx.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/group/v1/tx_grpc.pb.gois excluded by!**/*.pb.go,!**/*.pb.goapi/cosmos/group/v1/types.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/nft/module/v1/module.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/nft/v1beta1/event.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/nft/v1beta1/genesis.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/nft/v1beta1/nft.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/nft/v1beta1/query.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/nft/v1beta1/query_grpc.pb.gois excluded by!**/*.pb.go,!**/*.pb.goapi/cosmos/nft/v1beta1/tx.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/nft/v1beta1/tx_grpc.pb.gois excluded by!**/*.pb.go,!**/*.pb.goapi/cosmos/staking/v1beta1/staking.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/store/streaming/abci/grpc.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/store/v1beta1/listening.pulsar.gois excluded by!**/*.pulsar.goapi/cosmos/tx/v1beta1/service.pulsar.gois excluded by!**/*.pulsar.goapi/go.modis excluded by!**/*.modapi/go.sumis excluded by!**/*.sum,!**/*.sumapi/tendermint/abci/types.pulsar.gois excluded by!**/*.pulsar.goapi/tendermint/abci/types_grpc.pb.gois excluded by!**/*.pb.go,!**/*.pb.goapi/tendermint/crypto/keys.pulsar.gois excluded by!**/*.pulsar.goapi/tendermint/crypto/proof.pulsar.gois excluded by!**/*.pulsar.goapi/tendermint/libs/bits/types.pulsar.gois excluded by!**/*.pulsar.goapi/tendermint/p2p/types.pulsar.gois excluded by!**/*.pulsar.goapi/tendermint/types/block.pulsar.gois excluded by!**/*.pulsar.goapi/tendermint/types/evidence.pulsar.gois excluded by!**/*.pulsar.goapi/tendermint/types/params.pulsar.gois excluded by!**/*.pulsar.goapi/tendermint/types/types.pulsar.gois excluded by!**/*.pulsar.goapi/tendermint/types/validator.pulsar.gois excluded by!**/*.pulsar.goapi/tendermint/version/types.pulsar.gois excluded by!**/*.pulsar.goclient/grpc/cmtservice/query.pb.gois excluded by!**/*.pb.go,!**/*.pb.goclient/grpc/cmtservice/types.pb.gois excluded by!**/*.pb.go,!**/*.pb.goclient/v2/go.modis excluded by!**/*.modclient/v2/go.sumis excluded by!**/*.sum,!**/*.sumcollections/go.modis excluded by!**/*.modcollections/go.sumis excluded by!**/*.sum,!**/*.sumcore/go.modis excluded by!**/*.modcore/go.sumis excluded by!**/*.sum,!**/*.sumcrypto/keys/bls12_381/keys.pb.gois excluded by!**/*.pb.go,!**/*.pb.godepinject/go.modis excluded by!**/*.moddepinject/go.sumis excluded by!**/*.sum,!**/*.sumerrors/go.modis excluded by!**/*.moderrors/go.sumis excluded by!**/*.sum,!**/*.sumgo.modis excluded by!**/*.modgo.sumis excluded by!**/*.sum,!**/*.sumproto/buf.lockis excluded by!**/*.lock,!**/*.lockproto/buf.yamlis excluded by!**/*.yamlsimapp/go.modis excluded by!**/*.modsimapp/go.sumis excluded by!**/*.sum,!**/*.sumstore/go.modis excluded by!**/*.modstore/go.sumis excluded by!**/*.sum,!**/*.sumstore/streaming/abci/grpc.pb.gois excluded by!**/*.pb.go,!**/*.pb.gostore/types/listening.pb.gois excluded by!**/*.pb.go,!**/*.pb.gosystemtests/go.modis excluded by!**/*.modsystemtests/go.sumis excluded by!**/*.sum,!**/*.sumtests/go.modis excluded by!**/*.modtests/go.sumis excluded by!**/*.sum,!**/*.sumtests/systemtests/go.modis excluded by!**/*.modtests/systemtests/go.sumis excluded by!**/*.sum,!**/*.sumtestutil/cli/cmt_mocks.gois excluded by!**/*_mocks.gotools/benchmark/go.modis excluded by!**/*.modtools/benchmark/go.sumis excluded by!**/*.sum,!**/*.sumtools/confix/go.modis excluded by!**/*.modtools/confix/go.sumis excluded by!**/*.sum,!**/*.sumtools/cosmovisor/go.modis excluded by!**/*.modtools/cosmovisor/go.sumis excluded by!**/*.sum,!**/*.sum
📒 Files selected for processing (2)
CHANGELOG.md(1 hunks)Makefile(3 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
- GitHub Check: test-system-legacy
- GitHub Check: test-system
- GitHub Check: tests (00)
- GitHub Check: test-e2e
- GitHub Check: Analyze
- GitHub Check: markdown-link-check
- GitHub Check: Gosec
- GitHub Check: golangci-lint
- GitHub Check: Summary
| * `x/crisis` | ||
| * [#24837](https://github.com/cosmos/cosmos-sdk/pull/24837) Update to using CometBFT v2. | ||
| * This update changes the import paths from `cometbft/cometbft` to `cometbft/cometbft/v2`. Users can use the [migration tool](./tools/migration/TODO) to automatically update their nodes. | ||
| * (crypto) [#24414](https://github.com/cosmos/cosmos-sdk/pull/24414) Remove sr25519 support, since it was removed in CometBFT v1.x (see: CometBFT [#3646](https://github.com/cometbft/cometbft/pull/3646)). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clarify sr25519 removal rationale vs. current dependency.
The note says sr25519 was removed in CometBFT v1.x, but we now depend on v0.38.x. Make it explicit that the SDK removes sr25519 regardless of the CometBFT version to maintain forward-compat and reduce maintenance. Link any migration/UPGRADING steps if applicable.
-* (crypto) [#24414] Remove sr25519 support, since it was removed in CometBFT v1.x (see: CometBFT #3646).
+* (crypto) [#24414] Remove sr25519 support in the SDK. Although the dependency is reverted to CometBFT v0.38.x, sr25519 remains removed to align with CometBFT ≥ v1.x (see: CometBFT #3646) and to simplify forward compatibility.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| * (crypto) [#24414](https://github.com/cosmos/cosmos-sdk/pull/24414) Remove sr25519 support, since it was removed in CometBFT v1.x (see: CometBFT [#3646](https://github.com/cometbft/cometbft/pull/3646)). | |
| * (crypto) [#24414] Remove sr25519 support in the SDK. Although the dependency is reverted to CometBFT v0.38.x, sr25519 remains removed to align with CometBFT ≥ v1.x (see: CometBFT #3646) and to simplify forward compatibility. |
🤖 Prompt for AI Agents
In CHANGELOG.md around line 49, the note about removing sr25519 is ambiguous
because it references CometBFT v1.x while the project currently depends on
v0.38.x; update the changelog line to explicitly state that the SDK removes
sr25519 support proactively (independent of the current CometBFT dependency) to
maintain forward-compatibility and reduce maintenance burden, and append or link
to the relevant migration/UPGRADING notes or a short pointer to steps users must
take when migrating keys or validators.
| CMT_URL = https://raw.githubusercontent.com/cometbft/cometbft/v0.38.0/proto/tendermint | ||
|
|
||
| proto-update-comet: | ||
| @echo "Updating Protobuf dependency: downloading cometbft.$(CMT_PROTO) files from CometBFT $(CMT_VERSION_DIR)" | ||
| CMT_CRYPTO_TYPES = proto/tendermint/crypto | ||
| CMT_ABCI_TYPES = proto/tendermint/abci | ||
| CMT_TYPES = proto/tendermint/types | ||
| CMT_VERSION = proto/tendermint/version | ||
| CMT_LIBS = proto/tendermint/libs/bits | ||
| CMT_P2P = proto/tendermint/p2p | ||
|
|
||
| proto-update-deps: | ||
| @echo "Updating Protobuf dependencies" | ||
|
|
||
| @mkdir -p $(CMT_ABCI_TYPES) | ||
| @curl -fsSL $(CMT_URL)/abci/$(CMT_PROTO)/service.proto > $(CMT_ABCI_TYPES)/service.proto | ||
| @curl -fsSL $(CMT_URL)/abci/$(CMT_PROTO)/types.proto > $(CMT_ABCI_TYPES)/types.proto | ||
| @curl -sSL $(CMT_URL)/abci/types.proto > $(CMT_ABCI_TYPES)/types.proto | ||
|
|
||
| @mkdir -p $(CMT_VERSION) | ||
| @curl -fsSL $(CMT_URL)/version/$(CMT_PROTO)/types.proto > $(CMT_VERSION)/types.proto | ||
| @curl -sSL $(CMT_URL)/version/types.proto > $(CMT_VERSION)/types.proto | ||
|
|
||
| @mkdir -p $(CMT_TYPES) | ||
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/block.proto > $(CMT_TYPES)/block.proto | ||
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/canonical.proto > $(CMT_TYPES)/canonical.proto | ||
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/events.proto > $(CMT_TYPES)/events.proto | ||
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/evidence.proto > $(CMT_TYPES)/evidence.proto | ||
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/params.proto > $(CMT_TYPES)/params.proto | ||
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/types.proto > $(CMT_TYPES)/types.proto | ||
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/validator.proto > $(CMT_TYPES)/validator.proto | ||
| @curl -sSL $(CMT_URL)/types/types.proto > $(CMT_TYPES)/types.proto | ||
| @curl -sSL $(CMT_URL)/types/evidence.proto > $(CMT_TYPES)/evidence.proto | ||
| @curl -sSL $(CMT_URL)/types/params.proto > $(CMT_TYPES)/params.proto | ||
| @curl -sSL $(CMT_URL)/types/validator.proto > $(CMT_TYPES)/validator.proto | ||
| @curl -sSL $(CMT_URL)/types/block.proto > $(CMT_TYPES)/block.proto | ||
|
|
||
| @mkdir -p $(CMT_CRYPTO_TYPES) | ||
| @curl -fsSL $(CMT_URL)/crypto/$(CMT_PROTO)/keys.proto > $(CMT_CRYPTO_TYPES)/keys.proto | ||
| @curl -fsSL $(CMT_URL)/crypto/$(CMT_PROTO)/proof.proto > $(CMT_CRYPTO_TYPES)/proof.proto | ||
| @curl -sSL $(CMT_URL)/crypto/proof.proto > $(CMT_CRYPTO_TYPES)/proof.proto | ||
| @curl -sSL $(CMT_URL)/crypto/keys.proto > $(CMT_CRYPTO_TYPES)/keys.proto | ||
|
|
||
| @mkdir -p $(CMT_LIBS) | ||
| @curl -fsSL $(CMT_URL)/libs/bits/$(CMT_PROTO)/types.proto > $(CMT_LIBS)/types.proto | ||
| @curl -sSL $(CMT_URL)/libs/bits/types.proto > $(CMT_LIBS)/types.proto | ||
|
|
||
| @mkdir -p $(CMT_P2P) | ||
| @curl -fsSL $(CMT_URL)/p2p/$(CMT_PROTO)/conn.proto > $(CMT_P2P)/conn.proto | ||
| @curl -fsSL $(CMT_URL)/p2p/$(CMT_PROTO)/pex.proto > $(CMT_P2P)/pex.proto | ||
| @curl -fsSL $(CMT_URL)/p2p/$(CMT_PROTO)/types.proto > $(CMT_P2P)/types.proto | ||
| @curl -sSL $(CMT_URL)/p2p/types.proto > $(CMT_P2P)/types.proto | ||
|
|
||
| proto-update-deps: | ||
| @echo "Updating Protobuf dependencies: running 'buf dep update'" | ||
| $(DOCKER) run --rm -v $(CURDIR)/proto:/workspace --workdir /workspace $(protoImageName) buf dep update | ||
| $(DOCKER) run --rm -v $(CURDIR)/proto:/workspace --workdir /workspace $(protoImageName) buf mod update | ||
|
|
||
| .PHONY: proto-all proto-gen proto-swagger-gen proto-format proto-lint proto-check-breaking proto-update-deps proto-update-comet | ||
| .PHONY: proto-all proto-gen proto-swagger-gen proto-format proto-lint proto-check-breaking proto-update-deps |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Pin proto source to the exact dependency version and fetch missing merkle proto; make downloads deterministic.
- Hardcoding
v0.38.0risks mismatches if go.mod uses a differentCMTVERSION. - Some v0.38 protos import
tendermint/crypto/merkle/merkle.proto; it’s not fetched here. - Reuse the existing container wrapper
$(protoImage)for consistency. - Add curl hardening (fail fast, retries).
-CMT_URL = https://raw.githubusercontent.com/cometbft/cometbft/v0.38.0/proto/tendermint
+CMT_URL = https://raw.githubusercontent.com/cometbft/cometbft/$(CMTVERSION)/proto/tendermint
CMT_CRYPTO_TYPES = proto/tendermint/crypto
+CMT_CRYPTO_MERKLE = proto/tendermint/crypto/merkle
CMT_ABCI_TYPES = proto/tendermint/abci
CMT_TYPES = proto/tendermint/types
CMT_VERSION = proto/tendermint/version
CMT_LIBS = proto/tendermint/libs/bits
CMT_P2P = proto/tendermint/p2p
@@
proto-update-deps:
@echo "Updating Protobuf dependencies"
@mkdir -p $(CMT_ABCI_TYPES)
- @curl -sSL $(CMT_URL)/abci/types.proto > $(CMT_ABCI_TYPES)/types.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/abci/types.proto -o $(CMT_ABCI_TYPES)/types.proto
@mkdir -p $(CMT_VERSION)
- @curl -sSL $(CMT_URL)/version/types.proto > $(CMT_VERSION)/types.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/version/types.proto -o $(CMT_VERSION)/types.proto
@mkdir -p $(CMT_TYPES)
- @curl -sSL $(CMT_URL)/types/types.proto > $(CMT_TYPES)/types.proto
- @curl -sSL $(CMT_URL)/types/evidence.proto > $(CMT_TYPES)/evidence.proto
- @curl -sSL $(CMT_URL)/types/params.proto > $(CMT_TYPES)/params.proto
- @curl -sSL $(CMT_URL)/types/validator.proto > $(CMT_TYPES)/validator.proto
- @curl -sSL $(CMT_URL)/types/block.proto > $(CMT_TYPES)/block.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/types/types.proto -o $(CMT_TYPES)/types.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/types/evidence.proto -o $(CMT_TYPES)/evidence.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/types/params.proto -o $(CMT_TYPES)/params.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/types/validator.proto -o $(CMT_TYPES)/validator.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/types/block.proto -o $(CMT_TYPES)/block.proto
@mkdir -p $(CMT_CRYPTO_TYPES)
- @curl -sSL $(CMT_URL)/crypto/proof.proto > $(CMT_CRYPTO_TYPES)/proof.proto
- @curl -sSL $(CMT_URL)/crypto/keys.proto > $(CMT_CRYPTO_TYPES)/keys.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/crypto/proof.proto -o $(CMT_CRYPTO_TYPES)/proof.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/crypto/keys.proto -o $(CMT_CRYPTO_TYPES)/keys.proto
+
+ @mkdir -p $(CMT_CRYPTO_MERKLE)
+ @curl -fSsL --retry 3 $(CMT_URL)/crypto/merkle/merkle.proto -o $(CMT_CRYPTO_MERKLE)/merkle.proto
@mkdir -p $(CMT_LIBS)
- @curl -sSL $(CMT_URL)/libs/bits/types.proto > $(CMT_LIBS)/types.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/libs/bits/types.proto -o $(CMT_LIBS)/types.proto
@mkdir -p $(CMT_P2P)
- @curl -sSL $(CMT_URL)/p2p/types.proto > $(CMT_P2P)/types.proto
+ @curl -fSsL --retry 3 $(CMT_URL)/p2p/types.proto -o $(CMT_P2P)/types.proto
- $(DOCKER) run --rm -v $(CURDIR)/proto:/workspace --workdir /workspace $(protoImageName) buf mod update
+ $(protoImage) buf mod update📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| CMT_URL = https://raw.githubusercontent.com/cometbft/cometbft/v0.38.0/proto/tendermint | |
| proto-update-comet: | |
| @echo "Updating Protobuf dependency: downloading cometbft.$(CMT_PROTO) files from CometBFT $(CMT_VERSION_DIR)" | |
| CMT_CRYPTO_TYPES = proto/tendermint/crypto | |
| CMT_ABCI_TYPES = proto/tendermint/abci | |
| CMT_TYPES = proto/tendermint/types | |
| CMT_VERSION = proto/tendermint/version | |
| CMT_LIBS = proto/tendermint/libs/bits | |
| CMT_P2P = proto/tendermint/p2p | |
| proto-update-deps: | |
| @echo "Updating Protobuf dependencies" | |
| @mkdir -p $(CMT_ABCI_TYPES) | |
| @curl -fsSL $(CMT_URL)/abci/$(CMT_PROTO)/service.proto > $(CMT_ABCI_TYPES)/service.proto | |
| @curl -fsSL $(CMT_URL)/abci/$(CMT_PROTO)/types.proto > $(CMT_ABCI_TYPES)/types.proto | |
| @curl -sSL $(CMT_URL)/abci/types.proto > $(CMT_ABCI_TYPES)/types.proto | |
| @mkdir -p $(CMT_VERSION) | |
| @curl -fsSL $(CMT_URL)/version/$(CMT_PROTO)/types.proto > $(CMT_VERSION)/types.proto | |
| @curl -sSL $(CMT_URL)/version/types.proto > $(CMT_VERSION)/types.proto | |
| @mkdir -p $(CMT_TYPES) | |
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/block.proto > $(CMT_TYPES)/block.proto | |
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/canonical.proto > $(CMT_TYPES)/canonical.proto | |
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/events.proto > $(CMT_TYPES)/events.proto | |
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/evidence.proto > $(CMT_TYPES)/evidence.proto | |
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/params.proto > $(CMT_TYPES)/params.proto | |
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/types.proto > $(CMT_TYPES)/types.proto | |
| @curl -fsSL $(CMT_URL)/types/$(CMT_PROTO)/validator.proto > $(CMT_TYPES)/validator.proto | |
| @curl -sSL $(CMT_URL)/types/types.proto > $(CMT_TYPES)/types.proto | |
| @curl -sSL $(CMT_URL)/types/evidence.proto > $(CMT_TYPES)/evidence.proto | |
| @curl -sSL $(CMT_URL)/types/params.proto > $(CMT_TYPES)/params.proto | |
| @curl -sSL $(CMT_URL)/types/validator.proto > $(CMT_TYPES)/validator.proto | |
| @curl -sSL $(CMT_URL)/types/block.proto > $(CMT_TYPES)/block.proto | |
| @mkdir -p $(CMT_CRYPTO_TYPES) | |
| @curl -fsSL $(CMT_URL)/crypto/$(CMT_PROTO)/keys.proto > $(CMT_CRYPTO_TYPES)/keys.proto | |
| @curl -fsSL $(CMT_URL)/crypto/$(CMT_PROTO)/proof.proto > $(CMT_CRYPTO_TYPES)/proof.proto | |
| @curl -sSL $(CMT_URL)/crypto/proof.proto > $(CMT_CRYPTO_TYPES)/proof.proto | |
| @curl -sSL $(CMT_URL)/crypto/keys.proto > $(CMT_CRYPTO_TYPES)/keys.proto | |
| @mkdir -p $(CMT_LIBS) | |
| @curl -fsSL $(CMT_URL)/libs/bits/$(CMT_PROTO)/types.proto > $(CMT_LIBS)/types.proto | |
| @curl -sSL $(CMT_URL)/libs/bits/types.proto > $(CMT_LIBS)/types.proto | |
| @mkdir -p $(CMT_P2P) | |
| @curl -fsSL $(CMT_URL)/p2p/$(CMT_PROTO)/conn.proto > $(CMT_P2P)/conn.proto | |
| @curl -fsSL $(CMT_URL)/p2p/$(CMT_PROTO)/pex.proto > $(CMT_P2P)/pex.proto | |
| @curl -fsSL $(CMT_URL)/p2p/$(CMT_PROTO)/types.proto > $(CMT_P2P)/types.proto | |
| @curl -sSL $(CMT_URL)/p2p/types.proto > $(CMT_P2P)/types.proto | |
| proto-update-deps: | |
| @echo "Updating Protobuf dependencies: running 'buf dep update'" | |
| $(DOCKER) run --rm -v $(CURDIR)/proto:/workspace --workdir /workspace $(protoImageName) buf dep update | |
| $(DOCKER) run --rm -v $(CURDIR)/proto:/workspace --workdir /workspace $(protoImageName) buf mod update | |
| .PHONY: proto-all proto-gen proto-swagger-gen proto-format proto-lint proto-check-breaking proto-update-deps proto-update-comet | |
| .PHONY: proto-all proto-gen proto-swagger-gen proto-format proto-lint proto-check-breaking proto-update-deps | |
| CMT_URL = https://raw.githubusercontent.com/cometbft/cometbft/$(CMTVERSION)/proto/tendermint | |
| CMT_CRYPTO_TYPES = proto/tendermint/crypto | |
| CMT_CRYPTO_MERKLE = proto/tendermint/crypto/merkle | |
| CMT_ABCI_TYPES = proto/tendermint/abci | |
| CMT_TYPES = proto/tendermint/types | |
| CMT_VERSION = proto/tendermint/version | |
| CMT_LIBS = proto/tendermint/libs/bits | |
| CMT_P2P = proto/tendermint/p2p | |
| proto-update-deps: | |
| @echo "Updating Protobuf dependencies" | |
| @mkdir -p $(CMT_ABCI_TYPES) | |
| @curl -fSsL --retry 3 $(CMT_URL)/abci/types.proto -o $(CMT_ABCI_TYPES)/types.proto | |
| @mkdir -p $(CMT_VERSION) | |
| @curl -fSsL --retry 3 $(CMT_URL)/version/types.proto -o $(CMT_VERSION)/types.proto | |
| @mkdir -p $(CMT_TYPES) | |
| @curl -fSsL --retry 3 $(CMT_URL)/types/types.proto -o $(CMT_TYPES)/types.proto | |
| @curl -fSsL --retry 3 $(CMT_URL)/types/evidence.proto -o $(CMT_TYPES)/evidence.proto | |
| @curl -fSsL --retry 3 $(CMT_URL)/types/params.proto -o $(CMT_TYPES)/params.proto | |
| @curl -fSsL --retry 3 $(CMT_URL)/types/validator.proto -o $(CMT_TYPES)/validator.proto | |
| @curl -fSsL --retry 3 $(CMT_URL)/types/block.proto -o $(CMT_TYPES)/block.proto | |
| @mkdir -p $(CMT_CRYPTO_TYPES) | |
| @curl -fSsL --retry 3 $(CMT_URL)/crypto/proof.proto -o $(CMT_CRYPTO_TYPES)/proof.proto | |
| @curl -fSsL --retry 3 $(CMT_URL)/crypto/keys.proto -o $(CMT_CRYPTO_TYPES)/keys.proto | |
| @mkdir -p $(CMT_CRYPTO_MERKLE) | |
| @curl -fSsL --retry 3 $(CMT_URL)/crypto/merkle/merkle.proto -o $(CMT_CRYPTO_MERKLE)/merkle.proto | |
| @mkdir -p $(CMT_LIBS) | |
| @curl -fSsL --retry 3 $(CMT_URL)/libs/bits/types.proto -o $(CMT_LIBS)/types.proto | |
| @mkdir -p $(CMT_P2P) | |
| @curl -fSsL --retry 3 $(CMT_URL)/p2p/types.proto -o $(CMT_P2P)/types.proto | |
| $(protoImage) buf mod update |
Context
We updated to cometbft v1/v2 in the repo to future proof ourselves. ICL's new approach to comet and SDK compatibility will be similar to what we did with SDK v53. We want to break folks as minimally as possible, while focusing of delivering features.
Our new roadmap includes heavy investments in performance of the stack, both in cometbft and in the sdk. To do this, we want to unblock ourselves and downstream users from being broken in the future to adopt said features. Important things found in cometbft v1/v2 like BLS signatures etc will be backported and supported fully with this new approach
Process
git revert b71d0894f067f06e5c7acf4499156093aa076423Summary by CodeRabbit
Documentation
Chores/Build