Cuprate, an upcoming experimental, modern & secure monero node. Written in Rust https://cuprate.org
Find a file
hinto-janai f7bd1304e2
database: Errors (#62)
* error: add variants to `RuntimeError`

* error: remove `<BackendError>` generic

we can just map each backend error variant <-> our error as needed

* backend: impl `From<heed::Error>` for `RuntimeError`

* add `Never` type to allow foreign trait implementations

This is a newtype to workaround `sanakirja::Storable` not being
able to be implemented on `std::convert::Infallible` due to
"foreign trait on foreign type" rules.

* revert 0342848, fix `sanakirja` trait bounds

K/V will always be `[u8]`, not the concrete type
so it does not need to be bounded.

* backend: fix `sanakijra` K/V generics

* sanakirja: add `error.rs`

* error: remove serde traits

* heed: add `todo!()` for error mappings

* error: add `Corrupt` variant

* sanakirja: finish error mappings

* heed: finish error mappings

* error: add to error types

* env: use `InitError` in `Env::open()`

* error: docs

* heed: remove `serde.rs`

Not needed if all K/V's stored are `[u8]`.

* heed: use `heed::types::Bytes` as K/V

* database: docs

* heed: impl `From<heed::Error>` for `InitError`

* sanakirja: impl `From<sanakirja::Error>` for `InitError`

* error: fix doc warnings

* heed: fix `clippy::match_same_arms` in error match

* readme: add TODO

* error: add `BoxError`, and fatal/unknown variants

* heed: use `Fatal/Unknown` variants in errors

* sanakirja: use `Fatal/Unknown` variants in errors

* clippy

* sanakijra: remove `fallible_impl_from`

* error: remove `RuntimeError::InvalidVersion`

* error: remove `RuntimeError` variants that should panic

* error: remove `InitError::Fatal`

We will exit on all errors regardless.

Any non-enumrated variants will use `InitError::Unknown`.

* heed: fix error mappings

* constants: add `CUPRATE_DATABASE_CORRUPT_MSG`

* sanakijra: fix error mappings

* heed: fix import

* comments/docs

* key: fix docs
2024-02-17 13:00:14 +00:00
.github/workflows Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00
consensus Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00
cryptonight Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00
database database: Errors (#62) 2024-02-17 13:00:14 +00:00
helper helper: add constants & COMMIT (#64) 2024-02-15 21:44:43 +00:00
misc Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00
net Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00
old_database Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00
p2p imporove Monerod spawn stability (#66) 2024-02-16 22:47:50 +00:00
pruning remove empty cuprate bin and common 2024-01-22 01:56:34 +00:00
test-utils imporove Monerod spawn stability (#66) 2024-02-16 22:47:50 +00:00
.gitignore ci: include macos + windows (#52) 2024-02-12 13:39:15 +00:00
Cargo.lock imporove Monerod spawn stability (#66) 2024-02-16 22:47:50 +00:00
Cargo.toml Database (#35) 2024-02-13 17:43:25 +00:00
CONTRIBUTING.md Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00
LICENSE-AGPL License correction for github (#10) 2023-03-20 21:35:20 +01:00
LICENSE.md License correction for github (#10) 2023-03-20 21:35:20 +01:00
README.md add CI actions 2023-10-25 21:07:13 -04:00
SECURITY.md Inital Security Policy 2023-03-20 18:41:58 +01:00
typos.toml Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00

Cuprate


An up and coming Rust Monero node.

Matrix CI

Cuprate will be an alternative Monero node written from the ground up in Rust. It will be able to independently validate Monero consensus rules providing a layer of security and redundancy for the Monero network.

Cuprate will help to protect the network from implementation bugs that could cause a variety of issues, plus because it's written in a memory safe language Cuprate will be less likely to suffer from memory safety issues compared to monerod.