Aligning With Latest 2.1 Spec (#513)

This commit is contained in:
terence tsao
2018-09-13 17:36:57 -07:00
committed by GitHub
parent 593c1ec9fc
commit 9639161fcc
6 changed files with 163 additions and 236 deletions

View File

@@ -288,22 +288,12 @@ func (c *ChainService) blockProcessing(done <-chan struct{}) {
// Entering cycle transitions.
if cState.IsCycleTransition(block.SlotNumber()) {
log.Info("Entering cycle transition")
cState, err = cState.NewStateRecalculations(aState, block.SlotNumber())
cState, err = cState.NewStateRecalculations(aState, block)
}
if err != nil {
log.Errorf("Failed to calculate the new crystallized state: %v", err)
continue
}
// Entering Dynasty transitions.
if cState.IsDynastyTransition(block.SlotNumber()) {
log.Info("Entering dynasty transition")
cState, err = cState.NewDynastyRecalculations(block.ParentHash())
}
if err != nil {
log.Errorf("Failed to calculate the new dynasty: %v", err)
continue
}
parentBlock, err := c.chain.getBlock(block.ParentHash())
if err != nil {

View File

@@ -228,6 +228,7 @@ func (b *Block) isAttestationValid(attestationIndex int, aState *ActiveState, cS
msg = append(msg, signedHashesStr...)
binary.PutUvarint(msg, attestation.ShardId)
msg = append(msg, attestation.ShardBlockHash...)
binary.PutUvarint(msg, attestation.JustifiedSlot)
msgHash := blake2b.Sum512(msg)

View File

@@ -81,7 +81,6 @@ func NewGenesisCrystallizedState() (*CrystallizedState, error) {
LastJustifiedSlot: 0,
LastFinalizedSlot: 0,
CurrentDynasty: 1,
CrosslinkingStartShard: 0,
TotalDeposits: totalDeposit,
DynastySeed: []byte{},
DynastyStart: 0,
@@ -125,11 +124,6 @@ func (c *CrystallizedState) JustifiedStreak() uint64 {
return c.data.JustifiedStreak
}
// CrosslinkingStartShard returns next shard that crosslinking assignment will start from.
func (c *CrystallizedState) CrosslinkingStartShard() uint64 {
return c.data.CrosslinkingStartShard
}
// LastJustifiedSlot return the last justified slot of the beacon chain.
func (c *CrystallizedState) LastJustifiedSlot() uint64 {
return c.data.LastJustifiedSlot
@@ -183,9 +177,9 @@ func (c *CrystallizedState) IsCycleTransition(slotNumber uint64) bool {
return slotNumber >= c.LastStateRecalc()+params.CycleLength
}
// IsDynastyTransition checks if a dynasty transition can be processed. At that point,
// isDynastyTransition checks if a dynasty transition can be processed. At that point,
// validator shuffle will occur.
func (c *CrystallizedState) IsDynastyTransition(slotNumber uint64) bool {
func (c *CrystallizedState) isDynastyTransition(slotNumber uint64) bool {
if c.LastFinalizedSlot() <= c.DynastyStart() {
return false
}
@@ -227,13 +221,17 @@ func (c *CrystallizedState) getAttesterIndices(attestation *pb.AttestationRecord
// NewStateRecalculations computes the new crystallized state, given the previous crystallized state
// and the current active state. This method is called during a cycle transition.
func (c *CrystallizedState) NewStateRecalculations(aState *ActiveState, slotNumber uint64) (*CrystallizedState, error) {
// We also check for dynasty transition and compute for a new dynasty if necessary during this transition.
func (c *CrystallizedState) NewStateRecalculations(aState *ActiveState, block *Block) (*CrystallizedState, error) {
var blockVoteBalance uint64
justifiedStreak := c.JustifiedStreak()
justifiedSlot := c.LastJustifiedSlot()
finalizedSlot := c.LastFinalizedSlot()
lastStateRecalc := c.LastStateRecalc()
currentDynasty := c.CurrentDynasty()
dynastyStart := c.DynastyStart()
blockVoteCache := aState.GetBlockVoteCache()
ShardAndCommitteesForSlots := c.ShardAndCommitteesForSlots()
// walk through all the slots from LastStateRecalc - cycleLength to LastStateRecalc - 1.
recentBlockHashes := aState.RecentBlockHashes()
@@ -259,7 +257,7 @@ func (c *CrystallizedState) NewStateRecalculations(aState *ActiveState, slotNumb
}
}
newCrossLinkRecords, err := c.processCrosslinks(aState.PendingAttestations(), slotNumber)
newCrossLinkRecords, err := c.processCrosslinks(aState.PendingAttestations(), lastStateRecalc+params.CycleLength)
if err != nil {
return nil, err
}
@@ -278,13 +276,21 @@ func (c *CrystallizedState) NewStateRecalculations(aState *ActiveState, slotNumb
nextCycleBalance += c.Validators()[index].Balance
}
// Construct new crystallized state for cycle transition.
c.data.LastFinalizedSlot = finalizedSlot
// Entering new dynasty transition.
if c.isDynastyTransition(block.SlotNumber()) {
log.Info("Entering dynasty transition")
dynastyStart = lastStateRecalc
currentDynasty, ShardAndCommitteesForSlots, err = c.newDynastyRecalculations(block.ParentHash())
if err != nil {
return nil, err
}
}
// Construct new crystallized state after cycle and dynasty transition.
newCrystallizedState := NewCrystallizedState(&pb.CrystallizedState{
ShardAndCommitteesForSlots: c.data.ShardAndCommitteesForSlots,
CrosslinkingStartShard: c.data.CrosslinkingStartShard,
DynastyStart: c.data.DynastyStart,
CurrentDynasty: c.data.CurrentDynasty,
DynastySeed: c.data.DynastySeed,
ShardAndCommitteesForSlots: ShardAndCommitteesForSlots,
Validators: rewardedValidators,
LastStateRecalc: lastStateRecalc + params.CycleLength,
LastJustifiedSlot: justifiedSlot,
@@ -292,45 +298,32 @@ func (c *CrystallizedState) NewStateRecalculations(aState *ActiveState, slotNumb
LastFinalizedSlot: finalizedSlot,
CrosslinkRecords: newCrossLinkRecords,
TotalDeposits: nextCycleBalance,
DynastyStart: dynastyStart,
CurrentDynasty: currentDynasty,
})
return newCrystallizedState, nil
}
// NewDynastyRecalculations recomputes the validator set. This method is called during a dynasty transition.
func (c *CrystallizedState) NewDynastyRecalculations(seed [32]byte) (*CrystallizedState, error) {
// newDynastyRecalculations recomputes the validator set. This method is called during a dynasty transition.
func (c *CrystallizedState) newDynastyRecalculations(seed [32]byte) (uint64, []*pb.ShardAndCommitteeArray, error) {
lastSlot := len(c.data.ShardAndCommitteesForSlots) - 1
lastCommitteeFromLastSlot := len(c.ShardAndCommitteesForSlots()[lastSlot].ArrayShardAndCommittee) - 1
crosslinkLastShard := c.ShardAndCommitteesForSlots()[lastSlot].ArrayShardAndCommittee[lastCommitteeFromLastSlot].ShardId
crosslinkNextShard := (crosslinkLastShard + 1) % uint64(shardCount)
dynasty := c.CurrentDynasty() + 1
nextDynasty := c.CurrentDynasty() + 1
newShardCommitteeArray, err := casper.ShuffleValidatorsToCommittees(
seed,
c.data.Validators,
dynasty,
nextDynasty,
crosslinkNextShard,
)
if err != nil {
return nil, err
return 0, nil, err
}
// Construct new crystallized state for dynasty transition.
newCrystallizedState := NewCrystallizedState(&pb.CrystallizedState{
Validators: c.data.Validators,
LastStateRecalc: c.data.LastStateRecalc,
LastJustifiedSlot: c.data.LastJustifiedSlot,
JustifiedStreak: c.data.JustifiedStreak,
LastFinalizedSlot: c.data.LastFinalizedSlot,
TotalDeposits: c.data.TotalDeposits,
CrosslinkRecords: c.data.CrosslinkRecords,
DynastyStart: c.data.LastStateRecalc,
CrosslinkingStartShard: crosslinkNextShard,
DynastySeed: seed[:],
CurrentDynasty: dynasty,
ShardAndCommitteesForSlots: append(c.data.ShardAndCommitteesForSlots[:params.CycleLength], newShardCommitteeArray...),
})
return newCrystallizedState, nil
return nextDynasty, append(c.data.ShardAndCommitteesForSlots[:params.CycleLength], newShardCommitteeArray...), nil
}
type shardAttestation struct {

View File

@@ -36,8 +36,9 @@ func TestInitialDeriveCrystallizedState(t *testing.T) {
}
aState := NewGenesisActiveState()
block := NewBlock(nil)
newCState, err := cState.NewStateRecalculations(aState, 0)
newCState, err := cState.NewStateRecalculations(aState, block)
if err != nil {
t.Fatalf("failed to derive new crystallized state: %v", err)
}
@@ -66,7 +67,9 @@ func TestNextDeriveCrystallizedSlot(t *testing.T) {
}
aState := NewGenesisActiveState()
cState, err = cState.NewStateRecalculations(aState, 0)
block := NewBlock(nil)
cState, err = cState.NewStateRecalculations(aState, block)
if err != nil {
t.Fatalf("failed to derive next crystallized state: %v", err)
}
@@ -88,7 +91,7 @@ func TestNextDeriveCrystallizedSlot(t *testing.T) {
RecentBlockHashes: recentBlockHashes,
}, voteCache)
cState, err = cState.NewStateRecalculations(aState, 0)
cState, err = cState.NewStateRecalculations(aState, block)
if err != nil {
t.Fatalf("failed to derive crystallized state: %v", err)
}
@@ -105,7 +108,7 @@ func TestNextDeriveCrystallizedSlot(t *testing.T) {
t.Fatalf("expected finalized slot to equal %d: got %d", 0, cState.LastFinalizedSlot())
}
cState, err = cState.NewStateRecalculations(aState, 0)
cState, err = cState.NewStateRecalculations(aState, block)
if err != nil {
t.Fatalf("failed to derive crystallized state: %v", err)
}
@@ -184,11 +187,11 @@ func TestIsDynastyTransition(t *testing.T) {
t.Fatalf("Failed to initialize crystallized state: %v", err)
}
cState.data.DynastyStart = 1
if cState.IsDynastyTransition(0) {
if cState.isDynastyTransition(0) {
t.Errorf("Is Dynasty transtion should be false, dynasty start greater than finalized slot")
}
cState.data.LastFinalizedSlot = 2
if cState.IsDynastyTransition(1) {
if cState.isDynastyTransition(1) {
t.Errorf("Is Dynasty transtion should be false, MinDynastyLength has not reached")
}
shardCommitteeForSlots := []*pb.ShardAndCommitteeArray{{
@@ -208,7 +211,7 @@ func TestIsDynastyTransition(t *testing.T) {
}
cState.data.CrosslinkRecords = crosslinkRecords
if cState.IsDynastyTransition(params.MinDynastyLength + 1) {
if cState.isDynastyTransition(params.MinDynastyLength + 1) {
t.Errorf("Is Dynasty transtion should be false, crosslink records dynasty is higher than current slot")
}
@@ -219,7 +222,7 @@ func TestIsDynastyTransition(t *testing.T) {
}
cState.data.CrosslinkRecords = crosslinkRecords
if !cState.IsDynastyTransition(params.MinDynastyLength + 1) {
if !cState.isDynastyTransition(params.MinDynastyLength + 1) {
t.Errorf("Dynasty transition failed should have been true")
}
}
@@ -236,7 +239,7 @@ func TestNewDynastyRecalculationsInvalid(t *testing.T) {
validators = append(validators, &pb.ValidatorRecord{StartDynasty: 0, EndDynasty: params.DefaultEndDynasty})
}
cState.data.Validators = validators
if _, err := cState.NewDynastyRecalculations([32]byte{'A'}); err == nil {
if _, _, err := cState.newDynastyRecalculations([32]byte{'A'}); err == nil {
t.Errorf("Dynasty calculation should have failed with invalid validator count")
}
}
@@ -263,62 +266,12 @@ func TestNewDynastyRecalculations(t *testing.T) {
cState.data.LastStateRecalc = 65
shardCount = 10
newCState, err := cState.NewDynastyRecalculations([32]byte{'A'})
currentDynasty, _, err := cState.newDynastyRecalculations([32]byte{'A'})
if err != nil {
t.Fatalf("Dynasty calculation failed %v", err)
}
if newCState.CurrentDynasty() != 2 {
t.Errorf("Incorrect dynasty number, wanted 2, got: %d", newCState.CurrentDynasty())
}
if newCState.DynastyStart() != 65 {
t.Errorf("Incorrect dynasty start slot number, wanted 65, got: %d", newCState.DynastyStart())
}
if newCState.CrosslinkingStartShard() != 0 {
t.Errorf("Incorrect dynasty crosslink start shard number, wanted 0, got: %d", newCState.CrosslinkingStartShard())
}
if newCState.DynastySeed() != [32]byte{'A'} {
t.Errorf("Incorrect dynasty seed, wanted A, got: %v", newCState.DynastySeed())
}
}
func TestNewDynastyRecalculationsTable(t *testing.T) {
cState, err := NewGenesisCrystallizedState()
if err != nil {
t.Fatalf("Failed to initialize crystallized state: %v", err)
}
shardCount = params.ShardCount
var crossLinkNextShardTests = []struct {
in uint64
out uint64
}{
{0, 1},
{1, 2},
{2, 3},
{3, 4},
{4, 5},
{5, 6},
{6, 7},
{7, 8},
{8, 9},
{9, 10},
{params.ShardCount - 1, 0},
}
for _, shardID := range crossLinkNextShardTests {
var shardCommitteesForSlot []*pb.ShardAndCommitteeArray
for i := 0; i < params.CycleLength; i++ {
shardCommitteesForSlot = append(shardCommitteesForSlot, &pb.ShardAndCommitteeArray{ArrayShardAndCommittee: []*pb.ShardAndCommittee{{ShardId: shardID.in}}})
}
cState.data.ShardAndCommitteesForSlots = shardCommitteesForSlot
newCState, err := cState.NewDynastyRecalculations([32]byte{'A'})
if err != nil {
t.Fatalf("Dynasty calculation failed %v", err)
}
if newCState.CrosslinkingStartShard() != shardID.out {
t.Errorf("Crosslink next shard do not match. Wanted: %d, Got: %d", shardID.out, newCState.CrosslinkingStartShard())
}
if currentDynasty != 2 {
t.Errorf("Incorrect dynasty number, wanted 2, got: %d", currentDynasty)
}
}

View File

@@ -66,7 +66,7 @@ func (x Topic) String() string {
return proto.EnumName(Topic_name, int32(x))
}
func (Topic) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{0}
return fileDescriptor_messages_e19f4492e67c7db5, []int{0}
}
type BeaconBlockHashAnnounce struct {
@@ -80,7 +80,7 @@ func (m *BeaconBlockHashAnnounce) Reset() { *m = BeaconBlockHashAnnounce
func (m *BeaconBlockHashAnnounce) String() string { return proto.CompactTextString(m) }
func (*BeaconBlockHashAnnounce) ProtoMessage() {}
func (*BeaconBlockHashAnnounce) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{0}
return fileDescriptor_messages_e19f4492e67c7db5, []int{0}
}
func (m *BeaconBlockHashAnnounce) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BeaconBlockHashAnnounce.Unmarshal(m, b)
@@ -118,7 +118,7 @@ func (m *BeaconBlockRequest) Reset() { *m = BeaconBlockRequest{} }
func (m *BeaconBlockRequest) String() string { return proto.CompactTextString(m) }
func (*BeaconBlockRequest) ProtoMessage() {}
func (*BeaconBlockRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{1}
return fileDescriptor_messages_e19f4492e67c7db5, []int{1}
}
func (m *BeaconBlockRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BeaconBlockRequest.Unmarshal(m, b)
@@ -156,7 +156,7 @@ func (m *BeaconBlockRequestBySlotNumber) Reset() { *m = BeaconBlockReque
func (m *BeaconBlockRequestBySlotNumber) String() string { return proto.CompactTextString(m) }
func (*BeaconBlockRequestBySlotNumber) ProtoMessage() {}
func (*BeaconBlockRequestBySlotNumber) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{2}
return fileDescriptor_messages_e19f4492e67c7db5, []int{2}
}
func (m *BeaconBlockRequestBySlotNumber) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BeaconBlockRequestBySlotNumber.Unmarshal(m, b)
@@ -194,7 +194,7 @@ func (m *BeaconBlockResponse) Reset() { *m = BeaconBlockResponse{} }
func (m *BeaconBlockResponse) String() string { return proto.CompactTextString(m) }
func (*BeaconBlockResponse) ProtoMessage() {}
func (*BeaconBlockResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{3}
return fileDescriptor_messages_e19f4492e67c7db5, []int{3}
}
func (m *BeaconBlockResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BeaconBlockResponse.Unmarshal(m, b)
@@ -239,7 +239,7 @@ func (m *BeaconBlock) Reset() { *m = BeaconBlock{} }
func (m *BeaconBlock) String() string { return proto.CompactTextString(m) }
func (*BeaconBlock) ProtoMessage() {}
func (*BeaconBlock) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{4}
return fileDescriptor_messages_e19f4492e67c7db5, []int{4}
}
func (m *BeaconBlock) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BeaconBlock.Unmarshal(m, b)
@@ -326,7 +326,7 @@ func (m *CrystallizedStateHashAnnounce) Reset() { *m = CrystallizedState
func (m *CrystallizedStateHashAnnounce) String() string { return proto.CompactTextString(m) }
func (*CrystallizedStateHashAnnounce) ProtoMessage() {}
func (*CrystallizedStateHashAnnounce) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{5}
return fileDescriptor_messages_e19f4492e67c7db5, []int{5}
}
func (m *CrystallizedStateHashAnnounce) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CrystallizedStateHashAnnounce.Unmarshal(m, b)
@@ -364,7 +364,7 @@ func (m *CrystallizedStateRequest) Reset() { *m = CrystallizedStateReque
func (m *CrystallizedStateRequest) String() string { return proto.CompactTextString(m) }
func (*CrystallizedStateRequest) ProtoMessage() {}
func (*CrystallizedStateRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{6}
return fileDescriptor_messages_e19f4492e67c7db5, []int{6}
}
func (m *CrystallizedStateRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CrystallizedStateRequest.Unmarshal(m, b)
@@ -402,7 +402,7 @@ func (m *CrystallizedStateResponse) Reset() { *m = CrystallizedStateResp
func (m *CrystallizedStateResponse) String() string { return proto.CompactTextString(m) }
func (*CrystallizedStateResponse) ProtoMessage() {}
func (*CrystallizedStateResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{7}
return fileDescriptor_messages_e19f4492e67c7db5, []int{7}
}
func (m *CrystallizedStateResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CrystallizedStateResponse.Unmarshal(m, b)
@@ -435,13 +435,12 @@ type CrystallizedState struct {
LastJustifiedSlot uint64 `protobuf:"varint,3,opt,name=last_justified_slot,json=lastJustifiedSlot,proto3" json:"last_justified_slot,omitempty"`
LastFinalizedSlot uint64 `protobuf:"varint,4,opt,name=last_finalized_slot,json=lastFinalizedSlot,proto3" json:"last_finalized_slot,omitempty"`
CurrentDynasty uint64 `protobuf:"varint,5,opt,name=current_dynasty,json=currentDynasty,proto3" json:"current_dynasty,omitempty"`
CrosslinkingStartShard uint64 `protobuf:"varint,6,opt,name=crosslinking_start_shard,json=crosslinkingStartShard,proto3" json:"crosslinking_start_shard,omitempty"`
TotalDeposits uint64 `protobuf:"varint,7,opt,name=total_deposits,json=totalDeposits,proto3" json:"total_deposits,omitempty"`
DynastySeed []byte `protobuf:"bytes,8,opt,name=dynasty_seed,json=dynastySeed,proto3" json:"dynasty_seed,omitempty"`
DynastyStart uint64 `protobuf:"varint,9,opt,name=dynasty_start,json=dynastyStart,proto3" json:"dynasty_start,omitempty"`
CrosslinkRecords []*CrosslinkRecord `protobuf:"bytes,10,rep,name=crosslink_records,json=crosslinkRecords,proto3" json:"crosslink_records,omitempty"`
Validators []*ValidatorRecord `protobuf:"bytes,11,rep,name=validators,proto3" json:"validators,omitempty"`
ShardAndCommitteesForSlots []*ShardAndCommitteeArray `protobuf:"bytes,12,rep,name=shard_and_committees_for_slots,json=shardAndCommitteesForSlots,proto3" json:"shard_and_committees_for_slots,omitempty"`
TotalDeposits uint64 `protobuf:"varint,6,opt,name=total_deposits,json=totalDeposits,proto3" json:"total_deposits,omitempty"`
DynastySeed []byte `protobuf:"bytes,7,opt,name=dynasty_seed,json=dynastySeed,proto3" json:"dynasty_seed,omitempty"`
DynastyStart uint64 `protobuf:"varint,8,opt,name=dynasty_start,json=dynastyStart,proto3" json:"dynasty_start,omitempty"`
CrosslinkRecords []*CrosslinkRecord `protobuf:"bytes,9,rep,name=crosslink_records,json=crosslinkRecords,proto3" json:"crosslink_records,omitempty"`
Validators []*ValidatorRecord `protobuf:"bytes,10,rep,name=validators,proto3" json:"validators,omitempty"`
ShardAndCommitteesForSlots []*ShardAndCommitteeArray `protobuf:"bytes,11,rep,name=shard_and_committees_for_slots,json=shardAndCommitteesForSlots,proto3" json:"shard_and_committees_for_slots,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -451,7 +450,7 @@ func (m *CrystallizedState) Reset() { *m = CrystallizedState{} }
func (m *CrystallizedState) String() string { return proto.CompactTextString(m) }
func (*CrystallizedState) ProtoMessage() {}
func (*CrystallizedState) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{8}
return fileDescriptor_messages_e19f4492e67c7db5, []int{8}
}
func (m *CrystallizedState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CrystallizedState.Unmarshal(m, b)
@@ -506,13 +505,6 @@ func (m *CrystallizedState) GetCurrentDynasty() uint64 {
return 0
}
func (m *CrystallizedState) GetCrosslinkingStartShard() uint64 {
if m != nil {
return m.CrosslinkingStartShard
}
return 0
}
func (m *CrystallizedState) GetTotalDeposits() uint64 {
if m != nil {
return m.TotalDeposits
@@ -566,7 +558,7 @@ func (m *ShardAndCommitteeArray) Reset() { *m = ShardAndCommitteeArray{}
func (m *ShardAndCommitteeArray) String() string { return proto.CompactTextString(m) }
func (*ShardAndCommitteeArray) ProtoMessage() {}
func (*ShardAndCommitteeArray) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{9}
return fileDescriptor_messages_e19f4492e67c7db5, []int{9}
}
func (m *ShardAndCommitteeArray) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardAndCommitteeArray.Unmarshal(m, b)
@@ -604,7 +596,7 @@ func (m *ActiveStateHashAnnounce) Reset() { *m = ActiveStateHashAnnounce
func (m *ActiveStateHashAnnounce) String() string { return proto.CompactTextString(m) }
func (*ActiveStateHashAnnounce) ProtoMessage() {}
func (*ActiveStateHashAnnounce) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{10}
return fileDescriptor_messages_e19f4492e67c7db5, []int{10}
}
func (m *ActiveStateHashAnnounce) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ActiveStateHashAnnounce.Unmarshal(m, b)
@@ -642,7 +634,7 @@ func (m *ActiveStateRequest) Reset() { *m = ActiveStateRequest{} }
func (m *ActiveStateRequest) String() string { return proto.CompactTextString(m) }
func (*ActiveStateRequest) ProtoMessage() {}
func (*ActiveStateRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{11}
return fileDescriptor_messages_e19f4492e67c7db5, []int{11}
}
func (m *ActiveStateRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ActiveStateRequest.Unmarshal(m, b)
@@ -681,7 +673,7 @@ func (m *ShardAndCommittee) Reset() { *m = ShardAndCommittee{} }
func (m *ShardAndCommittee) String() string { return proto.CompactTextString(m) }
func (*ShardAndCommittee) ProtoMessage() {}
func (*ShardAndCommittee) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{12}
return fileDescriptor_messages_e19f4492e67c7db5, []int{12}
}
func (m *ShardAndCommittee) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardAndCommittee.Unmarshal(m, b)
@@ -726,7 +718,7 @@ func (m *ActiveStateResponse) Reset() { *m = ActiveStateResponse{} }
func (m *ActiveStateResponse) String() string { return proto.CompactTextString(m) }
func (*ActiveStateResponse) ProtoMessage() {}
func (*ActiveStateResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{13}
return fileDescriptor_messages_e19f4492e67c7db5, []int{13}
}
func (m *ActiveStateResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ActiveStateResponse.Unmarshal(m, b)
@@ -765,7 +757,7 @@ func (m *ActiveState) Reset() { *m = ActiveState{} }
func (m *ActiveState) String() string { return proto.CompactTextString(m) }
func (*ActiveState) ProtoMessage() {}
func (*ActiveState) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{14}
return fileDescriptor_messages_e19f4492e67c7db5, []int{14}
}
func (m *ActiveState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ActiveState.Unmarshal(m, b)
@@ -816,7 +808,7 @@ func (m *ValidatorRecord) Reset() { *m = ValidatorRecord{} }
func (m *ValidatorRecord) String() string { return proto.CompactTextString(m) }
func (*ValidatorRecord) ProtoMessage() {}
func (*ValidatorRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{15}
return fileDescriptor_messages_e19f4492e67c7db5, []int{15}
}
func (m *ValidatorRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidatorRecord.Unmarshal(m, b)
@@ -903,7 +895,7 @@ func (m *AttestationRecord) Reset() { *m = AttestationRecord{} }
func (m *AttestationRecord) String() string { return proto.CompactTextString(m) }
func (*AttestationRecord) ProtoMessage() {}
func (*AttestationRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{16}
return fileDescriptor_messages_e19f4492e67c7db5, []int{16}
}
func (m *AttestationRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttestationRecord.Unmarshal(m, b)
@@ -992,7 +984,7 @@ func (m *CrosslinkRecord) Reset() { *m = CrosslinkRecord{} }
func (m *CrosslinkRecord) String() string { return proto.CompactTextString(m) }
func (*CrosslinkRecord) ProtoMessage() {}
func (*CrosslinkRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{17}
return fileDescriptor_messages_e19f4492e67c7db5, []int{17}
}
func (m *CrosslinkRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CrosslinkRecord.Unmarshal(m, b)
@@ -1044,7 +1036,7 @@ func (m *AttestationHashes) Reset() { *m = AttestationHashes{} }
func (m *AttestationHashes) String() string { return proto.CompactTextString(m) }
func (*AttestationHashes) ProtoMessage() {}
func (*AttestationHashes) Descriptor() ([]byte, []int) {
return fileDescriptor_messages_de7ecbc74ad5b8c9, []int{18}
return fileDescriptor_messages_e19f4492e67c7db5, []int{18}
}
func (m *AttestationHashes) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttestationHashes.Unmarshal(m, b)
@@ -1094,91 +1086,90 @@ func init() {
proto.RegisterEnum("ethereum.beacon.p2p.v1.Topic", Topic_name, Topic_value)
}
func init() { proto.RegisterFile("messages.proto", fileDescriptor_messages_de7ecbc74ad5b8c9) }
func init() { proto.RegisterFile("messages.proto", fileDescriptor_messages_e19f4492e67c7db5) }
var fileDescriptor_messages_de7ecbc74ad5b8c9 = []byte{
// 1319 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xdf, 0x6e, 0xdb, 0xb6,
0x17, 0xfe, 0xc5, 0x71, 0x9a, 0xe4, 0xd8, 0x49, 0x6c, 0xa6, 0x4d, 0x95, 0xfc, 0xd6, 0x26, 0x53,
0x57, 0x34, 0x6d, 0x51, 0x77, 0x4b, 0x81, 0xa1, 0xbb, 0x19, 0x20, 0xbb, 0xee, 0xda, 0x35, 0x75,
0x3a, 0xc9, 0xe9, 0xd6, 0x61, 0x85, 0x40, 0x4b, 0xb4, 0xad, 0x46, 0x16, 0x5d, 0x92, 0x4e, 0xe0,
0x5d, 0xec, 0x6e, 0xcf, 0xb0, 0x8b, 0x3d, 0xc4, 0x1e, 0x64, 0xc0, 0x9e, 0x69, 0x20, 0x45, 0xfd,
0xb3, 0x9d, 0x14, 0xbb, 0x93, 0xbe, 0xf3, 0x9d, 0xc3, 0xc3, 0x73, 0x0e, 0x3f, 0x12, 0x36, 0x47,
0x84, 0x73, 0x3c, 0x20, 0xbc, 0x31, 0x66, 0x54, 0x50, 0xb4, 0x43, 0xc4, 0x90, 0x30, 0x32, 0x19,
0x35, 0x7a, 0x04, 0x7b, 0x34, 0x6a, 0x8c, 0x8f, 0xc6, 0x8d, 0xf3, 0xaf, 0xf6, 0xf6, 0x07, 0x94,
0x0e, 0x42, 0xf2, 0x58, 0xb1, 0x7a, 0x93, 0xfe, 0x63, 0x11, 0x8c, 0x08, 0x17, 0x78, 0x34, 0x8e,
0x1d, 0xcd, 0x47, 0x70, 0xb3, 0xa9, 0x3c, 0x9a, 0x21, 0xf5, 0xce, 0x5e, 0x60, 0x3e, 0xb4, 0xa2,
0x88, 0x4e, 0x22, 0x8f, 0x20, 0x04, 0xe5, 0x21, 0xe6, 0x43, 0x63, 0xe9, 0x60, 0xe9, 0xb0, 0x6a,
0xab, 0x6f, 0xf3, 0x10, 0x50, 0x8e, 0x6e, 0x93, 0x8f, 0x13, 0xc2, 0xc5, 0x42, 0xa6, 0x05, 0xb7,
0xe7, 0x99, 0xcd, 0xa9, 0x13, 0x52, 0xd1, 0x99, 0x8c, 0x7a, 0x84, 0xa1, 0x7d, 0xa8, 0xf0, 0x90,
0x0a, 0x37, 0x52, 0xbf, 0xca, 0xb9, 0x6c, 0x03, 0x4f, 0x09, 0xe6, 0x1b, 0xd8, 0x2e, 0x84, 0xe0,
0x63, 0x1a, 0x71, 0x82, 0xbe, 0x81, 0x95, 0x9e, 0x04, 0x94, 0x47, 0xe5, 0xe8, 0x4e, 0x63, 0xf1,
0xde, 0x1b, 0x79, 0xdf, 0xd8, 0xc3, 0xfc, 0x7d, 0x19, 0x2a, 0x39, 0x58, 0xa6, 0x30, 0xc6, 0x8c,
0x44, 0xc2, 0xcd, 0xe5, 0x0f, 0x31, 0x24, 0x6b, 0x31, 0x9b, 0x63, 0x69, 0x36, 0x47, 0x74, 0x07,
0x36, 0x18, 0x8e, 0x7c, 0x4c, 0x5d, 0x46, 0xce, 0x09, 0x0e, 0x8d, 0x65, 0x15, 0xa3, 0x1a, 0x83,
0xb6, 0xc2, 0x90, 0x09, 0x1b, 0x63, 0x7a, 0xe1, 0x7a, 0x43, 0x1c, 0x44, 0x2e, 0x23, 0x7d, 0xa3,
0xac, 0x48, 0x95, 0x31, 0xbd, 0x68, 0x49, 0xcc, 0x26, 0x7d, 0xf4, 0x00, 0xea, 0xd8, 0x13, 0xc1,
0x39, 0x71, 0xb9, 0xc0, 0x82, 0xc4, 0x09, 0xad, 0x28, 0xde, 0x56, 0x6c, 0x70, 0x24, 0xae, 0xb2,
0xfa, 0x1a, 0x6e, 0x7a, 0x6c, 0xca, 0x05, 0x0e, 0xc3, 0xe0, 0x57, 0xe2, 0xe7, 0x3d, 0xae, 0x29,
0x8f, 0x1b, 0x79, 0x73, 0xe6, 0xf7, 0x14, 0xd6, 0xd3, 0xfe, 0x1b, 0xab, 0xaa, 0x7a, 0x7b, 0x8d,
0x78, 0x42, 0x1a, 0xc9, 0x84, 0x34, 0xba, 0x09, 0xc3, 0xce, 0xc8, 0xe8, 0x35, 0x54, 0xb1, 0x10,
0xf2, 0x47, 0x04, 0x34, 0xe2, 0xc6, 0xda, 0xc1, 0xf2, 0x61, 0xe5, 0xe8, 0xfe, 0x65, 0xa5, 0xb7,
0x32, 0xae, 0x4d, 0x3c, 0xca, 0x7c, 0xbb, 0xe0, 0x6e, 0x3e, 0x81, 0x5b, 0xad, 0x45, 0x19, 0x5e,
0x39, 0x7b, 0x0d, 0x30, 0xe6, 0x9c, 0xae, 0x9a, 0xc0, 0x09, 0xec, 0x2e, 0xe0, 0xeb, 0x21, 0xfa,
0x09, 0xd0, 0x7c, 0x09, 0xf5, 0x44, 0x5d, 0xba, 0xad, 0xf9, 0x70, 0xf5, 0xb9, 0x42, 0x9b, 0x7f,
0xad, 0x40, 0x7d, 0x8e, 0x28, 0xdb, 0x1b, 0x62, 0x2e, 0x74, 0xab, 0x18, 0xf1, 0x70, 0xe8, 0xe9,
0x91, 0xdf, 0x92, 0x06, 0x9d, 0x9d, 0x84, 0xd1, 0x7d, 0xa8, 0x7d, 0x98, 0x70, 0x11, 0xf4, 0x03,
0x95, 0x18, 0x23, 0xf8, 0x4c, 0x4f, 0xde, 0x56, 0x8a, 0x3b, 0x0a, 0x46, 0x0d, 0xd8, 0x56, 0x61,
0x73, 0xfc, 0x90, 0x0a, 0x35, 0x84, 0x65, 0x5b, 0xad, 0xf8, 0x7d, 0xea, 0x11, 0x52, 0x91, 0xf2,
0xfb, 0x41, 0x84, 0xf5, 0xc6, 0x25, 0xbf, 0x9c, 0xf1, 0x9f, 0x27, 0x16, 0xc5, 0xbf, 0x07, 0x5b,
0xde, 0x84, 0xa9, 0x13, 0xe2, 0x4f, 0x23, 0xcc, 0xc5, 0x54, 0xcd, 0x64, 0xd9, 0xde, 0xd4, 0xf0,
0xb3, 0x18, 0x45, 0x4f, 0xc1, 0xf0, 0x18, 0xe5, 0x3c, 0x0c, 0xa2, 0xb3, 0x20, 0x1a, 0xc8, 0x7d,
0x32, 0xe1, 0xf2, 0x21, 0x66, 0xbe, 0x9a, 0xc9, 0xb2, 0xbd, 0x93, 0xb7, 0x3b, 0xd2, 0xec, 0x48,
0x2b, 0xba, 0x0b, 0x9b, 0x82, 0x0a, 0x1c, 0xba, 0x3e, 0x19, 0x53, 0x1e, 0x08, 0xae, 0x26, 0xb3,
0x6c, 0x6f, 0x28, 0xf4, 0x99, 0x06, 0xd1, 0xe7, 0x50, 0xd5, 0x19, 0xb8, 0x9c, 0x10, 0xdf, 0x58,
0x8b, 0x8f, 0x90, 0xc6, 0x1c, 0x42, 0x7c, 0x79, 0x16, 0x53, 0x8a, 0x8c, 0x6f, 0xac, 0xab, 0x40,
0x89, 0x9f, 0x5a, 0x13, 0x75, 0xa1, 0x9e, 0x26, 0x22, 0xfb, 0x40, 0x99, 0xcf, 0x0d, 0x50, 0xe3,
0x7c, 0xef, 0xf2, 0xbe, 0x6b, 0x07, 0x3d, 0xcc, 0x35, 0xaf, 0x08, 0x70, 0xf4, 0x1d, 0xc0, 0x39,
0x0e, 0x03, 0x1f, 0x0b, 0xca, 0xb8, 0x51, 0xb9, 0x3a, 0xdc, 0xdb, 0x84, 0xa9, 0xc3, 0xe5, 0x5c,
0x11, 0x83, 0xdb, 0xaa, 0x68, 0x2e, 0x8e, 0x7c, 0xd7, 0xa3, 0xa3, 0x51, 0x20, 0x04, 0x21, 0xdc,
0xed, 0x53, 0xa6, 0x5a, 0xc5, 0x8d, 0xaa, 0x0a, 0xde, 0xb8, 0x2c, 0xb8, 0x2a, 0xaa, 0x15, 0xf9,
0xad, 0xc4, 0xd7, 0x62, 0x0c, 0x4f, 0xed, 0x3d, 0x3e, 0x8b, 0xf3, 0xe7, 0x94, 0xc9, 0x1e, 0x73,
0xf3, 0x37, 0xd8, 0x59, 0xec, 0x85, 0x7c, 0xd8, 0xc5, 0xf2, 0xc3, 0x5d, 0x90, 0x93, 0xb1, 0x74,
0xb5, 0x06, 0xcc, 0x85, 0xb4, 0x77, 0x54, 0xac, 0x39, 0x5c, 0xde, 0x41, 0x56, 0x51, 0xe1, 0x3e,
0x75, 0x07, 0xe5, 0xe8, 0x57, 0x29, 0xc0, 0x31, 0xd4, 0xe7, 0x56, 0x43, 0xbb, 0xb0, 0x16, 0xef,
0x26, 0xf0, 0xf5, 0x01, 0x5c, 0x55, 0xff, 0x2f, 0x7d, 0xf4, 0x19, 0xac, 0x67, 0xdb, 0x2b, 0x1d,
0x2c, 0x1f, 0x6e, 0xd8, 0x19, 0x60, 0xbe, 0x87, 0xed, 0xc2, 0xba, 0x5a, 0x49, 0x9e, 0x43, 0x35,
0x2f, 0xdc, 0x9f, 0xba, 0x95, 0xf2, 0x21, 0x2a, 0x39, 0x61, 0x37, 0xff, 0x5c, 0x82, 0x4a, 0xce,
0x88, 0x7e, 0x81, 0xeb, 0x63, 0x12, 0xf9, 0xf2, 0x30, 0x15, 0xa4, 0x77, 0xe9, 0xbf, 0x4a, 0xef,
0xb6, 0x0e, 0x93, 0xb3, 0x70, 0x29, 0x04, 0x8c, 0x78, 0xf2, 0x5c, 0xab, 0x9b, 0x51, 0x5d, 0x1e,
0x84, 0xab, 0x4d, 0x57, 0xed, 0x7a, 0x6c, 0x4a, 0x9f, 0x04, 0x84, 0x9b, 0x7f, 0x94, 0x60, 0x6b,
0x66, 0x6e, 0xd1, 0x2d, 0x80, 0xf1, 0xa4, 0x17, 0x06, 0x9e, 0x7b, 0x46, 0xa6, 0xba, 0x96, 0xeb,
0x31, 0xf2, 0x8a, 0x4c, 0xa5, 0x8c, 0x5d, 0x04, 0x62, 0xe8, 0x33, 0x7c, 0x81, 0x43, 0x2d, 0x05,
0x5a, 0xc6, 0x32, 0x3c, 0xd6, 0x80, 0x47, 0x80, 0x72, 0x54, 0xec, 0xfb, 0x8c, 0x70, 0xae, 0xaf,
0xd2, 0x7a, 0x66, 0xb1, 0x62, 0x03, 0x7a, 0x08, 0x75, 0x7d, 0xe9, 0xc6, 0xdd, 0x19, 0x91, 0x48,
0xe8, 0x3b, 0xb5, 0x16, 0x1b, 0x5a, 0x29, 0x8e, 0x0c, 0x58, 0xed, 0xe1, 0x10, 0x47, 0x1e, 0xd1,
0xd2, 0x95, 0xfc, 0x4a, 0xbd, 0x88, 0x65, 0x2a, 0x91, 0xb6, 0x58, 0xa8, 0xaa, 0x0a, 0x4c, 0x84,
0x6d, 0x1f, 0x2a, 0x24, 0xf2, 0x53, 0x4a, 0xac, 0x4d, 0x40, 0x22, 0x5f, 0x13, 0xcc, 0xbf, 0x4b,
0x50, 0x9f, 0x2b, 0xba, 0x1c, 0x47, 0xa5, 0xac, 0x71, 0x55, 0xd4, 0x77, 0x61, 0xf2, 0x4a, 0xc5,
0xc9, 0xbb, 0x0b, 0x9b, 0x0b, 0x25, 0x7c, 0xe3, 0x43, 0x41, 0xbe, 0xbf, 0x84, 0xeb, 0x19, 0x2d,
0x6b, 0x9c, 0xde, 0x3b, 0x4a, 0x6d, 0x69, 0xe7, 0xd0, 0x21, 0xd4, 0xe2, 0x35, 0x73, 0xec, 0xf8,
0x55, 0xb1, 0xa9, 0xf0, 0x8c, 0xf9, 0x10, 0xea, 0xf1, 0x9c, 0x11, 0xe6, 0xf6, 0x02, 0xd1, 0x0f,
0x48, 0xe8, 0xeb, 0xe7, 0x44, 0x2d, 0x31, 0x34, 0x35, 0x8e, 0x8e, 0xe0, 0x06, 0xed, 0x85, 0xc1,
0xc7, 0x09, 0x71, 0x73, 0x0f, 0x28, 0x22, 0xb5, 0x5b, 0x0e, 0xd0, 0xb6, 0x36, 0xbe, 0x49, 0x5f,
0x52, 0x84, 0xcb, 0x72, 0xe3, 0xc1, 0x80, 0x91, 0x81, 0xbc, 0x01, 0x79, 0x30, 0x50, 0x8f, 0x88,
0xb2, 0x5d, 0x4d, 0x41, 0x27, 0x18, 0x98, 0xef, 0x61, 0x6b, 0x46, 0x6d, 0x65, 0x03, 0x93, 0xea,
0xeb, 0xf3, 0xaa, 0x7f, 0xe5, 0x79, 0x55, 0xdb, 0x52, 0xbb, 0x2a, 0xa9, 0x54, 0x33, 0x20, 0x6d,
0xc1, 0x72, 0xd6, 0x02, 0xf3, 0xdb, 0x42, 0xaf, 0x74, 0x62, 0xf7, 0xa1, 0x96, 0x3b, 0x61, 0xc9,
0x53, 0x70, 0x59, 0xbd, 0xbc, 0x8a, 0xe4, 0x07, 0xff, 0x94, 0x60, 0xa5, 0x4b, 0xc7, 0x81, 0x87,
0x2a, 0xb0, 0x7a, 0xda, 0x79, 0xd5, 0x39, 0xf9, 0xb1, 0x53, 0xfb, 0x1f, 0xba, 0x0d, 0x7b, 0xcd,
0xb6, 0xd5, 0x3a, 0xe9, 0xb8, 0xcd, 0xe3, 0x93, 0xd6, 0x2b, 0xf7, 0x85, 0xe5, 0xbc, 0x70, 0xad,
0x4e, 0xe7, 0xe4, 0xb4, 0xd3, 0x6a, 0xd7, 0x96, 0x90, 0x01, 0xd7, 0x0b, 0x76, 0xbb, 0xfd, 0xc3,
0x69, 0xdb, 0xe9, 0xd6, 0x4a, 0xe8, 0x1e, 0xdc, 0x59, 0x64, 0x71, 0x9b, 0xef, 0x5c, 0xe7, 0xf8,
0xa4, 0xeb, 0x76, 0x4e, 0x5f, 0x37, 0xdb, 0x76, 0x6d, 0x19, 0xed, 0xc2, 0x8d, 0x19, 0xa2, 0xf3,
0xe6, 0xa4, 0xe3, 0xb4, 0x6b, 0x65, 0xf4, 0x05, 0x1c, 0xb4, 0xec, 0x77, 0x4e, 0xd7, 0x3a, 0x3e,
0x7e, 0xf9, 0x73, 0xfb, 0x99, 0xeb, 0x74, 0xad, 0x6e, 0x7b, 0x26, 0x87, 0x15, 0x99, 0xe3, 0x02,
0x56, 0x92, 0xc9, 0x35, 0xb4, 0x0f, 0xff, 0x5f, 0x68, 0xd7, 0xcb, 0xac, 0xca, 0x00, 0x56, 0xab,
0xfb, 0xf2, 0x6d, 0x7b, 0xe1, 0x02, 0x6b, 0x72, 0x93, 0x05, 0x7b, 0x12, 0x7a, 0x5d, 0xe6, 0x3e,
0x63, 0xd1, 0x41, 0xa1, 0x77, 0x4d, 0xbd, 0x3b, 0x9f, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xd0,
0x32, 0xf8, 0x91, 0xd1, 0x0c, 0x00, 0x00,
var fileDescriptor_messages_e19f4492e67c7db5 = []byte{
// 1297 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0x5f, 0x6f, 0xdb, 0x36,
0x10, 0x5f, 0x6c, 0xa7, 0x4e, 0xce, 0x4e, 0x62, 0x33, 0xfd, 0xa3, 0x64, 0x6b, 0x93, 0xa9, 0x2b,
0x9a, 0xb6, 0xa8, 0xbb, 0xa5, 0xc0, 0xb0, 0xbd, 0x0c, 0xb0, 0x5d, 0x77, 0xed, 0x9a, 0x3a, 0x99,
0xe4, 0x74, 0xeb, 0xb0, 0x42, 0xa0, 0x25, 0xda, 0x56, 0x23, 0x8b, 0x2e, 0x49, 0x27, 0xf0, 0x1e,
0xf6, 0xb6, 0xcf, 0xb0, 0x87, 0x7d, 0xa4, 0x01, 0xfb, 0x36, 0x7b, 0x1f, 0x48, 0x51, 0xff, 0x6c,
0x27, 0xc5, 0xde, 0xa4, 0xdf, 0xfd, 0xee, 0x78, 0xbc, 0xfb, 0xf1, 0x48, 0xd8, 0x1c, 0x13, 0xce,
0xf1, 0x90, 0xf0, 0xc6, 0x84, 0x51, 0x41, 0xd1, 0x4d, 0x22, 0x46, 0x84, 0x91, 0xe9, 0xb8, 0xd1,
0x27, 0xd8, 0xa5, 0x61, 0x63, 0x72, 0x38, 0x69, 0x9c, 0x7f, 0xb5, 0xbb, 0x37, 0xa4, 0x74, 0x18,
0x90, 0x27, 0x8a, 0xd5, 0x9f, 0x0e, 0x9e, 0x08, 0x7f, 0x4c, 0xb8, 0xc0, 0xe3, 0x49, 0xe4, 0x68,
0x3e, 0x86, 0x5b, 0x2d, 0xe5, 0xd1, 0x0a, 0xa8, 0x7b, 0xf6, 0x02, 0xf3, 0x51, 0x33, 0x0c, 0xe9,
0x34, 0x74, 0x09, 0x42, 0x50, 0x1a, 0x61, 0x3e, 0x32, 0x56, 0xf6, 0x57, 0x0e, 0xaa, 0x96, 0xfa,
0x36, 0x0f, 0x00, 0x65, 0xe8, 0x16, 0xf9, 0x30, 0x25, 0x5c, 0x2c, 0x65, 0x36, 0xe1, 0xce, 0x22,
0xb3, 0x35, 0xb3, 0x03, 0x2a, 0xba, 0xd3, 0x71, 0x9f, 0x30, 0xb4, 0x07, 0x15, 0x1e, 0x50, 0xe1,
0x84, 0xea, 0x57, 0x39, 0x97, 0x2c, 0xe0, 0x09, 0xc1, 0x3c, 0x81, 0xed, 0x5c, 0x08, 0x3e, 0xa1,
0x21, 0x27, 0xe8, 0x5b, 0x58, 0xed, 0x4b, 0x40, 0x79, 0x54, 0x0e, 0xef, 0x36, 0x96, 0xef, 0xbd,
0x91, 0xf5, 0x8d, 0x3c, 0xcc, 0x3f, 0x8a, 0x50, 0xc9, 0xc0, 0x32, 0x85, 0x09, 0x66, 0x24, 0x14,
0x4e, 0x26, 0x7f, 0x88, 0x20, 0x59, 0x8b, 0xf9, 0x1c, 0x0b, 0xf3, 0x39, 0xa2, 0xbb, 0xb0, 0xc1,
0x70, 0xe8, 0x61, 0xea, 0x30, 0x72, 0x4e, 0x70, 0x60, 0x14, 0x55, 0x8c, 0x6a, 0x04, 0x5a, 0x0a,
0x43, 0x26, 0x6c, 0x4c, 0xe8, 0x85, 0xe3, 0x8e, 0xb0, 0x1f, 0x3a, 0x8c, 0x0c, 0x8c, 0x92, 0x22,
0x55, 0x26, 0xf4, 0xa2, 0x2d, 0x31, 0x8b, 0x0c, 0xd0, 0x43, 0xa8, 0x63, 0x57, 0xf8, 0xe7, 0xc4,
0xe1, 0x02, 0x0b, 0x12, 0x25, 0xb4, 0xaa, 0x78, 0x5b, 0x91, 0xc1, 0x96, 0xb8, 0xca, 0xea, 0x6b,
0xb8, 0xe5, 0xb2, 0x19, 0x17, 0x38, 0x08, 0xfc, 0xdf, 0x88, 0x97, 0xf5, 0xb8, 0xa6, 0x3c, 0x6e,
0x64, 0xcd, 0xa9, 0xdf, 0x37, 0xb0, 0x9e, 0xf4, 0xdf, 0x28, 0xab, 0xea, 0xed, 0x36, 0x22, 0x85,
0x34, 0x62, 0x85, 0x34, 0x7a, 0x31, 0xc3, 0x4a, 0xc9, 0xe8, 0x35, 0x54, 0xb1, 0x10, 0xf2, 0x47,
0xf8, 0x34, 0xe4, 0xc6, 0xda, 0x7e, 0xf1, 0xa0, 0x72, 0xf8, 0xe0, 0xb2, 0xd2, 0x37, 0x53, 0xae,
0x45, 0x5c, 0xca, 0x3c, 0x2b, 0xe7, 0x6e, 0x3e, 0x85, 0xdb, 0xed, 0x65, 0x19, 0x5e, 0xa9, 0xbd,
0x06, 0x18, 0x0b, 0x4e, 0x57, 0x29, 0x70, 0x0a, 0x3b, 0x4b, 0xf8, 0x5a, 0x44, 0x3f, 0x03, 0x5a,
0x2c, 0xa1, 0x56, 0xd4, 0xa5, 0xdb, 0x5a, 0x0c, 0x57, 0x5f, 0x28, 0xb4, 0xf9, 0x6f, 0x09, 0xea,
0x0b, 0x44, 0xd9, 0xde, 0x00, 0x73, 0xa1, 0x5b, 0xc5, 0x88, 0x8b, 0x03, 0x57, 0x4b, 0x7e, 0x4b,
0x1a, 0x74, 0x76, 0x12, 0x46, 0x0f, 0xa0, 0xf6, 0x7e, 0xca, 0x85, 0x3f, 0xf0, 0x55, 0x62, 0x8c,
0xe0, 0x33, 0xad, 0xbc, 0xad, 0x04, 0xb7, 0x15, 0x8c, 0x1a, 0xb0, 0xad, 0xc2, 0x66, 0xf8, 0x01,
0x15, 0x4a, 0x84, 0x25, 0x4b, 0xad, 0xf8, 0x43, 0xe2, 0x11, 0x50, 0x91, 0xf0, 0x07, 0x7e, 0x88,
0xf5, 0xc6, 0x25, 0xbf, 0x94, 0xf2, 0x9f, 0xc7, 0x16, 0xc5, 0xbf, 0x0f, 0x5b, 0xee, 0x94, 0xa9,
0x13, 0xe2, 0xcd, 0x42, 0xcc, 0xc5, 0x4c, 0x69, 0xb2, 0x64, 0x6d, 0x6a, 0xf8, 0x59, 0x84, 0xa2,
0x7b, 0xb0, 0x29, 0xa8, 0xc0, 0x81, 0xe3, 0x91, 0x09, 0xe5, 0xbe, 0xe0, 0x4a, 0x89, 0x25, 0x6b,
0x43, 0xa1, 0xcf, 0x34, 0x88, 0x3e, 0x87, 0xaa, 0x8e, 0xe3, 0x70, 0x42, 0x3c, 0x25, 0xc2, 0xaa,
0x55, 0xd1, 0x98, 0x4d, 0x88, 0x27, 0x4f, 0x54, 0x42, 0x11, 0x98, 0x09, 0x63, 0x4d, 0x05, 0x8a,
0xfd, 0x6c, 0x89, 0xa1, 0x1e, 0xd4, 0x5d, 0x46, 0x39, 0x0f, 0xfc, 0xf0, 0x4c, 0x56, 0x93, 0x32,
0x8f, 0x1b, 0xeb, 0x4a, 0x94, 0xf7, 0x2f, 0xef, 0x9e, 0x76, 0xd0, 0x92, 0xac, 0xb9, 0x79, 0x80,
0xa3, 0xef, 0x01, 0xce, 0x71, 0xe0, 0x7b, 0x58, 0x50, 0xc6, 0x0d, 0xb8, 0x3a, 0xdc, 0x9b, 0x98,
0xa9, 0xc3, 0x65, 0x5c, 0x11, 0x83, 0x3b, 0x7c, 0x84, 0x99, 0xe7, 0xe0, 0xd0, 0x73, 0x5c, 0x3a,
0x1e, 0xfb, 0x42, 0x10, 0xc2, 0x9d, 0x01, 0x65, 0xaa, 0xe0, 0xdc, 0xa8, 0xa8, 0xe0, 0x8d, 0xcb,
0x82, 0xdb, 0xd2, 0xbb, 0x19, 0x7a, 0xed, 0xd8, 0xb7, 0xc9, 0x18, 0x9e, 0x59, 0xbb, 0x7c, 0x1e,
0xe7, 0xcf, 0x29, 0x93, 0x9d, 0xe2, 0xe6, 0xef, 0x70, 0x73, 0xb9, 0x17, 0xf2, 0x60, 0x07, 0xcb,
0x0f, 0x67, 0x49, 0x4e, 0xc6, 0xca, 0xd5, 0x27, 0x79, 0x21, 0xa4, 0x75, 0x53, 0xc5, 0x5a, 0xc0,
0xe5, 0x4d, 0xd2, 0xcc, 0xcf, 0xa9, 0x8f, 0xdd, 0x24, 0x19, 0xfa, 0x55, 0xe7, 0xf8, 0x08, 0xea,
0x0b, 0xab, 0xa1, 0x1d, 0x58, 0x8b, 0x76, 0xe3, 0x7b, 0xfa, 0x18, 0x95, 0xd5, 0xff, 0x4b, 0x0f,
0x7d, 0x06, 0xeb, 0xe9, 0xf6, 0x0a, 0xfb, 0xc5, 0x83, 0x0d, 0x2b, 0x05, 0xcc, 0x77, 0xb0, 0x9d,
0x5b, 0x57, 0xcf, 0x83, 0xe7, 0x50, 0xcd, 0x8e, 0xdf, 0x8f, 0xdd, 0x2d, 0xd9, 0x10, 0x95, 0xcc,
0x78, 0x36, 0xff, 0x5a, 0x81, 0x4a, 0xc6, 0x88, 0x7e, 0x85, 0xeb, 0x13, 0x12, 0x7a, 0x7e, 0x38,
0x74, 0x72, 0x03, 0x74, 0xe5, 0xff, 0x0e, 0xd0, 0x6d, 0x1d, 0x26, 0x63, 0xe1, 0xf2, 0x38, 0x33,
0xe2, 0xca, 0xd3, 0xa9, 0xee, 0x37, 0x75, 0x05, 0x10, 0xae, 0x36, 0x5d, 0xb5, 0xea, 0x91, 0x29,
0xb9, 0xd8, 0x09, 0x37, 0xff, 0x2c, 0xc0, 0xd6, 0x9c, 0x6e, 0xd1, 0x6d, 0x80, 0xc9, 0xb4, 0x1f,
0xf8, 0xae, 0x73, 0x46, 0x66, 0xba, 0x96, 0xeb, 0x11, 0xf2, 0x8a, 0xcc, 0xe4, 0x30, 0xba, 0xf0,
0xc5, 0xc8, 0x63, 0xf8, 0x02, 0x07, 0x91, 0x82, 0xe2, 0x61, 0x94, 0xe2, 0xaa, 0x3f, 0xe8, 0x31,
0xa0, 0x0c, 0x15, 0x7b, 0x1e, 0x23, 0x9c, 0xeb, 0x0b, 0xb1, 0x9e, 0x5a, 0x9a, 0x91, 0x01, 0x3d,
0x82, 0xba, 0xbe, 0x3a, 0xa3, 0xee, 0x8c, 0x49, 0x28, 0xf4, 0xcd, 0x58, 0x8b, 0x0c, 0xed, 0x04,
0x47, 0x06, 0x94, 0xfb, 0x38, 0xc0, 0xa1, 0x4b, 0xf4, 0x00, 0x8a, 0x7f, 0xe5, 0xbc, 0x50, 0x73,
0x22, 0x19, 0x50, 0xd1, 0xe0, 0xa9, 0x2a, 0x30, 0x1e, 0x4f, 0x7b, 0x50, 0x21, 0xa1, 0x97, 0x50,
0xca, 0xd1, 0x3d, 0x4e, 0x42, 0x4f, 0x13, 0xcc, 0xbf, 0x0b, 0x50, 0x5f, 0x28, 0xba, 0x94, 0xa3,
0x9a, 0x8f, 0x51, 0x55, 0xd4, 0x77, 0x4e, 0x79, 0x85, 0xbc, 0xf2, 0xee, 0xc1, 0xe6, 0xd2, 0x41,
0xbc, 0xf1, 0x3e, 0x37, 0x84, 0xbf, 0x84, 0xeb, 0x29, 0x2d, 0x6d, 0x9c, 0xde, 0x3b, 0x4a, 0x6c,
0x49, 0xe7, 0xd0, 0x01, 0xd4, 0xa2, 0x35, 0x33, 0xec, 0xe8, 0x6d, 0xb0, 0xa9, 0xf0, 0x94, 0xf9,
0x08, 0xea, 0x91, 0xce, 0x08, 0x73, 0xfa, 0xbe, 0x18, 0xf8, 0x24, 0xf0, 0xf4, 0xa3, 0xa0, 0x16,
0x1b, 0x5a, 0x1a, 0x47, 0x87, 0x70, 0x83, 0xf6, 0x03, 0xff, 0xc3, 0x94, 0x38, 0x99, 0x67, 0x10,
0xe1, 0x46, 0x59, 0x09, 0x68, 0x5b, 0x1b, 0x4f, 0x92, 0xf7, 0x10, 0xe1, 0xb2, 0xdc, 0x78, 0x38,
0x64, 0x64, 0x28, 0xef, 0x31, 0xee, 0x0f, 0xd5, 0x53, 0xa0, 0x64, 0x55, 0x13, 0xd0, 0xf6, 0x87,
0xe6, 0x3b, 0xd8, 0x9a, 0x9b, 0xb6, 0xb2, 0x81, 0x71, 0xf5, 0xf5, 0x79, 0xd5, 0xbf, 0xf2, 0xbc,
0xaa, 0x6d, 0xa9, 0x5d, 0x15, 0x54, 0xaa, 0x29, 0x90, 0xb4, 0xa0, 0x98, 0xb6, 0xc0, 0xfc, 0x2e,
0xd7, 0x2b, 0x9d, 0xd8, 0x03, 0xa8, 0x65, 0x4e, 0x58, 0xfc, 0xa0, 0x2b, 0xaa, 0xf7, 0x53, 0x9e,
0xfc, 0xf0, 0x9f, 0x02, 0xac, 0xf6, 0xe8, 0xc4, 0x77, 0x51, 0x05, 0xca, 0xa7, 0xdd, 0x57, 0xdd,
0xe3, 0x9f, 0xba, 0xb5, 0x4f, 0xd0, 0x1d, 0xd8, 0x6d, 0x75, 0x9a, 0xed, 0xe3, 0xae, 0xd3, 0x3a,
0x3a, 0x6e, 0xbf, 0x72, 0x5e, 0x34, 0xed, 0x17, 0x4e, 0xb3, 0xdb, 0x3d, 0x3e, 0xed, 0xb6, 0x3b,
0xb5, 0x15, 0x64, 0xc0, 0xf5, 0x9c, 0xdd, 0xea, 0xfc, 0x78, 0xda, 0xb1, 0x7b, 0xb5, 0x02, 0xba,
0x0f, 0x77, 0x97, 0x59, 0x9c, 0xd6, 0x5b, 0xc7, 0x3e, 0x3a, 0xee, 0x39, 0xdd, 0xd3, 0xd7, 0xad,
0x8e, 0x55, 0x2b, 0xa2, 0x1d, 0xb8, 0x31, 0x47, 0xb4, 0x4f, 0x8e, 0xbb, 0x76, 0xa7, 0x56, 0x42,
0x5f, 0xc0, 0x7e, 0xdb, 0x7a, 0x6b, 0xf7, 0x9a, 0x47, 0x47, 0x2f, 0x7f, 0xe9, 0x3c, 0x73, 0xec,
0x5e, 0xb3, 0xd7, 0x99, 0xcb, 0x61, 0x55, 0xe6, 0xb8, 0x84, 0x15, 0x67, 0x72, 0x0d, 0xed, 0xc1,
0xa7, 0x4b, 0xed, 0x7a, 0x99, 0xb2, 0x0c, 0xd0, 0x6c, 0xf7, 0x5e, 0xbe, 0xe9, 0x2c, 0x5d, 0x60,
0x4d, 0x6e, 0x32, 0x67, 0x8f, 0x43, 0xaf, 0xcb, 0xdc, 0xe7, 0x2c, 0x3a, 0x28, 0xf4, 0xaf, 0xa9,
0xd7, 0xe3, 0xd3, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x5e, 0x87, 0x6c, 0x40, 0x97, 0x0c, 0x00,
0x00,
}

View File

@@ -63,13 +63,12 @@ message CrystallizedState {
uint64 last_justified_slot = 3;
uint64 last_finalized_slot = 4;
uint64 current_dynasty = 5;
uint64 crosslinking_start_shard = 6;
uint64 total_deposits = 7;
bytes dynasty_seed = 8;
uint64 dynasty_start = 9;
repeated CrosslinkRecord crosslink_records = 10;
repeated ValidatorRecord validators = 11;
repeated ShardAndCommitteeArray shard_and_committees_for_slots = 12;
uint64 total_deposits = 6;
bytes dynasty_seed = 7;
uint64 dynasty_start = 8;
repeated CrosslinkRecord crosslink_records = 9;
repeated ValidatorRecord validators = 10;
repeated ShardAndCommitteeArray shard_and_committees_for_slots = 11;
}
message ShardAndCommitteeArray {