Expand description
Find Equi-X solutions.
This is a particular instance of Equihash, a tree-structured search for partial hash collisions using temporary memory. Equi-X modifies it to use sums instead of XOR, and chooses specific parameters.
Structsยง
- Overlay
First ๐ - First memory overlay, contains the key portion of
Layer0 - Overlay
Second ๐ - Second overlay, with both parts of Layer2
- Solver
Memory - Temporary memory used by the Equi-X solver
- Solver
Memory ๐Inner - Internal solver memory, inside the heap allocation
Functionsยง
- find_
solutions ๐ - Search for solutions, iterating the entire
SolutionItemspace and using temporary memory to locate partial sum collisions at each tree layer.
Type Aliasesยง
- Layer0 ๐
- First layer hash table, needs room for the full set of
HashValues andSolutionItems. Key remainder is(EQUIHASH_N - 8 == 52)bits here. - Layer0
Collision ๐ - Packed collision type for
Layer0 - Layer0
KeyMem ๐ - Key backing storage for
Layer0 - Layer0
Value ๐Mem - Value backing storage for
Layer0 - Layer1 ๐
- Next layer maps residual hash (3/4 full width == 45 bits) to packed
Layer0Collision. Key remainder is 37 bits after this. - Layer2 ๐
- Final layer maps the (N/2 == 30 bits) residual hash sum to packed
Layer1Collision. Key remainder is 22 bits. - Layer1
Collision ๐ - Packed collision type for
Layer1 - Layer1
KeyMem ๐ - Key backing storage for
Layer1 - Layer1
Value ๐Mem - Value backing storage for
Layer1 - Layer2
KeyMem ๐ - Key backing storage for
Layer2 - Layer2
Value ๐Mem - Value backing storage for
Layer2 - TempMem ๐
- Temporary value hash for resolving collisions between buckets.
This removes 7 bits of key between each of the other layers.
Value type may hold a
SolutionItemor a temporary item-in-bucket index.
Unionsยง
- Overlay ๐
- Union of overlay layouts used in solver memory