In this document you'll find all the relevant information to use the Radix Node API in your development projects.
The Node API allows a client to interact directly with a Node connected to the Radix Universe. As seen in the next diagram, a Node API client is connected directly to a specific Node, and can request any of the REST, JSON-PRC or Websockets API methods.
On the other hand, the Radix client libraries are a layer on top of the Node API. These libraries connect to any number of Nodes as needed, and talk to the API on the client's behalf. They process the low-level data (like Atoms) into high-level abstractions, as token transfers and messages.
Communication with the Radix network
Interaction with the Radix Universe
JSON-RPC API support
JSON-RPC over Websockets support
REST API support
The DSON encoding was defined and built to meet these requirements:
must have the ability to encode/decode both byte-stream and JSON encoded data.
serialization needs to have a well-defined serialized form that can be implemented reasonably easily in other languages. (multi-language support)
Radix nodes and client libraries use JSON encoded DSON for an exchange of data between client and server. Also, clients need to be able to serialize DSON into a byte array to correctly calculate hashes.
For security reasons, the API requests should comply with the following rate limits:
The service crawls the Radix network, verifies the nodes using the Get Network API method, and checks for connected live nodes every minute. On request, the Node Finder will answer with a randomly-selected live node discovered while crawling the network.
This service is not decentralized, and is meant for testing purposes only. It will become a fallback option when the Radix network goes public.