-
Notifications
You must be signed in to change notification settings - Fork 8
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
[SMST] feat: Use compact SMST proofs #823
Conversation
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.
Amazed that everyone just worked!
Any chance you can add a log or a unit test to show the difference in size?
I'm REALLy curious and can be done in a followup.
@Olshansk, I'm really grateful that you called this out. I added this test /pkg/relayer/session/sessiontree_test.go Which shows that there is barely any improvement in the proof size 😢 I added a (gzip) compressed proofs to the test to have something to compare with. Running for different leaf sizes, 1000 run each and accumulating size, this a sample result
|
@red-0ne Thanks for putting in the extra test. This is fine and what I expected. Want to use this as a learning lesson. Nothing we don't already know but something I want to reiterate:
|
The CI will now also run the e2e tests on devnet, which increases the time it takes to complete all CI checks. You may need to run GCP workloads (requires changing the namespace to 823) |
… issues/799/tests/params * issues/799/merge/integration-app_x_sup-stake-evts: chore: review feedback improvements [SMST] feat: Use compact SMST proofs (#823) [SessionManager] Skip claims creation if supplier operator balance is too low (#817) chore: self-review improvements # Conflicts: # tests/integration/tokenomics/relay_mining_integration_test.go
…rge/integration-app_x_transfer-period-base * issues/799/refactor/integration-app: fixup! HEAD^ fix: linter errors chore: review feedback improvements [SMST] feat: Use compact SMST proofs (#823) [SessionManager] Skip claims creation if supplier operator balance is too low (#817) chore: self-review improvements [Code Health] refactor: rename `ApplicationTransfer` msgs (#788) [Docs] Add operations documentation about proof submission fee (#806) [Testing] Fix non-idempotency in (and speed up) supplier staking tests (#815)
…' into issues/657/chore/app-transfer-period * issues/657/merge/integration-app_x_transfer-period-base: fixup! HEAD^ fix: linter errors chore: review feedback improvements [SMST] feat: Use compact SMST proofs (#823) [SessionManager] Skip claims creation if supplier operator balance is too low (#817) chore: self-review improvements [Code Health] refactor: rename `ApplicationTransfer` msgs (#788) [Docs] Add operations documentation about proof submission fee (#806) [Testing] Fix non-idempotency in (and speed up) supplier staking tests (#815)
Little late to this but just going through my notifications. I actually did implement the CompactClosestProof type to fit the pattern with the other proof types. Had some brief ideas about how they could be compacted properly (was in a rush when implementing this):
Realisticallly this method is super optimisable, I didn't really try to optimise it as it was always don't pre-optimise. I'm sure you guys will think of even more, actually doing compression on the encoded bits would be a interesting idea once they are encoded better. |
Summary
This PR changes the proofs being sent in
MsgSubmitPRoof
and stored by theSubmitProof
keeper fromSparseMerkleClosestProof
toSparseCompactMerkleClosestProof
.Issue
Proofs
one of the most block-space consuming primitives. The SMST support compact proofs that could help reduce their sizes.Type of change
Select one or more from the following:
consensus-breaking
label if so. See [Infra] Automatically add theconsensus-breaking
label #791 for detailsTesting
make go_develop_and_test
make test_e2e
devnet-test-e2e
label to the PR.Sanity Checklist