Cuprate, an upcoming experimental, modern & secure monero node. Written in Rust https://cuprate.org
Find a file
hinto-janai d3b7ca3e65
cuprated: RPC handlers ()
* import diffs

* small fixes, hardfork changes

* lints

* hard_fork

* apply diffs

* review fixes

* binaries/cuprated/src/rpc/request: `pub(super)` -> `pub(crate)`

* add `BlockChainContextService`, `on_get_block_hash`

* map `tower::BoxError` to `anyhow::Error`

* get_block

* connection_info

* hard_fork_info

* set_bans

* get_bans

* banned

* flush_transaction_pool

* get_output_histogram

* get_coinbase_tx_sum

* get_version

* get_fee_estimate

* get_alternate_chains

* relay_tx

* response_base: `fn` -> `const`

* get_transaction_pool_backlog

* prune

* calc_pow

* add_aux_pow

* get_tx_ids_loose

* generate_blocks

* get_info

* sync_info

* get_miner_data

* `BlockchainManagerRequest` docs

* docs, `ConnectionInfo`, `AddressType`

* sig docs, remove `HardForks` request

* clean imports

* fix `on_get_block_hash`, `generate_blocks`, `get_block_headers_range`

* fix `get_info`, `banned`

* fix `sync_info`

* fix `get_miner_data`

* initial `add_aux_pow` impl

* fix `calculate_pow`

* add_aux_pow

* `get_output_distribution`

* checkup

* `find_nonce()` + `add_aux_pow` async wrapper

* fixes

* `helper::block_header`

* review fixes

* fixes

* doc fix

* p2p: remove tmp `AddressBookRequest::NextNeededPruningSeed`

* lint/todo fixes

* fix bans

* merge diffs from https://github.com/Cuprate/cuprate/pull/272

* `cuprate_types::rpc`, `from` module for `cuprate_rpc_types`

* `rpc-types` -> `types` pt. 2

* type fixes, move fn to `-helper`

* clippy fix

* rpc: move json-rpc types away from macros

* !!

* move types, fix orphan impl + cyclic dependency

* architecture book

* fix json-rpc handlers

* remove `::<N>`

* fix clippy

* fix type defaults, use `Hex`

* return defaults, hex test

* json_rpc: get_block_template

* `/get_transactions`

* `/is_key_image_spent`

* !!

* `/get_transactions` hex

* most of `/send_raw_transaction`

* `/send_raw_transaction`, `/save_bc`, response_base

* `/peerlist`

* `/get_transaction_pool`

* `/get_transaction_pool_stats`

* finish other draft

* get_blocks_by_height, shared::get_outs

* `/get_o_indexes.bin`

* `/get_output_distribution.bin`

* clippy

* `/get_blocks.bin`

* rpc-interface: add restricted invariant comments

* restricted json-rpc error

* get_output_distribution

* module cleanup

* txpool: all_hashes

* `HexVec`

* fix `get_txid` for `/get_outs`

miner transaction was not accounted for

* fix doc tests

* fix conflict

* json-rpc fixes

* `get_transaction_pool_hashes` fix

* rpc/interface: fix cargo hack

* review fixes

* cargo hack fix

* use `monero_address`

* Update binaries/cuprated/src/rpc/handlers/json_rpc.rs

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

* Update binaries/cuprated/src/rpc/handlers/json_rpc.rs

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

* review fixes

* fix `get_hashes`

* fix `is_key_image_spent`

* fix key image types

* fixes

* fix book

* output timelock fix + `blockchain_context()`

* fix

* fix

* fix

* fix getblocks.bin

* `cuprate_types` doc

* output fix

* fixme

* rct output fix

* fix cast

* clippy

---------

Co-authored-by: Boog900 <boog900@tutanota.com>
2025-04-08 17:09:43 +01:00
.github workspace: initial release cycle files () 2025-03-11 23:15:53 +00:00
binaries cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
books cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
consensus cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
constants cuprated: killswitch and version module () 2025-01-21 19:02:10 +00:00
cryptonight P2P: fix deadlock () 2025-03-04 21:36:27 +00:00
helper cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
misc workspace: initial release cycle files () 2025-03-11 23:15:53 +00:00
net cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
p2p cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
pruning workspace: add/fix 1.83 lints () 2024-11-28 19:53:59 +00:00
rpc cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
storage cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
test-utils workspace: add/fix 1.83 lints () 2024-11-28 19:53:59 +00:00
types cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
zmq cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
.gitignore cuprated: auto config docs () 2025-04-05 15:33:56 +01:00
Cargo.lock cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
Cargo.toml cuprated: RPC handlers () 2025-04-08 17:09:43 +01:00
clippy.toml clippy: add doc-valid-idents () 2025-03-08 18:48:47 +00:00
CONTRIBUTING.md CI: add cargo hack () 2024-11-01 20:22:14 +00:00
deny.toml ci: fix deny () 2025-03-21 20:57:52 +00:00
LICENSE books: add skeleton and docs () 2024-05-30 01:19:46 +01:00
LICENSE-AGPL License correction for github () 2023-03-20 21:35:20 +01:00
LICENSE-MIT repo: update license () 2024-05-27 00:39:32 +01:00
README.md Readme and user book: Fix links () 2025-03-13 22:11:04 +00:00
SECURITY.md docs: update README.md & SECURITY.md () 2024-06-14 18:33:43 +01:00
typos.toml rpc: add JSON doc-tests () 2024-07-28 21:43:16 +01:00

An alternative Monero node implementation.

(work-in-progress)

Matrix CI

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.

Books

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

Crates

For a detailed list of all crates, see: https://architecture.cuprate.org/appendix/crates.html.

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.