Cuprate, an upcoming experimental, modern & secure monero node. Written in Rust
Find a file
Boog900 503ef11514
cuprated: Init (#344)
* add cuprated skeleton

* fmt and add deny exception

* add main chain batch handler

* add blockchain init

* very rough block manager

* misc changes

* move more config values

* add new tables & types

* add function to fully add an alt block

* resolve current todo!s

* add new requests

* WIP: starting re-orgs

* add last service request

* commit Cargo.lock

* add test

* more docs + cleanup + alt blocks request

* clippy + fmt

* document types

* move tx_fee to helper

* more doc updates

* fmt

* fix imports

* remove config files

* fix merge errors

* fix generated coins

* handle more p2p requests + alt blocks

* clean up handler code

* add function for incoming blocks

* add docs to handler functions

* broadcast new blocks + add commands

* add fluffy block handler

* fix new block handling

* small cleanup

* increase outbound peer count

* fix merge

* clean up the blockchain manger

* add more docs + cleanup imports

* fix typo

* fix doc

* remove unrelated changes

* add `get_objects` handler

* add `get_chain` handler

* add `fluffy_missing_txs` handler

* add `new_fluffy_block` handler

* improve interface globals

* manger -> manager

* enums instead of bools

* move chain service to separate file

* more review fixes

* sort imports + docs

* init config

* init dandelion integration

* add dandelion start function

* finish incoming tx handler

* Add tx blob hash table

* Add missing txpool requests

* handle duplicate stem txs

* check txpool on incoming block

* add request to remove tx in new blocks from the pool

* tell the txpool about incoming blocks

* fix merge

* typos

* remove blockchain height from txpool

* fix merge

* fix merge

* handle incoming txs in p2p request handler

* split sections

* finish initial config.

* fix clap

* misc changes

* fix doc

* fix test & clippy

* fix test 2

* try fix windows

* testing

* testing 2

* fix windows test

* fix windows: the remix.

* Allow `IncomingTxHandler` to be given later

* add p2p clearnet init

* fix build

* misc changes

* review comments

* fix imports

* rename & fix default config file

* fix cargo hack

* enable serde on `cuprate-helper`

* changes from matrix chats

* fix ci

* fix doc

* fix doc test

* doc updates

* more doc updates

* sort imports

* add startup code

* d -> h

* add file logging

* fix stem peer service

* todo

* remove `get_range`

* change usages of `get_range`

* clippy

* cargo update

* fix test + update comment

* manually set numb threads for each pool

* fix address book saves

* add more data to status

* fix config

* cleanup main + logging

* add more info to output when changing log level

* cleanup commands

* fix small issue in block downloader  more misc clean up

* cross block bp(+) batch verification

* add message when syncing is done

* Revert "cross block bp(+) batch verification"

This reverts commit 764c4663a0.

* fix fmt & clippy

* move `io_loop` to commands

* review fixes

* fix clippy

* review fixes
2025-01-17 20:24:24 +00:00
.github ci: stable Rust for deny, remove boost dep for docs (#364) 2025-01-16 16:31:55 +00:00
benches workspace: add/fix 1.83 lints (#353) 2024-11-28 19:53:59 +00:00
binaries cuprated: Init (#344) 2025-01-17 20:24:24 +00:00
books benches: initial implementation (#196) 2024-11-25 20:10:42 +00:00
consensus workspace: add/fix 1.83 lints (#353) 2024-11-28 19:53:59 +00:00
constants workspace: Rust 1.84 (#363) 2025-01-16 15:43:42 +00:00
cryptonight Fix #346 (#347) 2024-11-21 22:32:48 +00:00
helper cuprated: Init (#344) 2025-01-17 20:24:24 +00:00
misc misc: Update SyntheticBird PGP key (#362) 2025-01-14 01:38:14 +00:00
net rpc/types 32 bit support (#334) 2025-01-08 03:49:59 +00:00
p2p cuprated: Init (#344) 2025-01-17 20:24:24 +00:00
pruning workspace: add/fix 1.83 lints (#353) 2024-11-28 19:53:59 +00:00
rpc workspace: Rust 1.84 (#363) 2025-01-16 15:43:42 +00:00
storage cuprated: Init (#344) 2025-01-17 20:24:24 +00:00
test-utils workspace: add/fix 1.83 lints (#353) 2024-11-28 19:53:59 +00:00
types cuprated: Init (#344) 2025-01-17 20:24:24 +00:00
zmq ZMQ PUB/SUB JSON Types (#330) 2024-11-21 01:08:24 +00:00
.gitignore books: add skeleton and docs (#141) 2024-05-30 01:19:46 +01:00
Cargo.lock cuprated: Init (#344) 2025-01-17 20:24:24 +00:00
Cargo.toml cuprated: Init (#344) 2025-01-17 20:24:24 +00:00
clippy.toml workspace: Rust 1.84 (#363) 2025-01-16 15:43:42 +00:00
CONTRIBUTING.md CI: add cargo hack (#170) 2024-11-01 20:22:14 +00:00
deny.toml Fix ci and loosen version requirements (#335) 2024-11-04 15:22:43 +00:00
LICENSE books: add skeleton and docs (#141) 2024-05-30 01:19:46 +01:00
LICENSE-AGPL License correction for github (#10) 2023-03-20 21:35:20 +01:00
LICENSE-MIT repo: update license (#134) 2024-05-27 00:39:32 +01:00
README.md ci: add doc.yml (#203) 2024-07-03 22:38:47 +01:00
SECURITY.md docs: update README.md & SECURITY.md (#143) 2024-06-14 18:33:43 +01:00
typos.toml rpc: add JSON doc-tests (#232) 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.

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.