prysm-pulse/proto/eth/v1alpha1/archive.proto
Raul Jordan b8bdf71d5b
Allow for Fetching RPC Historical Assignments from Archived Data (#3559)
* archive participation begin implementation

* validator participation compute

* comments

* compute participation common func

* full test for archiving data

* gazelle

* complete tests

* gaz

* define archived validator assignment method

* archived assign logic

* need to use compute committee next

* compute archival assignments helper func

* properly compute committee using current shard

* modify the assignments request to take in a query filter item

* more intuitive implementation of list assignments

* utilize the query filter

* complete implementation

* revamp tests

* fixing current tests before adding archive tests

* test now passes using len filtered indices for total size

* include prop index in test

* revert bad change

* use ethapis

* add necessary tests

* comments
2019-09-23 16:04:59 -05:00

52 lines
1.8 KiB
Protocol Buffer

syntax = "proto3";
package ethereum.eth.v1alpha1;
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
import "proto/eth/v1alpha1/beacon_block.proto";
option go_package = "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1;eth";
// ArchivedActiveSetChanges represents the changes to the active validator registry
// between epoch N and N-1. In particular, it keeps track of validator indices
// which were newly activated, exited, or slashed, along with those particular
// block operations.
message ArchivedActiveSetChanges {
// Activated validator indices.
repeated uint64 activated = 1;
// Exited validator indices.
repeated uint64 exited = 2;
// Proposer indices slashed.
repeated uint64 slashed = 4;
// Voluntary exit objects corresponding 1-to-1 to the exited indices
// list in this same data structure.
repeated VoluntaryExit voluntary_exits = 6;
// Proposer slashing objects corresponding 1-to-1 to the slashed proposer indices
// list in this same data structure.
repeated ProposerSlashing proposer_slashings = 7;
// Attester slashing objects corresponding 1-to-1 to the slashed attester indices
// list in this same data structure.
repeated AttesterSlashing attester_slashings = 8;
}
// ArchivedCommitteeInfo representing the minimal data required to reconstruct
// validator committee assignments for an epoch N.
message ArchivedCommitteeInfo {
// Seed represents the random seed used in shuffling validators.
bytes seed = 1 [(gogoproto.moretags) = "ssz-size:\"32\""];
// Start shard for the shuffling at epoch N.
uint64 start_shard = 2;
// Committee count is the size the committees during epoch N.
uint64 committee_count = 3;
// Proposer index assigned to propose a beacon block during epoch N.
uint64 proposer_index = 4;
}