Cuprate, an upcoming experimental, modern & secure monero node. Written in Rust
Find a file
hinto-janai 9c27ba5791
database: impl service fn bodies (#113)
* write: impl write_block()

* ops: add `get_block_info()`

* read: impl block fn's

* read: fix signatures

* service: wrap `ConcreteEnv` in `RwLock` and doc why

* heed: use `read-txn-no-tls` for `Send` read transactions

* service: remove RwLock, impl some read functions

* read: impl `outputs()`

* read: flatten indentation, add `thread_local()`

* read: impl `number_outputs_with_amount()`

* tests: add `AssertTableLen`

* ops: replace all table len asserts with `AssertTableLen`

* service: initial tests

* service: finish most tests

* service: fix bad block data in test

* tables: fix incorrect doc

* service: add `ReadRequest::Outputs` test

* read: use macros for set/getting `ThreadLocal`'s based on backend

* small fixes

* fix review

* small fixes

* read: fix ThreadLocal macros for `redb`

* read: move `Output` mapping to `crate::free`

it's needed in tests too

* service: check output value correctness in tests

* helper: add timelock <-> u64 mapping functions

* free: use `u64_to_timelock()`

* read: rct outputs

* read: fix variable name

* read: use ThreadLocal for both backends

* heed: use Mutex for `HeedTableRo`'s read tx

* block: add miner_tx

* heed: remove Table bound

oops

* Revert "heed: use Mutex for `HeedTableRo`'s read tx"

This reverts commit 7e8aae016c55802070ccf7d152aa8966984d7186.

* add `UnsafeSendable`

* read: use `UnsafeSendable` for `heed`, branch on backend

* read: safety docs

* cargo.toml: re-add `read-txn-no-tls` for heed

* ops: fix tests, remove miner_tx

* fix tx_idx calculation, account for RCT outputs in tests

* read: docs, fix `get_tables!()` for both backends

* fix clippy

* database: `unsafe trait DatabaseRo`

* tx: use correct tx_id

* free: remove miner_tx comment

* free: remove `amount` input for rct outputs

* ops: split `add_tx` inputs

* read: use `UnsafeSendable` for all backends

* heed: update safety comment

* move output functions `free` -> `ops`

* read: fix `chain_height()` handling

* remove serde on `UnsafeSendable`

* de-dup docs on `trait DatabaseRo`, `get_tables!()`

* Update database/src/unsafe_sendable.rs

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

---------

Co-authored-by: Boog900 <boog900@tutanota.com>
2024-05-01 18:52:20 +01:00
.github download monerod in CI (#123) 2024-05-01 01:21:08 +01:00
consensus CI: fix deny (#83) 2024-02-29 20:29:11 +00:00
cryptonight ci: fix windows/macos (#116) 2024-04-27 00:49:55 +01:00
database database: impl service fn bodies (#113) 2024-05-01 18:52:20 +01:00
helper database: impl service fn bodies (#113) 2024-05-01 18:52:20 +01:00
misc [Misc] Updating SyntheticBird's GPG Key (#122) 2024-04-30 20:09:53 +01: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 download monerod in CI (#123) 2024-05-01 01:21:08 +01:00
types database: implement ops/ (#102) 2024-04-23 02:53:29 +01:00
.gitignore download monerod in CI (#123) 2024-05-01 01:21:08 +01:00
Cargo.lock database: impl service fn bodies (#113) 2024-05-01 18:52:20 +01:00
Cargo.toml download monerod in CI (#123) 2024-05-01 01:21:08 +01: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.