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
v1
scheme’s challenge string format - err 🔒
- Error types local to the
v1
protocol 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
Solution
s 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
]