Cuprate Architecture
🟡 Foreword
1.
🟠 Intro
1.1.
🟡 Who this book is for
1.2.
🔴 Required knowledge
1.3.
🔴 How to use this book
2.
⚪️ Bird's eye view
2.1.
⚪️ Map
2.2.
⚪️ Components
3.
⚪️ Formats, protocols, types
3.1.
⚪️ monero_serai
3.2.
⚪️ cuprate_types
3.3.
⚪️ cuprate_helper
3.4.
⚪️ Epee
3.5.
⚪️ Levin
4.
⚪️ Storage
4.1.
⚪️ Database abstraction
4.2.
⚪️ Blockchain
4.3.
⚪️ Transaction pool
4.4.
⚪️ Pruning
5.
🔴 RPC
5.1.
⚪️ Types
5.1.1.
⚪️ JSON
5.1.2.
⚪️ Binary
5.1.3.
⚪️ Other
5.2.
⚪️ Interface
5.3.
⚪️ Router
5.4.
⚪️ Handler
5.5.
⚪️ Methods
6.
⚪️ ZMQ
6.1.
⚪️ TODO
7.
⚪️ Consensus
7.1.
⚪️ Verifier
7.2.
⚪️ TODO
8.
⚪️ Networking
8.1.
⚪️ P2P
8.2.
⚪️ Dandelion++
8.3.
⚪️ Proxy
8.4.
⚪️ Tor
8.5.
⚪️ i2p
8.6.
⚪️ IPv4/IPv6
9.
🔴 Instrumentation
9.1.
⚪️ Logging
9.2.
⚪️ Data collection
10.
⚪️ Binary
10.1.
⚪️ CLI
10.2.
⚪️ Config
10.3.
⚪️ Logging
11.
⚪️ Resource model
11.1.
⚪️ File system
11.2.
⚪️ Sockets
11.3.
⚪️ Memory
11.4.
🟡 Concurrency and parallelism
11.4.1.
⚪️ Map
11.4.2.
⚪️ The RPC server
11.4.3.
⚪️ The database
11.4.4.
⚪️ The block downloader
11.4.5.
⚪️ The verifier
11.4.6.
⚪️ Thread exit
12.
⚪️ External Monero libraries
12.1.
⚪️ Cryptonight
12.2.
🔴 RandomX
12.3.
🔴 monero_serai
13.
⚪️ Benchmarking
13.1.
⚪️ Criterion
13.2.
⚪️ Harness
14.
⚪️ Testing
14.1.
⚪️ Monero data
14.2.
⚪️ RPC client
14.3.
⚪️ Spawning monerod
15.
⚪️ Known issues and tradeoffs
15.1.
⚪️ Networking
15.2.
⚪️ RPC
15.3.
⚪️ Storage
16.
⚪️ Appendix
16.1.
🔴 Contributing
16.2.
🔴 Crate documentation
16.3.
🔴 Build targets
16.4.
🔴 Protocol book
16.5.
⚪️ User book
Light
Rust
Coal
Navy
Ayu
Cuprate Architecture
⚪️ Networking