Expand description
v1 client puzzle using equix
This was the first proof-of-work scheme defined for Tor, and currently it’s the only one we have.
Originally defined in proposal 327, and now part of the main specification: https://spec.torproject.org/hspow-spec/index.html
Modules§
- challenge 🔒
- Implement the
v1scheme’s challenge string format - err 🔒
- Error types local to the
v1protocol implementation - solve 🔒
- Solver implementation for v1 client puzzles
- types 🔒
- Basic types used by the v1 client puzzle
- verify 🔒
- Verifier implementation for v1 client puzzles
Structs§
- Effort
- Effort setting, a u32 value with linear scale
- Instance
- One instance of this proof-of-work puzzle
- Nonce
- Generated randomly by solvers and included in the solution
- Seed
- The random portion of a challenge, distributed through HsDir
- Seed
Head - A short seed prefix used in solutions to reference the complete seed
- Solution
- One potential solution to some puzzle
Instance - Solver
- Make progress toward finding a
Solution. - Solver
Input - All inputs necessary to run the
Solver - Verifier
- Checker for potential
Solutions to a particular puzzleInstance
Enums§
- Parse
Seed Error - Error when converting a string to a
Seed. - Runtime
Error V1 - Protocol-specific runtime errors
- Runtime
Option - Option for selecting a HashX runtime
- Solution
Error V1 - Protocol-specific ways a solution can fail verification
Constants§
- NONCE_
LEN - Length of the nonce value generated by clients and included in the solution
- SEED_
HEAD_ LEN - Length of a seed prefix used to identify the entire seed
- SEED_
LEN - Length of the random seed generated by servers and included in HsDir
Type Aliases§
- Solution
Byte Array - A byte array of the right length to convert to/from a
Solution