JSON is a lightweight data-interchange format. It can represent numbers, strings, ordered sequences of values, and collections of name/value pairs.
JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. Primarily this specification defines several data structures and the rules around their processing. It is transport agnostic in that the concepts can be used within the same process, over sockets, over HTTP, or in many various message passing environments. It uses JSON (RFC 4627) as data format.
8545
8546
$BASE/jsonrpc.ipc
(defaults to ~/.local/share/openethereum/jsonrpc.ipc
on Linux)There are several datatypes that are passed over JSON. Of these two are “special” types used particularly for the Ethereum API since Javascript/JSON has no native means of encoding unformatted byte arrays nor large quantities. Both are passed with a hex encoding, however with different requirements to formatting:
When encoding QUANTITIES (integers, numbers): encode as hex, prefix with “0x”, the most compact representation (slight exception: zero should be represented as “0x0”). Examples:
When encoding UNFORMATTED DATA (byte arrays, account addresses, hashes, bytecode arrays): encode as hex, prefix with “0x”, two hex digits per byte. Examples:
Aside from DATA
and QUANTITIES
, there are also normative JSON types, which we describe as STR
(strings) and INT
(integer numbers).
As documented in the options, available under openethereum --help
not all API’s are exposed by default. However you can simply enable them by running OpenEthereum with the flag:
--jsonrpc-apis APIS
Specify the APIs available through the JSONRPC interface. APIS is a comma-delimited list of API name. Possible name are all, safe, web3, eth, net, personal, parity, parity_set, traces, rpc, parity_accounts, signer. You can also disable a specific API by putting ‘-‘ in the front: all,-personal.
default: web3,eth,pubsub,net,parity,parity_pubsub,traces,rpc,secretstore.