github.com/prysmaticlabs/prysm@v1.4.4/proto/beacon/db/powchain.proto (about)

     1  syntax = "proto3";
     2  
     3  package prysm.beacon.db;
     4  
     5  import "proto/eth/v1alpha1/beacon_block.proto";
     6  import "proto/beacon/p2p/v1/types.proto";
     7  
     8  option go_package = "github.com/prysmaticlabs/prysm/proto/beacon/db";
     9  
    10  // ETH1ChainData is a container which holds all the relevant eth1
    11  // information
    12  message ETH1ChainData {
    13      LatestETH1Data current_eth1_data = 1 ;
    14      ChainStartData chainstart_data = 2;
    15      ethereum.beacon.p2p.v1.BeaconState beacon_state = 3;
    16      SparseMerkleTrie trie = 4;
    17      repeated DepositContainer deposit_containers = 5;
    18  }
    19  
    20  // LatestETH1Data contains the current state of the eth1 chain.
    21  message LatestETH1Data {
    22      uint64 block_height = 2;
    23      uint64 block_time = 3;
    24      bytes block_hash = 4;
    25      uint64 last_requested_block = 5;
    26  }
    27  
    28  // ChainStartData contains all the information related to chainstart.
    29  message ChainStartData {
    30      bool chainstarted = 1;
    31      uint64 genesis_time = 2;
    32      uint64 genesis_block = 3;
    33      ethereum.eth.v1alpha1.Eth1Data eth1_data = 4;
    34      repeated ethereum.eth.v1alpha1.Deposit chainstart_deposits = 5;
    35  }
    36  
    37  // SparseMerkleTrie is used to describe the model of our deposit trie.
    38  message SparseMerkleTrie {
    39      uint64 depth = 1;
    40      repeated TrieLayer layers = 2;
    41      repeated bytes original_items = 3;
    42  }
    43  
    44  // TrieLayer is used to represent each layer in the deposit tree due to
    45  // the lack of protobuf support for multi-dimensional arrays.(Ex: 3d,4d,...)
    46  message TrieLayer {
    47      repeated bytes layer = 1;
    48  }
    49  
    50  // DepositContainer defines a container that can be used to store
    51  // deposit related information for a particular deposit.
    52  message DepositContainer {
    53      int64 index = 1;
    54      uint64 eth1_block_height = 2;
    55      ethereum.eth.v1alpha1.Deposit deposit = 3;
    56      bytes deposit_root = 4;
    57  }