Querying blockchain state.
A query is a request for information made by end-users of applications through an interface and processed by a full-node. Users can query information about the network, the blockchain itself, and blockchain state directly from the blockchain's stores or modules. Queries differ from transactions in that they do not require consensus to be processed and therefore do not change state. Queries can be fully handled by a single full-node.
There are multiple interfaces to submit transactions to the blockchain.
The main interface for an application is the command-line interface. Users connect to a full-node and run the CLI directly from their machines - the CLI interacts directly with the full-node.
Users and applications can submit queries using gRPC requests to a gRPC server. The
provenanceddaemon process is bundled with gRPC endpoints by default. The endpoints are defined as Protocol Buffers service methods inside
.protofiles, written in Protobuf's own language-agnostic interface definition language (IDL). The Protobuf ecosystem developed tools for code-generation from
*.protofiles into various languages. These tools allow to build gRPC clients easily.