prysm-pulse/proto/beacon/db/powchain.proto
Raul Jordan 5aac06f04e
Move EthereumAPIs Into Prysm (#8968)
* begin move

* use same import path

* imports

* regen protos

* regen

* no rename

* generate ssz

* gaz

* fmt

* edit build file

* imports

* modify

* remove generated files

* remove protos

* edit imports in prysm

* beacon chain all builds

* edit script

* add generated pbs

* add replace rules

* license for ethereumapis protos

* change visibility

* fmt

* update build files to gaz ignore

* use proper form

* edit imports

* wrap block

* revert scripts

* revert go mod
2021-06-02 18:49:52 -05:00

58 lines
1.7 KiB
Protocol Buffer

syntax = "proto3";
package prysm.beacon.db;
import "proto/eth/v1alpha1/beacon_block.proto";
import "proto/beacon/p2p/v1/types.proto";
option go_package = "github.com/prysmaticlabs/prysm/proto/beacon/db";
// ETH1ChainData is a container which holds all the relevant eth1
// information
message ETH1ChainData {
LatestETH1Data current_eth1_data = 1 ;
ChainStartData chainstart_data = 2;
ethereum.beacon.p2p.v1.BeaconState beacon_state = 3;
SparseMerkleTrie trie = 4;
repeated DepositContainer deposit_containers = 5;
}
// LatestETH1Data contains the current state of the eth1 chain.
message LatestETH1Data {
uint64 block_height = 2;
uint64 block_time = 3;
bytes block_hash = 4;
uint64 last_requested_block = 5;
}
// ChainStartData contains all the information related to chainstart.
message ChainStartData {
bool chainstarted = 1;
uint64 genesis_time = 2;
uint64 genesis_block = 3;
ethereum.eth.v1alpha1.Eth1Data eth1_data = 4;
repeated ethereum.eth.v1alpha1.Deposit chainstart_deposits = 5;
}
// SparseMerkleTrie is used to describe the model of our deposit trie.
message SparseMerkleTrie {
uint64 depth = 1;
repeated TrieLayer layers = 2;
repeated bytes original_items = 3;
}
// TrieLayer is used to represent each layer in the deposit tree due to
// the lack of protobuf support for multi-dimensional arrays.(Ex: 3d,4d,...)
message TrieLayer {
repeated bytes layer = 1;
}
// DepositContainer defines a container that can be used to store
// deposit related information for a particular deposit.
message DepositContainer {
int64 index = 1;
uint64 eth1_block_height = 2;
ethereum.eth.v1alpha1.Deposit deposit = 3;
bytes deposit_root = 4;
}