Skip to content
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

jmt(ics23): add proptests for each nonexistence setups #104

Closed
erwanor opened this issue Oct 3, 2023 · 2 comments
Closed

jmt(ics23): add proptests for each nonexistence setups #104

erwanor opened this issue Oct 3, 2023 · 2 comments
Assignees

Comments

@erwanor
Copy link
Member

erwanor commented Oct 3, 2023

The ICS23 adjacency calculation can happen over three types of configurations reflected in ics23::NonExistenceProof, indeed, either the queried key has:

  • only a right neighbor (leftmost key)
  • only a left neighbor (rightmost key)
  • or both

As part of our #103 effort, we should add prop tests that take advantage of the TransparentHasher to test each configurations with arbitrary depth.

          One nit, inline, and a thought: can we capture the essence of these unit tests as a proptest?

Originally posted by @plaidfinch in #100 (review)

@erwanor erwanor moved this to Future in Testnets Oct 3, 2023
@erwanor erwanor self-assigned this Jan 26, 2024
@erwanor erwanor added this to Penumbra Jan 26, 2024
@github-project-automation github-project-automation bot moved this to 🗄️ Backlog in Penumbra Jan 26, 2024
@erwanor
Copy link
Member Author

erwanor commented Mar 28, 2024

One thought: if we want to test that the bounding path calculations are correct, we could generate a sorted vector of key hashes $\langle k_1, k_2, ..., k_n \rangle$ (using the TransparentHasher), load them, and then iterate over each key hash $k_i$, mask the last nibble and query the jmt for a proof. What we should obtain as a result is a nonexistence proof for $(k_{i-1}, k_{i+1})$.

@aubrika
Copy link
Contributor

aubrika commented Apr 17, 2024

Not adding to V1 currently for scope management but could be elevated if partially done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Status: Future
Development

No branches or pull requests

2 participants