# Interfaces
Interfaces for Erigon components, compatible with Silkworm and Akula. Currently it is a collection of `.proto` files describing gRPC interfaces between components, but later documentation about each interface, its components, as well as required version of gRPC will be added

<img src="turbo-geth-architecture.png">

See more info on the component and descriptions in [Components](./_docs/README.md)


# What's in this repo
- Protobuf definitions
- Wrappers:
  - Rust crate with autogenerated client and server based on [Tonic](https://github.com/hyperium/tonic)

NOTE: You are free to ignore provided wrappers and use the .proto files directly

# Suggested integration into other repositories

Using a go module is the most effective way to include these definitions in consuming repos.

``` 
go get github.com/ledgerwatch/interfaces
```

This makes local development easier as go.mod redirect can be used, and saves on submodule/tree updates (which were the previous method of consumption).

# Style guide 

[https://developers.google.com/protocol-buffers/docs/style](https://developers.google.com/protocol-buffers/docs/style)
