mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-03 08:37:37 +00:00
d55757500f
* Initial spec rewrite * Finish adding merkle tree implementation * Last bits * Move reverse function * Add comments * Add deposit tree snapshot * Add deposit tree * Add comments + cleanup * Fixes * Add missing errors * Small fixes * Add unhandled error * Cleanup * Fix unsafe file.Close * Add missing comments * Small fixes * Address some of deepSource' compaints * Add depositCount check * Add finalizedDeposit check * Replace pointer magic with copy() * Add test for slice reversal * add back bytes method * Add package level description * Remove zerohash gen and add additional checks * Add additional comments * Small lint fixes * Forgot an error * Small fixes * Move Uint64ToBytesLittleEndian32 + test * Fix uint subtraction issue * Move mixInLength below error handling * Fix * Fix deposit root * integrate 4881 * edits * added in deposit tree fetcher * add file * Add remaining fetcher functions * Add new file for inserter functions * Fixes and additional funcs * Cleanup * Add * Graph * pushed up edits * fix up * Updates * Add EIP4881 toggle flag * Add interfaces * Fix tests * More changes * Fix * Remove generated graph * Fix spacing * Changes * Fixes * Changes * Test Fix * gaz * Fix a couple tests * Fix last tests * define protos * proto methods * pushed * regen * Add proto funcs * builds * pushin up * Fix and cleanup * Fix spectest * General cleanup * add 4881 to e2e * Remove debug statements + remove test skip * Implement first set of missing methods * Replace Zerohashes + cleanup * gazelle * fmt * Put back defensive check * Add error logs * InsertFinalizedDeposits: return an error * Remove logging * Radek' Review * Lint fixes * build * Remove cancel * Update beacon-chain/deterministic-genesis/service.go Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Update beacon-chain/cache/depositsnapshot/deposit_inserter.go Co-authored-by: Raul Jordan <raul@prysmaticlabs.com> * Cleanup * Fix panic when DepositSnapshot is nil on init * Gofmt * Fix RootEquivalence test * Gofmt * Add missing comments * Nishant' review * Add Insert benchmarks * fix up copy method * Fix deep copy * Fix conflicts * Return error * Fix linter issues * add in migration logic * Cleanup + tests * fix * Fix incorrect index in test * Fix linter * Gofmt * fix it * fixes for off by 1 * gaz * fix cast * fix it * remove ErrZeroIndex * Fix merkle_tree_test * add fallback * add fix for insertion bug * add many fixes * fix empty snapshot * clean up * use feature * remove check * fix failing tests * skip it * fix test * fix test again * fix for the last time * Apply suggestions from code review Co-authored-by: Radosław Kapka <rkapka@wp.pl> * fix it * remove cancel * fix for voting * addressing more comments * fix err * potuz's review * one more test * fix bad test * make 4881 part of dev mode * add workaround for new trie * comment * preston's review * james's review * add comment * james review * preston's review * remove skipped test * gaz --------- Co-authored-by: rauljordan <raul@prysmaticlabs.com> Co-authored-by: nisdas <nishdas93@gmail.com> Co-authored-by: Radosław Kapka <rkapka@wp.pl> Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
72 lines
2.1 KiB
Protocol Buffer
72 lines
2.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package ethereum.eth.v1alpha1;
|
|
|
|
import "proto/prysm/v1alpha1/beacon_block.proto";
|
|
import "proto/prysm/v1alpha1/beacon_state.proto";
|
|
|
|
option csharp_namespace = "Ethereum.Eth.V1alpha1";
|
|
option go_package = "github.com/prysmaticlabs/prysm/v4/proto/prysm/v1alpha1;eth";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "PowchainProto";
|
|
option java_package = "org.ethereum.eth.v1alpha1";
|
|
option php_namespace = "Ethereum\\Eth\\v1alpha1";
|
|
|
|
// ETH1ChainData is a container which holds all the relevant eth1
|
|
// information
|
|
message ETH1ChainData {
|
|
LatestETH1Data current_eth1_data = 1 ;
|
|
ChainStartData chainstart_data = 2;
|
|
BeaconState beacon_state = 3;
|
|
SparseMerkleTrie trie = 4;
|
|
repeated DepositContainer deposit_containers = 5;
|
|
DepositSnapshot deposit_snapshot = 6;
|
|
}
|
|
|
|
// DepositSnapshot represents an EIP-4881 deposit snapshot
|
|
message DepositSnapshot {
|
|
repeated bytes finalized = 1;
|
|
bytes deposit_root = 2;
|
|
uint64 deposit_count = 3;
|
|
bytes execution_hash = 4;
|
|
uint64 execution_depth = 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;
|
|
Eth1Data eth1_data = 4;
|
|
repeated 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;
|
|
Deposit deposit = 3;
|
|
bytes deposit_root = 4;
|
|
}
|