summaryrefslogtreecommitdiff
path: root/crates/equix
Commit message (Collapse)AuthorAgeFilesLines
...
* | hashx/bench, equix/bench: check in matching Cargo.lock filesMicah Elizabeth Scott2023-08-012-1/+1109
| | | | | | | | | | | | | | | | It might be useful to keep these locked down for benchmark reproducibility. Currently the hashx and equix crates are fully separate. Signed-off-by: Micah Elizabeth Scott <[email protected]>
* | equix, hashx: Benchmark against C implementationMicah Elizabeth Scott2023-08-015-86/+246
|/ | | | | | | | | | | | | | | | | | | | | This is a small batch of improvements for the equix and hashx benchmarks. The headline feature is that we are now including the C implementations (slightly modified from tevador's, hosted as part of c-tor) and using them in apples-to-apples comparisons. Minor features: - Benchmarks moved to new nested crates, preventing their dependencies from spilling into the main workspace build. - Tests are now grouped - We also test the performance of memory reuse where possible - Code cleanup for per-runtime options These benchmark builds will now automatically pull in the c-tor git repo and build portions of it with a Rust wrapper. This uses the 'cc' and 'bindgen' crates, so it requires a C compiler and libclang on the host system. Signed-off-by: Micah Elizabeth Scott <[email protected]>
* Run "fixup features" in preparation for a release.Nick Mathewson2023-08-011-1/+1
|
* equix, hashx: Additional comment tweaksMicah Elizabeth Scott2023-07-273-11/+63
| | | | | | More review feedback. Thanks nickm! Signed-off-by: Micah Elizabeth Scott <[email protected]>
* equix, hashx: Prepare for an initial LGPL releaseMicah Elizabeth Scott2023-07-271-1/+6
| | | | | | | This replaces the 'TODO' marker from earlier commits, using tevador's copyright and license (LGPL 3.0 only) for the hashx and equix crates. Signed-off-by: Micah Elizabeth Scott <[email protected]>
* tor-hspow, equix, hashx: Comment tweaksMicah Elizabeth Scott2023-07-278-77/+105
| | | | | | Making a few comment tweaks suggested in review feedback. Signed-off-by: Micah Elizabeth Scott <[email protected]>
* tor-hspow, equix, hashx: Make all error types CloneMicah Elizabeth Scott2023-07-271-1/+1
| | | | | | | This uses an Arc to hold std::io::Error for low-level HashX runtime errors. Signed-off-by: Micah Elizabeth Scott <[email protected]>
* equix: Refactoring for bucket_arrayMicah Elizabeth Scott2023-07-274-434/+662
| | | | | | | This splits up bucket_array into two smaller modules, one for the hash table behavior and one for the MaybeUninit memory management. Signed-off-by: Micah Elizabeth Scott <[email protected]>
* Update equix, hashx, tor-hspow for new clippy defaultsMicah Elizabeth Scott2023-07-271-1/+1
| | | | Just running maint/add_warning after the rebase
* Reimplement Equi-X in RustMicah Elizabeth Scott2023-07-2712-0/+1706
This is a new pure Rust implementation of the Equi-X algorithm designed by tevador for Tor's onion service proof of work puzzle v1. Equi-X is an asymmetric puzzle algorithm based on Equihash, with N=60, K=3, the XOR replaced with modular addition, a 16-bit index space, and HashX as the inner hash function. Signed-off-by: Micah Elizabeth Scott <[email protected]>