feat: go 1.22.x and pebble v1.1.0 #3203
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR allows Celestia to use pebble, a kv store from cockroachdb that is like Facebook's RocksDB except written in native go. It makes celestia-appd much more performant, and might make celestia-node faster too, though that is still yet to be seen and understood.
It's supported by or related to the following pull requests:
v1.22.0
(new MSRV for v1.x and main) cometbft/cometbft#2285In total, the goal of this pull request is to ensure that Celestia doesn't "run out" of keys in the kv store -- goleveldb does this, and so does pebble, but it happens much, much later with pebble. Operators of celestia-appd who want archival state will find this set of PR's particularly appealing.
celestia-core
I think that these changes are especially important to Celestia core. The reason for that is that in fact, the changes to the database library, allow for a much much simpler build process for celestial core, one that does not even need darker, and one that is many times faster. I've been trying to contribute it to tendermint or comet for over two years, but it hasn't worked out for whatever reason.
I'm going to migrate these changes over to celestia core, as the complex docker based build process seen in cometbft is simply unnecessary, and we can make CI vastly faster while speeding up developer onboarding.
In a very real way, getting this series of PRs landed is a first step to that, as the version of cometbft-db seen here doesn't even have a Dockerfile in the repository.