# 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::Service`s 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.