From a1b80a9b15f42cd14e5060cc6575506d969d6ca8 Mon Sep 17 00:00:00 2001 From: Terence Tsao Date: Sun, 25 Aug 2019 14:54:35 -0700 Subject: [PATCH] Added proto schema definitions for light client --- proto/light/p2p/types.proto | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 proto/light/p2p/types.proto diff --git a/proto/light/p2p/types.proto b/proto/light/p2p/types.proto new file mode 100644 index 0000000..953b900 --- /dev/null +++ b/proto/light/p2p/types.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +message BeaconBlockHeader { + uint64 slot = 1; + bytes parent_root = 2 [(gogoproto.moretags) = "ssz-size:\"32\""]; + bytes state_root = 3 [(gogoproto.moretags) = "ssz-size:\"32\""]; + bytes body_root = 4 [(gogoproto.moretags) = "ssz-size:\"32\""]; + bytes signature = 5 [(gogoproto.moretags) = "ssz-size:\"96\""]; +} + +message CompactCommittee { + repeated bytes public_keys = 1 [(gogoproto.moretags) = "ssz-size:\"48,4096\""]; + repeated uint64 compact_validators = 2 [(gogoproto.moretags) = "ssz-size:\"4096\""]; +} + +message LightClientUpdate { + // Shard block root for authenticating signature data + bytes shard_block_root = 1 [(gogoproto.moretags) = "ssz-size:\"32\""]; + bytes fork_version = 2 [(gogoproto.moretags) = "ssz-size:\"4\""]; + bytes aggregation_bits = 3 [(gogoproto.moretags) = "ssz-max:\"4096\"", (gogoproto.casttype) = "github.com/prysmaticlabs/go-bitfield.Bitlist"]; + bytes signature = 4 [(gogoproto.moretags) = "ssz-size:\"96\""]; + // Updated beacon header for authenticating branch + BeaconBlockHeader header = 5; + repeated bytes header_branch = 6 [(gogoproto.moretags) = "ssz-size:\"4\""]; + // Updated persistent committee for authenticating branch + CompactCommittee committee = 7; + repeated bytes committee_branch = 8 [(gogoproto.moretags) = "ssz-size:\"16\""]; + +} + +message LightClientStore { + uint64 shard = 1; + BeaconBlockHeader header = 2; + // Persistent committees corresponding to the last processed beacon block header + CompactCommittee previous_committee = 3; + CompactCommittee current_committee = 4; + CompactCommittee next_committee = 5; +}