PeerDAS: Implement P2P (#15347)

* PeerDAS: Implement P2P.

* Fix Terence's comment.

* Fix Terence's comment.

* Fix Terence's comment.

* Fix Preston's comment.

* Fix Preston's comment.

* `TopicFromMessage`: Exit early.

* Fix Preston's comment.

* `TestService_BroadcastDataColumn`: Avoid ugly sleep.

* Fix Kasey's comment.

* Fix Kasey's comment.

* Fix Kasey's comment.

* Fix Kasey's comment.
This commit is contained in:
Manu NALEPA
2025-05-28 17:23:19 +02:00
committed by GitHub
parent 2c09bc65a4
commit 3a3bd3902c
34 changed files with 1301 additions and 108 deletions

View File

@@ -36,6 +36,11 @@ func (m MetadataV0) SyncnetsBitfield() bitfield.Bitvector4 {
return bitfield.Bitvector4{0}
}
// CustodyGroupCount returns custody subnet count from the metadata.
func (m MetadataV0) CustodyGroupCount() uint64 {
return 0
}
// InnerObject returns the underlying metadata protobuf structure.
func (m MetadataV0) InnerObject() interface{} {
return m.md
@@ -86,6 +91,12 @@ func (MetadataV0) MetadataObjV1() *pb.MetaDataV1 {
return nil
}
// MetadataObjV2 returns the inner metadata object in its type
// specified form. If it doesn't exist then we return nothing.
func (MetadataV0) MetadataObjV2() *pb.MetaDataV2 {
return nil
}
// Version returns the fork version of the underlying object.
func (MetadataV0) Version() int {
return version.Phase0
@@ -119,6 +130,11 @@ func (m MetadataV1) SyncnetsBitfield() bitfield.Bitvector4 {
return m.md.Syncnets
}
// CustodyGroupCount returns custody subnet count from the metadata.
func (m MetadataV1) CustodyGroupCount() uint64 {
return 0
}
// InnerObject returns the underlying metadata protobuf structure.
func (m MetadataV1) InnerObject() interface{} {
return m.md
@@ -169,7 +185,107 @@ func (m MetadataV1) MetadataObjV1() *pb.MetaDataV1 {
return m.md
}
// MetadataObjV2 returns the inner metadata object in its type
// specified form. If it doesn't exist then we return nothing.
func (m MetadataV1) MetadataObjV2() *pb.MetaDataV2 {
return nil
}
// Version returns the fork version of the underlying object.
func (MetadataV1) Version() int {
return version.Altair
}
// MetadataV2
// ----------
// MetadataV2 is a convenience wrapper around our metadata v3 protobuf object.
type MetadataV2 struct {
md *pb.MetaDataV2
}
// WrappedMetadataV2 wrappers around the provided protobuf object.
func WrappedMetadataV2(md *pb.MetaDataV2) MetadataV2 {
return MetadataV2{md: md}
}
// SequenceNumber returns the sequence number from the metadata.
func (m MetadataV2) SequenceNumber() uint64 {
return m.md.SeqNumber
}
// AttnetsBitfield returns the bitfield stored in the metadata.
func (m MetadataV2) AttnetsBitfield() bitfield.Bitvector64 {
return m.md.Attnets
}
// SyncnetsBitfield returns the bitfield stored in the metadata.
func (m MetadataV2) SyncnetsBitfield() bitfield.Bitvector4 {
return m.md.Syncnets
}
// CustodyGroupCount returns custody subnet count from the metadata.
func (m MetadataV2) CustodyGroupCount() uint64 {
return m.md.CustodyGroupCount
}
// InnerObject returns the underlying metadata protobuf structure.
func (m MetadataV2) InnerObject() interface{} {
return m.md
}
// IsNil checks for the nilness of the underlying object.
func (m MetadataV2) IsNil() bool {
return m.md == nil
}
// Copy performs a full copy of the underlying metadata object.
func (m MetadataV2) Copy() metadata.Metadata {
return WrappedMetadataV2(proto.Clone(m.md).(*pb.MetaDataV2))
}
// MarshalSSZ marshals the underlying metadata object
// into its serialized form.
func (m MetadataV2) MarshalSSZ() ([]byte, error) {
return m.md.MarshalSSZ()
}
// MarshalSSZTo marshals the underlying metadata object
// into its serialized form into the provided byte buffer.
func (m MetadataV2) MarshalSSZTo(dst []byte) ([]byte, error) {
return m.md.MarshalSSZTo(dst)
}
// SizeSSZ returns the serialized size of the metadata object.
func (m MetadataV2) SizeSSZ() int {
return m.md.SizeSSZ()
}
// UnmarshalSSZ unmarshals the provided byte buffer into
// the underlying metadata object.
func (m MetadataV2) UnmarshalSSZ(buf []byte) error {
return m.md.UnmarshalSSZ(buf)
}
// MetadataObjV0 returns the inner metadata object in its type
// specified form. If it doesn't exist then we return nothing.
func (MetadataV2) MetadataObjV0() *pb.MetaDataV0 {
return nil
}
// MetadataObjV1 returns the inner metadata object in its type
// specified form. If it doesn't exist then we return nothing.
func (m MetadataV2) MetadataObjV1() *pb.MetaDataV1 {
return nil
}
// MetadataObjV2 returns the inner metadata object in its type
// specified form. If it doesn't exist then we return nothing.
func (m MetadataV2) MetadataObjV2() *pb.MetaDataV2 {
return m.md
}
// Version returns the fork version of the underlying object.
func (MetadataV2) Version() int {
return version.Fulu
}