Skip to content

Commit 8157efa

Browse files
committed
wip
1 parent e361171 commit 8157efa

File tree

77 files changed

+68
-43
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+68
-43
lines changed

CONTRIBUTING.md

Lines changed: 7 additions & 0 deletions

main.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
"""
2+
Testing Merkle Tree
3+
"""
4+
5+
from merkly.accelerator.mtreers import MTreers
6+
7+
treers = MTreers()
8+
treers.make_root()
-56.1 KB
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"rustc_fingerprint":2383946568438019878,"outputs":{"15481046163696847946":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/olivmath/.rustup/toolchains/stable-aarch64-apple-darwin\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"aarch64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"aes\"\ntarget_feature=\"crc\"\ntarget_feature=\"dit\"\ntarget_feature=\"dotprod\"\ntarget_feature=\"dpb\"\ntarget_feature=\"dpb2\"\ntarget_feature=\"fcma\"\ntarget_feature=\"fhm\"\ntarget_feature=\"flagm\"\ntarget_feature=\"fp16\"\ntarget_feature=\"frintts\"\ntarget_feature=\"jsconv\"\ntarget_feature=\"lor\"\ntarget_feature=\"lse\"\ntarget_feature=\"neon\"\ntarget_feature=\"paca\"\ntarget_feature=\"pacg\"\ntarget_feature=\"pan\"\ntarget_feature=\"pmuv3\"\ntarget_feature=\"ras\"\ntarget_feature=\"rcpc\"\ntarget_feature=\"rcpc2\"\ntarget_feature=\"rdm\"\ntarget_feature=\"sb\"\ntarget_feature=\"sha2\"\ntarget_feature=\"sha3\"\ntarget_feature=\"ssbs\"\ntarget_feature=\"vh\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"apple\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.72.1 (d5c2e9c34 2023-09-13)\nbinary: rustc\ncommit-hash: d5c2e9c342b358556da91d61ed4133f6f50fc0c3\ncommit-date: 2023-09-13\nhost: aarch64-apple-darwin\nrelease: 1.72.1\nLLVM version: 16.0.5\n","stderr":""},"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/olivmath/.rustup/toolchains/stable-aarch64-apple-darwin\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"aarch64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"aes\"\ntarget_feature=\"crc\"\ntarget_feature=\"dit\"\ntarget_feature=\"dotprod\"\ntarget_feature=\"dpb\"\ntarget_feature=\"dpb2\"\ntarget_feature=\"fcma\"\ntarget_feature=\"fhm\"\ntarget_feature=\"flagm\"\ntarget_feature=\"fp16\"\ntarget_feature=\"frintts\"\ntarget_feature=\"jsconv\"\ntarget_feature=\"lor\"\ntarget_feature=\"lse\"\ntarget_feature=\"neon\"\ntarget_feature=\"paca\"\ntarget_feature=\"pacg\"\ntarget_feature=\"pan\"\ntarget_feature=\"pmuv3\"\ntarget_feature=\"ras\"\ntarget_feature=\"rcpc\"\ntarget_feature=\"rcpc2\"\ntarget_feature=\"rdm\"\ntarget_feature=\"sb\"\ntarget_feature=\"sha2\"\ntarget_feature=\"sha3\"\ntarget_feature=\"ssbs\"\ntarget_feature=\"vh\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"apple\"\nunix\n","stderr":""}},"successes":{}}
1+
{"rustc_fingerprint":12933837335906766648,"outputs":{"13614503371424085932":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n","stderr":""},"9855854040982113140":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/olivmath/.rustup/toolchains/nightly-aarch64-apple-darwin\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"aarch64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"aes\"\ntarget_feature=\"crc\"\ntarget_feature=\"dit\"\ntarget_feature=\"dotprod\"\ntarget_feature=\"dpb\"\ntarget_feature=\"dpb2\"\ntarget_feature=\"fcma\"\ntarget_feature=\"fhm\"\ntarget_feature=\"flagm\"\ntarget_feature=\"fp16\"\ntarget_feature=\"frintts\"\ntarget_feature=\"jsconv\"\ntarget_feature=\"llvm14-builtins-abi\"\ntarget_feature=\"lor\"\ntarget_feature=\"lse\"\ntarget_feature=\"neon\"\ntarget_feature=\"paca\"\ntarget_feature=\"pacg\"\ntarget_feature=\"pan\"\ntarget_feature=\"pmuv3\"\ntarget_feature=\"ras\"\ntarget_feature=\"rcpc\"\ntarget_feature=\"rcpc2\"\ntarget_feature=\"rdm\"\ntarget_feature=\"sb\"\ntarget_feature=\"sha2\"\ntarget_feature=\"sha3\"\ntarget_feature=\"ssbs\"\ntarget_feature=\"v8.1a\"\ntarget_feature=\"v8.2a\"\ntarget_feature=\"v8.3a\"\ntarget_feature=\"v8.4a\"\ntarget_feature=\"vh\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"128\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store=\"128\"\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"apple\"\nunix\n","stderr":""},"10376369925670944939":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/olivmath/.rustup/toolchains/nightly-aarch64-apple-darwin\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"aarch64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"aes\"\ntarget_feature=\"crc\"\ntarget_feature=\"dit\"\ntarget_feature=\"dotprod\"\ntarget_feature=\"dpb\"\ntarget_feature=\"dpb2\"\ntarget_feature=\"fcma\"\ntarget_feature=\"fhm\"\ntarget_feature=\"flagm\"\ntarget_feature=\"fp16\"\ntarget_feature=\"frintts\"\ntarget_feature=\"jsconv\"\ntarget_feature=\"llvm14-builtins-abi\"\ntarget_feature=\"lor\"\ntarget_feature=\"lse\"\ntarget_feature=\"neon\"\ntarget_feature=\"paca\"\ntarget_feature=\"pacg\"\ntarget_feature=\"pan\"\ntarget_feature=\"pmuv3\"\ntarget_feature=\"ras\"\ntarget_feature=\"rcpc\"\ntarget_feature=\"rcpc2\"\ntarget_feature=\"rdm\"\ntarget_feature=\"sb\"\ntarget_feature=\"sha2\"\ntarget_feature=\"sha3\"\ntarget_feature=\"ssbs\"\ntarget_feature=\"v8.1a\"\ntarget_feature=\"v8.2a\"\ntarget_feature=\"v8.3a\"\ntarget_feature=\"v8.4a\"\ntarget_feature=\"vh\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"128\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store=\"128\"\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"apple\"\nunix\n","stderr":""},"15697416045686424142":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.68.0-nightly (574b64a97 2022-12-31)\nbinary: rustc\ncommit-hash: 574b64a97f52162f965bc201e47f0af8279ca65d\ncommit-date: 2022-12-31\nhost: aarch64-apple-darwin\nrelease: 1.68.0-nightly\nLLVM version: 15.0.6\n","stderr":""}},"successes":{}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This file has an mtime of when this was started.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
9ac9c4e50d77e129
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"rustc":17004773524947412777,"features":"[]","target":14212015080961893296,"profile":17483045194147818835,"path":17523903030608720598,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libmerkle_root-08b9c19391970bd1/dep-lib-libmerkle_root"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This file has an mtime of when this was started.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
e525b7dfa2d5050a
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"rustc":17004773524947412777,"features":"[]","target":14212015080961893296,"profile":11506243869495082934,"path":17523903030608720598,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libmerkle_root-402adff2cbbfb7d3/dep-test-lib-libmerkle_root"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This file has an mtime of when this was started.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
943edaf6053ac7b8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"rustc":17004773524947412777,"features":"[]","target":14212015080961893296,"profile":11736316127369858332,"path":17523903030608720598,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/libmerkle_root-69736f07527c1baf/dep-lib-libmerkle_root"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{"message":"unused variable: `callback`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/lib.rs","byte_start":255,"byte_end":263,"line_start":16,"line_end":16,"column_start":5,"column_end":13,"is_primary":true,"text":[{"text":" callback: extern \"C\" fn(input: *const u8, output: *mut u8),","highlight_start":5,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src/lib.rs","byte_start":255,"byte_end":263,"line_start":16,"line_end":16,"column_start":5,"column_end":13,"is_primary":true,"text":[{"text":" callback: extern \"C\" fn(input: *const u8, output: *mut u8),","highlight_start":5,"highlight_end":13}],"label":null,"suggested_replacement":"_callback","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `callback`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/lib.rs:16:5\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m16\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m callback: extern \"C\" fn(input: *const u8, output: *mut u8),\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: if this is intentional, prefix it with an underscore: `_callback`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\n\n"}
2+
{"message":"variable does not need to be mutable","code":{"code":"unused_mut","explanation":null},"level":"warning","spans":[{"file_name":"src/lib.rs","byte_start":579,"byte_end":588,"line_start":25,"line_end":25,"column_start":9,"column_end":18,"is_primary":true,"text":[{"text":" let mut nodes = leafs.clone();","highlight_start":9,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_mut)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove this `mut`","code":null,"level":"help","spans":[{"file_name":"src/lib.rs","byte_start":579,"byte_end":583,"line_start":25,"line_end":25,"column_start":9,"column_end":13,"is_primary":true,"text":[{"text":" let mut nodes = leafs.clone();","highlight_start":9,"highlight_end":13}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/lib.rs:25:9\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m25\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut nodes = leafs.clone();\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_mut)]` on by default\u001b[0m\n\n"}
3+
{"message":"2 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 2 warnings emitted\u001b[0m\n\n"}

merkly/accelerator/libmerkle_root/target/debug/deps/liblibmerkle_root-402adff2cbbfb7d3.rmeta

Whitespace-only changes.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/debug/deps/libmerkle_root-08b9c19391970bd1.rmeta: src/lib.rs
2+
3+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/debug/deps/libmerkle_root-08b9c19391970bd1.d: src/lib.rs
4+
5+
src/lib.rs:
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/debug/deps/libmerkle_root-402adff2cbbfb7d3.rmeta: src/lib.rs
2+
3+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/debug/deps/libmerkle_root-402adff2cbbfb7d3.d: src/lib.rs
4+
5+
src/lib.rs:
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/debug/deps/libmerkle_root-69736f07527c1baf.rmeta: src/lib.rs
2+
3+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/debug/deps/liblibmerkle_root-69736f07527c1baf.rlib: src/lib.rs
4+
5+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/debug/deps/libmerkle_root-69736f07527c1baf.d: src/lib.rs
6+
7+
src/lib.rs:
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This file has an mtime of when this was started.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
e0f926ecd49f8619
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"rustc":17004773524947412777,"features":"[]","target":14212015080961893296,"profile":6269190295429226618,"path":17523903030608720598,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/libmerkle_root-671ba0fe5bfc9244/dep-lib-libmerkle_root"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/release/deps/libmerkle_root-671ba0fe5bfc9244.rmeta: src/lib.rs
2+
3+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/release/deps/liblibmerkle_root-671ba0fe5bfc9244.rlib: src/lib.rs
4+
5+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/release/deps/libmerkle_root-671ba0fe5bfc9244.d: src/lib.rs
6+
7+
src/lib.rs:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/target/release/liblibmerkle_root.rlib: /Users/olivmath/Documents/dev/personal/merkly/merkly/accelerator/libmerkle_root/src/lib.rs
Binary file not shown.

merkly/accelerator/mtreers.py

Lines changed: 9 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from Crypto.Hash import keccak as cryptodome_keccak
2+
from typing import List
13
from ctypes import (
24
CDLL,
35
CFUNCTYPE,
@@ -7,48 +9,17 @@
79
cast,
810
memmove,
911
)
10-
from typing import List
11-
from Crypto.Hash import keccak as cryptodome_keccak
1212

1313

1414
class MTreers:
1515
def __init__(self) -> None:
16-
callback_function = CFUNCTYPE(None, POINTER(c_ubyte), POINTER(c_ubyte))
17-
18-
@callback_function
19-
def python_callback(ptr, output_ptr):
20-
print("PYTHON FROM RUST")
21-
data = bytes(ptr[:64])
22-
23-
keccak_256 = cryptodome_keccak.new(digest_bits=256)
24-
keccak_256.update(data)
25-
26-
memmove(output_ptr, keccak_256.digest(), 32)
27-
28-
self.keccak = python_callback
29-
30-
self.lib = CDLL("./merkly/accelerator/libmerkle_root.dylib")
31-
self.lib.make_root.argtypes = (
32-
callback_function,
33-
POINTER(POINTER(c_ubyte)),
34-
c_size_t,
35-
)
36-
self.lib.make_root.restype = POINTER(c_ubyte)
37-
38-
self.lib.free_32.argtypes = [POINTER(c_ubyte)]
39-
self.lib.free_32.restype = None
16+
...
4017

41-
def make_root(self, leafs: List[bytes]) -> bytes:
42-
pointer_array_type = POINTER(c_ubyte) * len(leafs)
43-
pointers = pointer_array_type(
44-
*[
45-
cast((c_ubyte * 32).from_buffer_copy(leaf), POINTER(c_ubyte))
46-
for leaf in leafs
47-
]
48-
)
18+
def make_root(self, leaves: List[bytes]) -> bytes:
19+
...
4920

50-
result_ptr = self.lib.make_root(self.keccak, pointers, len(leafs))
51-
result = bytes(result_ptr[:32])
52-
self.lib.free_32(result_ptr)
21+
def make_proof(self, leaves: List[bytes]) -> bytes:
22+
...
5323

54-
return result
24+
def verify(self, proof: List[bytes], raw_leaf: str) -> bytes
25+
...

test/accelerator/test_accelerator.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,8 @@ def test_merkle_root_rust_and_merkle_root_python():
2424

2525
bytes_leaves = list(map(lambda x: x.encode(), leafs))
2626
hash_leaves = list(map(hashing, bytes_leaves))
27-
assert hash_leaves == tree.leaves
2827

29-
resultrs = treers.make_root(hash_leaves)
30-
resultpy = tree.make_root(hash_leaves)
28+
print(tree.human_leaves)
29+
treers.make_root(hash_leaves)
3130

32-
assert resultrs.hex() == resultpy.hex()
31+
assert 1 == 2

0 commit comments

Comments
 (0)