Skip to content

Encoder/decoder for the Subspace Network Blockchain based on the SLOTH permutation

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

simonatsn/sloth256-189

 
 

Repository files navigation

sloth256-189

Encoder/decoder for the Subspace Network Blockchain based on the SLOTH permutation

CI Crates.io Docs

This is an adaptation of SLOTH (slow-timed hash function) into a time-asymmetric permutation using a standard CBC block cipher.

This library consists of 2 major implementations:

  • CPU
  • CUDA

CPU Implementation contains 3 flavors:

  • optimized assembly-assisted implementation for x86-64 processors with ADX ISA extension (Linux, macOS and Windows)
  • any 64-bt platform with support for __int128 C type (modern GCC/Clang, but not MSVC)
  • fallback for other platforms

For more details, README.md under src/cpu can be referred.


CUDA implementation is heavily using low-level PTX code to achieve the maximum performance.

Details of the CUDA implementation can be found in README.md under src/cuda.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in cc-rs by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Encoder/decoder for the Subspace Network Blockchain based on the SLOTH permutation

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Assembly 33.8%
  • C 20.4%
  • Rust 18.9%
  • Cuda 14.1%
  • C++ 12.7%
  • Shell 0.1%