Skip to content

feat: HashOp_BLAKE3 in Go doHash + Blake3IavlSpec - #6

Open
hard-nett wants to merge 6 commits into
zk-mvpfrom
feat/blake3-dohash
Open

feat: HashOp_BLAKE3 in Go doHash + Blake3IavlSpec#6
hard-nett wants to merge 6 commits into
zk-mvpfrom
feat/blake3-dohash

Conversation

@hard-nett

Copy link
Copy Markdown
Member

Closes #5

Go doHash now implements proto HashOp_BLAKE3 (9) with zeebo/blake3 Sum256, matching the existing Rust food vector. Adds Blake3IavlSpec / blake3_iavl_spec() and IAVL-like prefix checks for SHA-256 or BLAKE3. Default IavlSpec is unchanged.

go test ./... pass. BenchmarkDoHash covers sha256 / blake2s / blake3 at 32 / 64 / 75 / 256 B (75 B ≈ IAVL inner preimage).

Interop path: ics23 (this PR) → ibc-go proof_specs can carry Blake3 IAVL → 07-tendermint client create/migrate. Related IAVL hasher work: permissionlessweb/iavl#1 / #2.

hard-nett and others added 6 commits June 7, 2026 23:37
Close the Go/Rust gap: proto enum 9 was already in rust do_hash and
the HashOp table, but Go doHash rejected it. Wire zeebo/blake3 Sum256,
treat Blake3IavlSpec as IAVL-like for prefix checks (SHA-256 or BLAKE3),
export rust blake3_iavl_spec, add the food vector, and BenchmarkDoHash
for sha256/blake2s/blake3 at 32/64/75/256 B.
Add 32-byte BLAKE2b as a native ICS-23 hash op for state trees that
already use blake2b-256. Go doHash via x/crypto/blake2b.New256, Rust
host blake2b_256, IAVL-like prefix checks, food vector, and
BenchmarkDoHash coverage.
@hard-nett

Copy link
Copy Markdown
Member Author

Also on this PR: HashOp_BLAKE2B_256 (enum 10), Blake2b256IavlSpec, food vector, BenchmarkDoHash blake2b256. Closes the 32-byte BLAKE2b gap (512-bit was already in the enum).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant