-
Notifications
You must be signed in to change notification settings - Fork 320
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
storage: integration of jmt@0.4.0
& reverse index for jmt key hashes
#2032
Conversation
Heads up, will need a rebase after #2025 lands, hopefully within the hour. |
Sure! thanks for the heads up |
38b2d41
to
8b325cd
Compare
jmt@0.4.0
jmt@0.4.0
& reverse index for jmt key hashes
@erwanor I'm able to reproduce the WASM compat CI failure locally:
Whereas on
Looking at the docs/repo for
Looks like jmt requires proptest, which pulls in the the incompatible dep. But we surely we don't need proptest in the full dependencies, right? Indeed, if I hack the jmt crate Cargo.toml locally: diff --git a/Cargo.toml b/Cargo.toml
index bcebf19..2dbe6fc 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -24,8 +24,6 @@ mirai-annotations = "1.10.1"
num-derive = "0.3.3"
num-traits = "0.2.14"
once_cell = "1.7.2"
-proptest = { version = "1.0.0" }
-proptest-derive = { version = "0.3.0"}
serde = { version = "1.0.124", features = ["derive"] }
thiserror = "1.0.24"
prometheus = "0.13"
@@ -36,3 +34,5 @@ tracing = "0.1"
[dev-dependencies]
rand = { version = "0.8.3" }
+proptest = { version = "1.0.0" }
+proptest-derive = { version = "0.3.0"} Then I'm able to build the wasm target on this PR again, referencing my local dir for the jmt dep. So I'm sorry to say it looks like to satisfy that check, we'll need to adjust the deps in the jmt crate and re-release. |
Adjusting the deps in the jmt crate seems like the right move to me. If they're not used in the public API, it could be done in a patch release. |
chore: cargo update and decaf377@crates.io
chore: cargo update and decaf377@crates.io cargo: use upstream jmt jmt: integrate api changes
We won't be able to merge these changes, since they've been rebased too many times, they don't apply cleanly any more, and we don't have a way to know that they actually work (in fact, merging them causes the storage tests to fail). There are also a lot of significant design changes buried within these changes -- e.g., why do we need a dirty bit on the JMT backing data now? Instead, we'll need to start over, and plan a phased sequence of changes that only does one thing at a time, changing just the Tendermint version, or just the JMT version, etc, rather than combining them all into one PR. |
The failing test is triggered by using the wrong serialization methods, though for some reason doing |
Closes #2030 and #1647