Txaty Go Merkletree Versions Save

Go Merkle Tree. High performance, Supporting parallel run, OpenZeppelin sorting pairs.

v0.2.2

5 months ago

Minor fixes.

v0.2.1

5 months ago

Performance optimization and readability enhancement.

v0.2.0

5 months ago

This release includes various refactors:

  1. Upgraded to Go 1.21, using the built-in min function;
  2. Upgraded dependencies;
  3. Upgraded GitHub Action pipelines, adding Codacy;
  4. Remove the global worker pool and add the worker pool to the MerkleTree struct. So now, each MerkleTree uses its dedicated worker pool;
  5. Change pool worker arguments to pointers to separate specific arguments, enhancing readability;
  6. Fixed minor formatting issues and typos;
  7. Added more comments;
  8. Updated README.

v0.1.15

1 year ago
  1. Add DisableLeafHashing in Config, allowing users to use the byte values directly as the tree leaves without hashing procedures;
  2. MerkleTree.GenerateProof() method is renamed to MerkleTree.Proof();
  3. Refactor and bug fixes.

v0.1.14

1 year ago
  • If it is set to true, then the sibling hash pairs are first sorted in ascending order, and then concatenated.
  • Otherwise, no change.

v0.1.13

1 year ago
  1. Use general arg struct and return type to improve goroutine pool performance,
  2. Order fields in structs for memory saving,
  3. Gool (goroutine pool) version upgrade.

v0.1.12

1 year ago

v0.1.11

1 year ago

v0.1.10

1 year ago

v0.1.9

1 year ago
  1. In Config, there are three modes: ModeProofGen (default), ModeTreeBuild, ModeProofGenAndTreeBuild. ModeProofGen directly generates the proofs for all the blocks. ModeTreeBuild builds up and cache the Merkle Tree, this is useful when generating the proofs for only a few blocks.
  2. Performance improvement via goroutine pool. I implement a simple goroutine pool: gool (github.com/txaty/gool). It significantly improves the parallel algorithms' performance.