cuprate/consensus
Boog900 889e15738b
Cleanup & Document consensus (#65)
* change monero-consensus to cuprate-consensus-rules

* document the context service

* remove the mutex on blockchain context

* comment the context caches

* add back tokio

* document block checks

* typo

* keep tha amount of outputs with a certain amount in the output cache

* typo

* nuke cross-block batch verification

* remove RPC scanner

* change how contextual data is got.

* fmt & clippy fixes

* typo

* cargo update

* restore Cargo.lock

* add a verify tx test.
+ fixes an issue with verifying signatures after BPs

* clippy

* remove bad test

* add mores tests and fix a couple bugs

* typos

* move tests and add some more

* typo

* remove scan_chain docs

* fix check for duplicate txs when duplicates are not sequential

* add a proptest for dup txs

* cache tx verification state

* doc updates + move `Vec` to `Arc<[]>`

* clippy

* misc changes

* Apply suggestions from code review

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>
Co-authored-by: SyntheticBird <118022351+SyntheticBird45@users.noreply.github.com>

* fix fmt

* review changes

---------

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>
Co-authored-by: SyntheticBird <118022351+SyntheticBird45@users.noreply.github.com>
2024-05-31 01:52:12 +01:00
..
rules Cleanup & Document consensus (#65) 2024-05-31 01:52:12 +01:00
src Cleanup & Document consensus (#65) 2024-05-31 01:52:12 +01:00
tests Cleanup & Document consensus (#65) 2024-05-31 01:52:12 +01:00
Cargo.toml Cleanup & Document consensus (#65) 2024-05-31 01:52:12 +01:00
README.md Cleanup & Document consensus (#65) 2024-05-31 01:52:12 +01:00

Consensus Rules

This folder contains 2 crates:

  • cuprate-consensus-rules (rules/ directory)
  • cuprate-consensus

cuprate-consensus-rules contains the raw-rules and is built to be a more flexible library which requires the user to give the correct data and do minimal calculations.

cuprate-consensus on the other hand contains multiple tower::Services that handle transaction/block verification as a whole with a context service that keeps track of blockchain state. cuprate-consensus uses cuprate-consensus-rules internally.

If you are looking to use Monero consensus rules it's recommended you try to integrate cuprate-consensus and fall back to cuprate-consensus-rules if you need more flexibility.