gRPC Server Extension


#1

gRPC Server extension allows to access a Waves Node with gRPC instead of classic REST API, using the lang-agnostic protobuf schemes, reworked interfaces and gRPC built-in first-class streaming support.

How to install (using systemd TESTNET installation)

  1. Download the grpc-server-0.17.2-1-g86152e8.tgz file
  2. Extract it
  3. Copy all files from the extracted grpc-server-0.17.2-1-g86152e8 directory into the /usr/share/waves-testnet
  4. Add line to the /usr/share/waves-testnet/conf/local.conf file: waves.extensions += com.wavesplatform.api.grpc.GRPCServerExtension
  5. Restart the waves-testnet service

Currently implemented services

  • Accounts
  • Assets
  • Blockchain Features
  • Blocks
  • Transactions
  • … (may be extended in the future)

Example usage


pinned #2

#3
  • gRPC is good, can you provide some real world numbers before/after?
  • What is the reason for a regular user/application to start using gRPC now?
  • Do you plan to shutdown REST API some day, is it depracated already?

#4

Currently gRPC provides a reduced overhead in comparison to the JSON, automatic code generation for most of the languages, and a streaming response capability (instead of forming a ‘good old’ 999Gb json array).
At the moment we dont have a comprehensive benchmarks, and the current REST API will be here for a while anyway, so it isnt a complete replacement in place yet, and we are only in process of forming a detailed roadmap for that. But keep in mind that we decided to not introduce a new features and significant changes in the current API without a critical need, so its in some means deprecated, i guess.