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

docs: add section to help choose merkle tree #311

Closed
sripwoud opened this issue Jul 31, 2024 · 2 comments · Fixed by #326
Closed

docs: add section to help choose merkle tree #311

sripwoud opened this issue Jul 31, 2024 · 2 comments · Fixed by #326
Assignees
Labels
documentation 📖 Improvements or additions to documentation good first issue Good for newcomers

Comments

@sripwoud
Copy link
Member

sripwoud commented Jul 31, 2024

There are several Merkle Tree "flavors:

  • incremental
  • sparse
  • leant
  • persistent
  • ...

It would be helpful to write a comparison of of all them, answering questions like

  • "when not to use"/"when to use"
  • "used by?": protocol xyz, app xyz...
  • include benchmarks: maybe one merkle tree is faster at generating a proof, but slower to update?

in order to help developers make a choice depending on their use case.

@sripwoud sripwoud added the documentation 📖 Improvements or additions to documentation label Jul 31, 2024
@0xarcano
Copy link
Contributor

Hi guys, here an PSE Core student, I want to help with this issue, please let me know if you can assign it to me.

@sripwoud
Copy link
Member Author

sripwoud commented Aug 29, 2024

Hi @prodasl
Sure go ahead, I'll assign to you.
Btw I am personally looking forward for your answers, I created this issue because I don't know myself how to best choose out of these merkle tree variations 😅

I added a bit more details to the issue description

@sripwoud sripwoud assigned sripwoud and 0xarcano and unassigned sripwoud Aug 29, 2024
@cedoor cedoor added the good first issue Good for newcomers label Aug 29, 2024
0xarcano added a commit to 0xarcano/zk-kit that referenced this issue Aug 29, 2024
Added FAQ to guide the developers about when and why use a specific type of Merkle tree for their projects

The FAQ has a short text answer plus a comparison table with more detailed data
Refs: privacy-scaling-explorations#311
cedoor pushed a commit that referenced this issue Sep 2, 2024
* docs: added Merkle tree use recommendations

Added FAQ to guide the developers about when and why use a specific type of Merkle tree for their projects

The FAQ has a short text answer plus a comparison table with more detailed data
Refs: #311

* docs: merkle tree use recommendations changes format fixes

Fix README format (prettier)

Fix missing new lines in explanation text

Add links to the homepage of the projects

re 315

* docs: merkle tree use recommendations changes format fixes (correction)

Fix README format (prettier)

Fix missing new lines in explanation text

Add links to the homepage of the projects

re 315
0xarcano added a commit to 0xarcano/zk-kit that referenced this issue Sep 11, 2024
- Added Sparse Merkle Tree to the benchmark suites to complete the available merkle tree
implementations in zk-kit.

- Added operation to the benchmark suites (proof generation, proof verification, update, delete

- Changed the "imt.ts" name to "benchmark-merkle-trees.ts"

- Added README.md documentation about the benchmark suite

- Added log managment with winston library to handle any error produced during the benchmark
withtout break the benchmark execution

re privacy-scaling-explorations#311
0xarcano added a commit to 0xarcano/zk-kit that referenced this issue Sep 13, 2024
…alidation issues in GH

remove package winston and to-hex libraries to fix validation issues in GH

re privacy-scaling-explorations#311
0xarcano added a commit to 0xarcano/zk-kit that referenced this issue Sep 21, 2024
…dex.ts

Added winston to package.json and refactored index.ts to

run the samples with a loop managed by an array

re privacy-scaling-explorations#311
0xarcano added a commit to 0xarcano/zk-kit that referenced this issue Sep 21, 2024
Changed to initialize from -1 instead of 0 to fix the logic to start from the first

samples element

re privacy-scaling-explorations#311
0xarcano added a commit to 0xarcano/zk-kit that referenced this issue Sep 23, 2024
…n script

Change the usage instructions of benchmarks from the npx command to use the

exisiting script in the package.json

re privacy-scaling-explorations#311
0xarcano added a commit to 0xarcano/zk-kit that referenced this issue Sep 23, 2024
after the run the yarn command in my local environment plus

add the new dev dependency winston the yarn.lock

have changed some lib versions and added winston

re privacy-scaling-explorations#311
sripwoud added a commit that referenced this issue Sep 25, 2024
…#326)

* test(benchmarks): improve bechmarks to have complete performance data

- Added Sparse Merkle Tree to the benchmark suites to complete the available merkle tree
implementations in zk-kit.

- Added operation to the benchmark suites (proof generation, proof verification, update, delete

- Changed the "imt.ts" name to "benchmark-merkle-trees.ts"

- Added README.md documentation about the benchmark suite

- Added log managment with winston library to handle any error produced during the benchmark
withtout break the benchmark execution

re #311

* fix(benchmarks): remove package winston and to-hex libraries to fix validation issues in GH

remove package winston and to-hex libraries to fix validation issues in GH

re #311

* docs(benchmarks): added benchmarks summary

Added benchmarks summary tables for different sizes of samples

and conclusion ideas

re # 311

* Update benchmarks/README.md

Co-authored-by: sripwoud <dev+github@sripwoud.xyz>

* Update benchmarks/benchmark-merkle-trees.ts

Co-authored-by: sripwoud <dev+github@sripwoud.xyz>

* Update benchmarks/README.md

Co-authored-by: sripwoud <dev+github@sripwoud.xyz>

* Update benchmarks/benchmark-merkle-trees.ts

Co-authored-by: sripwoud <dev+github@sripwoud.xyz>

* Update benchmarks/README.md

Co-authored-by: sripwoud <dev+github@sripwoud.xyz>

* refactor(benchmarks): added winston to package.json and refactored index.ts

Added winston to package.json and refactored index.ts to

run the samples with a loop managed by an array

re #311

* Update benchmarks/benchmark-merkle-trees.ts

Co-authored-by: sripwoud <dev+github@sripwoud.xyz>

* fix(benchmarks): added counter initialization mistake

Changed to initialize from -1 instead of 0 to fix the logic to start from the first

samples element

re #311

* docs(benchmarks): changed the usage instructions to point the exisitin script

Change the usage instructions of benchmarks from the npx command to use the

exisiting script in the package.json

re #311

* style(benchmarks): benchmark-merkle-trees.ts changes from prettier validation

Minimal change in the code to add an space to a instruction from prettier lib suggestion

* fix(benchmarks): added the new version of yarn.lock

after the run the yarn command in my local environment plus

add the new dev dependency winston the yarn.lock

have changed some lib versions and added winston

re #311

---------

Co-authored-by: sripwoud <dev+github@sripwoud.xyz>
Co-authored-by: Cedoor <me@cedoor.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation 📖 Improvements or additions to documentation good first issue Good for newcomers
Projects
Status: ✔️ Done
Development

Successfully merging a pull request may close this issue.

3 participants