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 described in the gRPC: services for smart contracts section. When used in smart contracts, these methods require authorization.

Preconfiguring the gRPC interface

Before using the gRPC interface:

  1. decide on the programming language you will use to interact with the node;

  2. install the gRPC framework for your programming language according to the official gRPC documentation;

  3. 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;

  4. 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:

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 above.

The node gRPC methods authorization is configured in the auth section of the:ref:` <additional-auth> node configuration file.

See also