## BDLedger gRPC API ### Generating gRPC code in languages #### Installling tools Download the [Protocol Buffers compiler](https://github.com/protocolbuffers/protobuf/releases) (protoc-3.11.4-*) for your platform and add `protoc` to `PATH` environment variable For generating Go code: ```bash GIT_TAG="v1.4.0-rc.4" go get -d -u github.com/golang/protobuf/protoc-gen-go git -C "$(go env GOPATH)"/src/github.com/golang/protobuf checkout $GIT_TAG go install github.com/golang/protobuf/protoc-gen-go ``` (Update to google.golang.org/protobuf when https://github.com/grpc/grpc-go/pull/3435 resolves) For generating Java code: From `bdledger-sdk-java` run `gradle generateProto` For generating Node.js code: ```bash npm install -g grpc-tools ``` For generating TypeScript definitions, also run: ```bash npm install -g protoc-gen-ts ``` For frontend JavaScript: ```bash git clone https://github.com/grpc/grpc-web cd grpc-web sudo make install-plugin ``` References: - [Go Quick Start](https://grpc.io/docs/quickstart/go.html#prerequisites) - [gRPC Go FAQ](https://github.com/grpc/grpc-go#faq) **TODO: Look into [protobuf.js](https://github.com/protobufjs/protobuf.js) for Nodes.js and frontend** **TODO: Look into [Kroto+](https://github.com/marcoferrer/kroto-plus) for Kotlin** #### Generating code Run ```bash ./scripts/gen [go] [nodejs] [ts] ```