00bdd6ffaa
* removed FORCE_USE_HEAP to from c code * removed unused headers * simplifying C code to better understand it * more c code simplifications * removed conditional code for the v4 register size * got one version of keccak working * not so important hash_process unwound * got keccak working using the sha3 lib * hash state unions created * slow hash through VARIANT1_PORTABLE_INIT is working * variant 2 init working * ported version of random_math_init compiling, but not yet passing tests * fixed hash algorithm, tests working * formatting * more macro reduction * monero AES working in Rust * fixed AES key expansion expected key size * first 75% of slow hash converted and working correctly * adjusted key format for aesb_single_round * converted some macros to functions * variant2_integer_math working with test cases * broke sqrt out of variant2_integer_math for code coverage * variant2_portable_shuffle_add working with unit tests * added skein and jh hashes * 524287 iteration loop producing correct results * all tests working in Rust * subarray macros added * aes simplifications * code cleanups * code cleanups part 2 * removed unused blake C code as prep for port to rust * original blake algorithm in pure rust is working * converted macro in compress to a lamda * added module documentation for blake256 * Gave Blake256 a Digest trait * adding more documentation * more documentation and cleanup * more slow hash tests * removed C code * misc refactoring * fix * lint fix * additional linting * downgraded deps to latest stable versions * made thiserror a workspace dep * removed commented dead code * lint fixes * fixed lint issues in test code * limited util macro scopes to the crate * Reformatted dependencies using: group_imports = "StdExternalCrate" reorder_modules = true reorder_impl_items = true imports_granularity = "crate" * converted util macros to inline functions * hex dep comes from workspace Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * panic subarray tests Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * updates to doc comments * removes extra parens in hash_v4.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * early return to remove indentation in hash_v2.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * gropuing expect annotations in hash_v2.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * use matches macro to simplify code hash_v4.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * remove extra paren in hash_v4.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * eary return to remove indentation in hash_v2.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * minor comment fixes * early loop continue to remove indentation in hash_v4.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * convert non-capturing llamda to fn in hash_v2.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * another lamda to fn conversion in hash_v2.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * llamda to fn conversion in cnaes.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * 2nd llamda to fn conversion in cnaes.rs Co-authored-by: hinto-janai <hinto.janai@protonmail.com> * test lamdas in lib.rs are now functions * round_fwd optimized * added myself as an author * fixed place that needed wrapping_add * clippy allow->expect change needed after merging master * moving state to u128 * round_fwd changes sped up fuzzer by 10% * 1st working version using u128 for long state * text converted to u128 array * removed LongState union * simplified long_state's initialization * aes round keys now use u128 * CRYPTONIGHT_SBOX is now u32 instead of u8 * cleaner hash_v4 loop unrolling semantics (same peformance) * switched to a better maintained loop unrolling macro |
||
---|---|---|
.github | ||
benches | ||
binaries | ||
books | ||
consensus | ||
constants | ||
cryptonight | ||
helper | ||
misc | ||
net | ||
p2p | ||
pruning | ||
rpc | ||
storage | ||
test-utils | ||
types | ||
zmq | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
clippy.toml | ||
CONTRIBUTING.md | ||
deny.toml | ||
LICENSE | ||
LICENSE-AGPL | ||
LICENSE-MIT | ||
README.md | ||
SECURITY.md | ||
typos.toml |
Contents
About
Cuprate is an effort to create an alternative Monero node implementation in Rust.
It will be able to independently validate Monero consensus rules, providing a layer of security and redundancy for the Monero network.
Documentation
Cuprate is currently a work-in-progress; documentation will be changing/unfinished.
Cuprate maintains various documentation books:
Book | Description |
---|---|
Cuprate's architecture book | Documents Cuprate's internal architecture & implementation |
Monero's protocol book | Documents the Monero protocol |
Cuprate's user book | Practical user-guide for using cuprated |
For crate (library) documentation, see: https://doc.cuprate.org. This site holds documentation for Cuprate's crates and all dependencies. All Cuprate crates start with cuprate_
, for example: cuprate_database
.
Contributing
See CONTRIBUTING.md
.
Security
Cuprate has a responsible vulnerability disclosure policy, see SECURITY.md
.
License
The binaries/
directory is licensed under AGPL-3.0, everything else is licensed under MIT.
See LICENSE
for more details.