diff --git a/consensus/README.md b/consensus/README.md index 55cb2251..dc1d0df4 100644 --- a/consensus/README.md +++ b/consensus/README.md @@ -1,10 +1,37 @@ # Consensus Rules This folder contains 2 crates: `monero-consensus` (rules) and `cuprate-consensus`. `monero-consensus` contains the raw-rules -and isb built to be a more flexible library which requires the user to give the correct data and do minimal calculations, `cuprate-consensus` +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 tx/ block verification as a whole with a `context` service that keeps track of blockchain state. `cuprate-consensus` uses `monero-consensus` internally. If you are looking to use monero consensus rules it's recommended you try to integrate `cuprate-consensus` and fall back to `monero-consensus` if you need more flexibility. +## scan_chain + +`cuprate-consensus` contains a binary,`scan_chain`, which uses multiple RPC connections to scan the blockchain and verify it against the +consensus rules. It keeps track of minimal data and uses the RPC connection to get blocks/transactions/outputs. + +`scan_chain` was not built for wide usage, so you may find issues, if you do, open an issue in Cuprates issue tracker and or join our matrix +room for help. `scan_chain` has only been verified on `x86_64-unknown-linux-gnu`. + +`scan_chain` will take at least a day for stagenet and testnet and 6 for mainnet but expect it to be longer. If you are just looking to verify +previous transactions it may be worth using `monerod` with `--fast-block-sync 0` this will probably be faster to complete and you will have a +usable node at the end! + +### How to run + +First you will need to install Rust/Cargo: https://www.rust-lang.org/tools/install + +Next you need to clone Cuprates git repo, enter the root of Cuprate, then run: + +``` +cargo run --bin scan_chain -r +``` + +If you want to pass in options you need to add `--` then the option(s), so to list the options do: + +``` +cargo run --bin scan_chain -r -- --help +``` \ No newline at end of file