How 0x44-labs/rs-traversev works
TraverseV is a Rust library for memory-hard proof-of-work. A caller configures parameters and constructs a trustless or permissioned instance; construction derives and fills a memory buffer. Mining searches nonce candidates using a sequential, read-only traversal and returns a proof meeting the configured difficulty; verification checks a supplied candidate without repeating the search. The graph includes block/mixing primitives as the internal implementation layer. Some evaluation details are described only in the README, so those links cite it rather than implying the unsampled implementation was inspected.
Main entry points: lib.rs TraverseV API · fill.rs Multi-pass fill · params.rs Parameters · block.rs Memory block
Components 13
Configuration and API
- TraverseV API
src/lib.rs - Parameters
src/params.rs - Parameter errors
src/errors.rs
Memory construction
- Seed blocks
src/memory/init.rs - Multi-pass fill
src/memory/fill.rs - Block compression
src/memory/compress.rs - Memory block
src/block.rs
Proof evaluation
- Nonce evaluation
src/lib.rs - Sequential traversal
src/mix/itermix.rs - Scrypt block mix
src/mix/blockmix.rs - Difficulty check
src/lib.rs - Proof result
src/lib.rs
Other components
- Application caller
Connections 16
- Application caller → TraverseV API: constructs and calls
README.md - Application caller → Parameters: configures
README.md - Parameters → Parameter errors: returns validation errors
src/params.rs - TraverseV API → Parameters: uses configuration
src/lib.rs - TraverseV API → Multi-pass fill: builds buffer
src/lib.rs - Multi-pass fill → Seed blocks: derives starting blocks
src/memory/fill.rs - Multi-pass fill → Block compression: compresses blocks
src/memory/fill.rs - Seed blocks → Memory block: produces blocks
src/memory/init.rs - Block compression → Memory block: transforms blocks
src/memory/compress.rs - TraverseV API → Nonce evaluation: mines or verifies
README.md - Nonce evaluation → Sequential traversal: traverses memory
README.md - Sequential traversal → Scrypt block mix: mixes each round
src/mix/itermix.rs - Scrypt block mix → Memory block: updates block
src/mix/blockmix.rs - Nonce evaluation → Difficulty check: checks candidate
src/lib.rs - Nonce evaluation → Proof result: returns proof
README.md - Difficulty check → Proof result: accepts candidate
src/lib.rs