Skip to content

Commit

Permalink
Architecture RPC info (#140)
Browse files Browse the repository at this point in the history
* First draft of planned topic on RPC protocol

* CLarify based on Nic's comments

* Missing period

Co-authored-by: NicNomadic <[email protected]>

* Format for updated date

* Add link to full RPC API doc

---------

Co-authored-by: NicNomadic <[email protected]>
  • Loading branch information
timothymcmackin and NicNomadic authored Nov 16, 2023
1 parent 3ba728c commit 5d0b7d2
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 1 deletion.
29 changes: 29 additions & 0 deletions docs/architecture/rpc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: The RPC protocol
authors: "Tim McMackin"
last_update:
date: 6 November 2023
---

The Tezos RPC (Remote Procedure Call) protocol is a specification for a REST API that clients use to interact with Tezos nodes and nodes use to communicate with each other.
Clients use this protocol to submit transactions and get information about the state of the blockchain, such as account balances and contract storage.
Tezos nodes act as servers and accept HTTP requests from clients and other nodes via this protocol.

Tezos RPC uses JSON to send and receive data, but it does not adhere to the JSON-RPC specification.

For a list of the endpoints in the Tezos RPC protocol, see [Shell RPCs - Reference](https://tezos.gitlab.io/shell/rpc.html#rpc-index-shell) in the Octez documentation.

## Public and private RPC nodes

All Tezos nodes run RPC servers, but the RPC interface is subject to an access policy.
By default, RPC servers are private and do not accept all requests from every client.

When you work with a Tezos client, such as the Octez command-line client or the Taquito SDK, you select a public RPC node to send transactions to, or you can use a private RPC node that you have access to.

If you're using a testnet, you can get a list of public RPC nodes for that network at https://teztnets.xyz.

Other sources of public nodes include:

- [Community RPC Nodes](https://tezostaquito.io/docs/rpc_nodes) listed by ECAD Labs.
- [SmartPy nodes](https://smartpy.io/nodes)
- [RPC nodes](https://tezostaquito.io/docs/rpc_nodes) in the Taquito documentation
2 changes: 1 addition & 1 deletion docs/dApps/wallets.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ For the best user experience, use the reconnection feature of Beacon described a
The UI can reflect that the user is connected and display the account address.
In this case, you can replace the "Connect" and "Sync" buttons with "Disconnect" and "Unsync" button.

### Connect to multiple RPCs
### Connect to multiple RPC nodes

If a high number of users are using your dApp at the same time, the load on the RPC can spike.
Ideally, the server infrastructure should be using a load balancer and caching to handle the load.
Expand Down
1 change: 1 addition & 0 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ const sidebars = {
// 'architecture/baking/delegating',
// ],
// },
'architecture/rpc',
'architecture/smart-rollups',
// 'architecture/data-availability', // TODO
{
Expand Down

0 comments on commit 5d0b7d2

Please sign in to comment.