diff --git a/books/user/src/SUMMARY.md b/books/user/src/SUMMARY.md index 2320f9acd..a0eed1c90 100644 --- a/books/user/src/SUMMARY.md +++ b/books/user/src/SUMMARY.md @@ -22,7 +22,10 @@ - [Deployment](deployment/intro.md) - [systemd](deployment/systemd.md) +- [RPC](rpc.md) + - [Platform support](platform.md) + - [License](license.md) diff --git a/books/user/src/introduction.md b/books/user/src/introduction.md index 2079a1954..e7978b0da 100644 --- a/books/user/src/introduction.md +++ b/books/user/src/introduction.md @@ -91,7 +91,7 @@ The database `cuprated` generates and uses cannot directly be used by `monerod` ## Can I connect a wallet to `cuprated`? Not yet. -Wallets require the [daemon RPC API](https://docs.getmonero.org/rpc-library/monerod-rpc). This is actively being worked on to be backwards compatible with `monerod`, although this is not yet available. +Wallets require the [daemon RPC API](https://docs.getmonero.org/rpc-library/monerod-rpc). This is actively being worked on to be backwards compatible with `monerod`, see the [RPC section](rpc.md) for more information. ## Can `cuprated` be used with an anonymity network like Tor? Not yet (directly). diff --git a/books/user/src/rpc.md b/books/user/src/rpc.md new file mode 100644 index 000000000..7b9d3819f --- /dev/null +++ b/books/user/src/rpc.md @@ -0,0 +1,99 @@ +# RPC +`monerod`'s daemon RPC has 3 kinds of interfaces: +1. [JSON-RPC 2.0](https://www.jsonrpc.org) methods called at the `/json_rpc` endpoint, e.g. [`get_block`](https://www.getmonero.org/resources/developer-guides/daemon-rpc.html#get_block) +1. JSON endpoints, e.g. [`/get_height`](https://www.getmonero.org/resources/developer-guides/daemon-rpc.html#get_height) +1. Binary endpoints, e.g. [`/get_blocks.bin`](https://www.getmonero.org/resources/developer-guides/daemon-rpc.html#get_blocksbin) + + + +`cuprated`'s RPC aims to mirror `monerod`'s as much as it can. The end-goal is compatibility with common use-cases such as wallet software. + +This section contains the development status of endpoints/methods in `cuprated`. + +| Status | Meaning | +|--------|---------| +| 🟢 | Enabled and tested +| 🟣 | Enabled but has differences waiting to be resolved +| 🟠 | Enabled but not tested +| ⚪ | Not enabled yet +| ⚫ | Not planned to be supported + + + +## JSON-RPC methods +| Method | Status | Notes | +|--------------------------------|--------|---------| +| `add_aux_pow` | ⚪ | +| `banned` | ⚪ | +| `calc_pow` | ⚪ | +| `flush_cache` | ⚫ | `cuprated` does not require this method +| `flush_txpool` | ⚪ | +| `generateblocks` | ⚪ | +| `get_alternate_chains` | ⚪ | +| `get_bans` | ⚪ | +| `get_block` | ⚪ | +| `get_block_count` | ⚪ | +| `get_block_header_by_hash` | ⚪ | +| `get_block_header_by_height` | ⚪ | +| `get_block_headers_range` | ⚪ | +| `get_block_template` | ⚪ | +| `get_coinbase_tx_sum` | ⚪ | +| `get_connections` | ⚪ | +| `get_fee_estimate` | ⚪ | +| `get_info` | ⚪ | +| `get_last_block_header` | ⚪ | +| `get_miner_data` | ⚪ | +| `get_output_distribution` | ⚪ | +| `get_output_histogram` | ⚪ | +| `get_tx_ids_loose` | ⚪ | Not implemented in `monerod` release branch yet +| `get_txpool_backlog` | ⚪ | +| `get_version` | ⚪ | +| `hard_fork_info` | ⚪ | +| `on_get_block_hash` | ⚪ | +| `prune_blockchain` | ⚫ | +| `relay_tx` | ⚪ | +| `set_bans` | ⚪ | +| `submit_block` | ⚪ | +| `sync_info` | ⚪ | + +## JSON endpoints +| Endpoint | Status | Notes | +|--------------------------------|--------|---------| +| `/get_alt_blocks_hashes` | ⚪ | +| `/get_height` | ⚪ | +| `/get_limit` | ⚪ | +| `/get_net_stats` | ⚪ | +| `/get_outs` | ⚪ | +| `/get_peer_list` | ⚪ | +| `/get_public_nodes` | ⚪ | +| `/get_transaction_pool` | ⚪ | +| `/get_transaction_pool_hashes` | ⚪ | +| `/get_transaction_pool_stats` | ⚪ | +| `/get_transactions` | ⚪ | +| `/in_peers` | ⚪ | +| `/is_key_image_spent` | ⚪ | +| `/mining_status` | ⚫ | `cuprated` does not mine +| `/out_peers` | ⚪ | +| `/pop_blocks` | ⚪ | +| `/save_bc` | ⚪ | +| `/send_raw_transaction` | ⚪ | +| `/set_bootstrap_daemon` | ⚪ | Requires bootstrap implementation +| `/set_limit` | ⚪ | +| `/set_log_categories` | ⚪ | Could be re-purposed to use `tracing` filters +| `/set_log_hash_rate` | ⚫ | `cuprated` does not mine +| `/set_log_level` | ⚪ | Will use `tracing` levels +| `/start_mining` | ⚫ | `cuprated` does not mine +| `/stop_daemon` | ⚪ | +| `/stop_mining` | ⚫ | `cuprated` does not mine +| `/update` | ⚫ | + +## Binary endpoints +| Endpoint | Status | Notes | +|------------------------------------|--------|---------| +| `/get_blocks.bin` | ⚪ | +| `/get_blocks_by_height.bin` | ⚪ | +| `/get_hashes.bin` | ⚪ | +| `/get_output_distribution.bin` | ⚪ | +| `/get_output_indexes.bin` | ⚪ | +| `/get_outs.bin` | ⚪ | +| `/get_transaction_pool_hashes.bin` | ⚪ |