Installation and usage of the platform
gRPC tools¶
The Waves Enterprise blockchain platform provides the ability to interact with the blockchain using a gRPC interface.
gRPC is a high-performance Remote Procedure Call (RPC) framework developed by Google Corporation. The framework works via the HTTP/2. The protobuf serialization format is used to transfer data between the client and the server. The format describes the data types used.
Officially, gRPC supports 10 programming languages. A list of supported languages is available in the official gRPC documentation.
Some services are available in two versions: for external integration (public services) and for smart contracts (contract services). Use public services for WE integration. Contract services are not intended to be called by an external user, they have a different authorization and behavior. The contract services are packaged in protobuf files placed in the contract directory and are described in the gRPC services used by Docker smart contracts section. When used in smart contracts, these methods require authorization.
Preconfiguring the gRPC interface¶
Before using the gRPC interface:
decide on the programming language you will use to interact with the node;
install the gRPC framework for your programming language according to the official gRPC documentation;
download and unpack the protobuf package we-proto-x.x.x.zip for the platform version you are using and the protoc plugin to compile the protobuf files;
make sure that the gRPC interface is started and configured in the configuration file of the node, with which data will be exchanged.
To communicate with the node via the gRPC interface, the default port is 6865.
What the gRPC interface is for¶
You can use the gRPC interface of each node for the following tasks:
- gRPC: monitoring of blockchain events
- gRPC: obtaining node information
- gRPC: obtaining information on a smart contract
- gRPC: obtaining information on the results of the execution of a smart contract call
- gRPC: obtaining information about UTX pool size
- gRPC: retrieving certificates
- gRPC: handling transactions
- gRPC: handling confidential data
- gRPC: transfer of confidential smart contract data
- gRPC: retrieving auxiliary information
- gRPC: information about network participants
Each of these tasks has its own set of methods packed in the corresponding protobuf files. You can find a detailed description of each set of methods in the articles referenced above.
The node gRPC methods authorization is configured in the auth
section of the node configuration file.