Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions books/user/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,10 @@
- [Deployment](deployment/intro.md)
- [systemd](deployment/systemd.md)

- [RPC](rpc.md)

- [Platform support](platform.md)

- [License](license.md)

<!-- TODO: - [Glossary](glossary/intro.md) or maybe a wiki? -->
2 changes: 1 addition & 1 deletion books/user/src/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down
99 changes: 99 additions & 0 deletions books/user/src/rpc.md
Original file line number Diff line number Diff line change
@@ -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)

<!-- TODO: explain the binary format -->

`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

<!-- NOTE: Sort methods/endpoints A-Z -->

## 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` | ⚪ |