Cuprate, an upcoming experimental, modern & secure monero node. Written in Rust https://cuprate.org
Find a file
hinto-janai ad7b750d76
database: impl service::{Request,Response} mappings (#101)
* add `cuprate-types`

* remove `cuprate_database::service::{request,response}`

* use `cuprate_types::service::{request,response}`

* service: fix `Request` `match`'s

* service: create `ReadRequest` function mappings

* service: create `WriteRequest` function mappings

* service: add rough `WriteRequest` retry loop

* service: handle `RuntimeError::ResizeNeeded` in writer

* add `{R,r}o` exception to typos

* docs

* env: make `resize_map()` return new memory map byte size

* write: proactively handle resizes

`add_block()` takes `VerifiedBlockInformation` such
that it can just take the inner blobs of data.

This is a problem when reactively resizing since we no longer
have the block struct we just gave away so we're forced to `.clone()`
each retry.

Instead of that - we will proactively resize so the resize error
will never occur in the first place.

* read: use type aliases

* docs

* fix import

* write: handle resizes reactively

* service: panic if response can't be sent back

* write: add loop unreachable asserts

* service: print and drop error instead of panic

* write: fix retry loop off-by-1

* write: fix docs

* review changes

* update readme

* remove `BlockBatchInRange` request/response

* Update database/README.md

Co-authored-by: Boog900 <boog900@tutanota.com>

---------

Co-authored-by: Boog900 <boog900@tutanota.com>
2024-04-16 23:05:38 +01:00
.github/workflows database: impl trait function bodies for heed & redb (#85) 2024-03-13 22:05:24 +00:00
consensus CI: fix deny (#83) 2024-02-29 20:29:11 +00:00
cryptonight Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00
database database: impl service::{Request,Response} mappings (#101) 2024-04-16 23:05:38 +01:00
helper database: Resizes, Shutdown, Flushing (#68) 2024-02-25 19:46:36 +00:00
misc update gpg key (#86) 2024-03-03 23:19:26 +00:00
net P2P Address book & Handshake changes (#89) 2024-03-20 20:58:12 +00:00
old_database Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00
p2p P2P Address book & Handshake changes (#89) 2024-03-20 20:58:12 +00:00
pruning Keep pruning seeds decompressed (#90) 2024-03-15 22:11:27 +00:00
test-utils test-utils: add data/ (#107) 2024-04-13 02:13:46 +01:00
types database: impl service::{Request,Response} mappings (#101) 2024-04-16 23:05:38 +01:00
.gitignore ci: include macos + windows (#52) 2024-02-12 13:39:15 +00:00
Cargo.lock database: impl service::{Request,Response} mappings (#101) 2024-04-16 23:05:38 +01:00
Cargo.toml Implement types/ (#94) 2024-03-27 00:46:32 +00:00
CONTRIBUTING.md Add typos + cargo doc CI (#32) 2024-02-15 16:03:04 +00:00
deny.toml CI: fix deny (#83) 2024-02-29 20:29:11 +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 database: impl service::{Request,Response} mappings (#101) 2024-04-16 23:05:38 +01: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.