Skip to content

casz92/mktree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌳 Mktree: Merkle Tree in Rust for Elixir

Mktree is a high-performance library that implements Merkle Trees using Rust + Elixir. It provides efficient cryptographic hashing and validation of data, making it suitable for blockchain applications and secure data structures.

⚡ Features

SHA256 hashing of individual leaves (hash_leaf/1)
Building a complete Merkle tree (build_tree/1)
Computing the Merkle Root (compute_root/1)
Generating an inclusion proof (generate_proof/2)
Verifying inclusion proofs (verify_proof/3)

🚀 Installation

The package can be installed by adding mktree to your list of dependencies in mix.exs:

def deps do
  [
    {:mktree, "~> 0.1.0"}
  ]
end
# Install dependencies
mix deps.get

# Compile the Rust NIF
cargo build

# Compile Elixir module
mix compile

Usage Example

# Define transaction data
leaves = ["tx1", "tx2", "tx3", "tx4"]

# Build Merkle tree
tree = Mktree.build_tree(leaves)

# Compute Merkle Root
root = Mktree.compute_root(leaves)
IO.puts("Merkle Root: #{root}")

# Generate an inclusion proof for "tx3"
proof = Mktree.generate_proof(leaves, "tx3")
IO.inspect(proof, label: "Proof generated for tx3")

# Verify proof
is_valid = Mktree.verify_proof("tx3", proof, root)
IO.puts("Proof validity for tx3: #{is_valid}")

🧑‍💻 Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

⚖️ License

This project is licensed under MIT License.

About

high-performance library that implements Merkle Trees using Rust + Elixir. It provides efficient cryptographic hashing and validation of data, making it suitable for blockchain applications and secure data structures

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors