ForgeAbi

Forge Abi contains forge related protocol buffer definitions and Goldorin GraphQL definitions.

How to build

To build Elixir protobuf, we need to use a library to parse data from .proto and generate .ex files. We are using Elixir's protobuf. Please follow the readme to learn how to build.

Please also download protoc-gen-goldorin in https://github.com/ArcBlock/protobuf-elixir/releases/tag/v0.6.2, make rebuild-proto requires it to build yaml for web.

Protobuf

The protobuf contains the protocol buffer definitions for forge.

  • enum.proto - enum type
  • rpc.proto - rpc related message type
  • service.proto - gRPC related service
  • state.proto - forge related state
  • trace_type.proto - indexed db related type
  • tx.proto - tx related type
  • type.proto - all basic type

The protobuf/gen folder contains the generated Elixir code for protobuf definitions.

Goldorin

Goldorin is an ArcBlock internal tool to generate GQL schema from yaml file. We are using .proto files to generate .yml files, then use Goldorin to generate GQL schema .ex files.

The yml files are in priv/schema

What is Vendors proto?

We use few 3rd party projects in forge. Some of them has their own protobuf definitions. We put the ones we used in a single proto file in vendors/vendor.proto.