prysm-pulse/proto/eth/v1alpha1/attestation.proto
terence tsao 1b5b8a57e0 Remove unused proto schemas (#3005)
* Update io_kubernetes_build commit hash to 1246899

* Update dependency build_bazel_rules_nodejs to v0.33.1

* Update dependency com_github_hashicorp_golang_lru to v0.5.1

* Update libp2p

* Update io_bazel_rules_k8s commit hash to e68d5d7

* Starting to remove old protos

* Bazel build proto passes

* Fixing pb version

* Cleaned up core package

* Fixing tests

* 6 tests failing

* Update proto bugs

* Fixed incorrect validator ordering proto

* Sync with master

* Update go-ssz commit

* Removed bad copies from v1alpha1 folder

* add json spec json to pb handler

* add nested proto example

* proto/testing test works

* fix refactoring build failures

* use merged ssz

* push latest changes

* used forked json encoding

* used forked json encoding

* fix warning

* fix build issues

* fix test and lint

* fix build

* lint
2019-07-22 10:03:57 -04:00

73 lines
2.6 KiB
Protocol Buffer

syntax = "proto3";
package ethereum.eth.v1alpha1;
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
option go_package = "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1;eth";
message Attestation {
// A bitfield representation of validator indices that have voted exactly
// the same vote and have been aggregated into this attestation.
// Spec type: Bitlist[N]
bytes aggregation_bits = 1 [(gogoproto.moretags) = "ssz-max:\"4096\"", (gogoproto.casttype) = "github.com/prysmaticlabs/go-bitfield.Bitlist"];
AttestationData data = 2;
// Not used in phase 0.
bytes custody_bits = 3 [(gogoproto.moretags) = "ssz-max:\"4096\"", (gogoproto.casttype) = "github.com/prysmaticlabs/go-bitfield.Bitlist"];
// 96 byte BLS aggregate signature.
bytes signature = 4 [(gogoproto.moretags) = "ssz-size:\"96\""];
}
message AttestationData {
// Attestation data includes information on Casper the Friendly Finality Gadget's votes
// See: https://arxiv.org/pdf/1710.09437.pdf
// 32 byte root of the LMD GHOST block vote.
bytes beacon_block_root = 1 [(gogoproto.moretags) = "ssz-size:\"32\""];
// Source contains information relating to the recent justified epoch
// as well as the 32 byte root of the epoch boundary block at the
// source epoch.
Checkpoint source = 2;
// Target contains information relating to the epoch the attestation
// is targeting as well as the 32 byte root of the epoch boundary
// block at the source epoch.
Checkpoint target = 3;
// Crosslink voted by this attestation.
Crosslink crosslink = 4;
}
message Checkpoint {
// A checkpoint is every epoch's first slot. The goal of Casper FFG
// is to link the check points together for justification and finalization.
// epoch of the check point reference to.
uint64 epoch = 1;
// block root of the check point reference to.
bytes root = 2 [(gogoproto.moretags) = "ssz-size:\"32\""];
}
message Crosslink {
// The shard that crosslinks to the beacon chain.
uint64 shard = 1;
// 32 byte root of the parent crosslink.
bytes parent_root = 2 [(gogoproto.moretags) = "ssz-size:\"32\""];
// Start epoch must match the parent crosslink's end epoch.
uint64 start_epoch = 3;
// Ending epoch for this crosslink period. This field matches the attestation
// target epoch or the start epoch + MAX_EPOCHS_PER_CROSSLINK, whichever is
// less.
uint64 end_epoch = 4;
// 32 byte root of the crosslinked shard data since the previous crosslink.
bytes data_root = 5 [(gogoproto.moretags) = "ssz-size:\"32\""];
}