mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-22 03:30:37 +00:00
[caplin] topic strings (#9000)
This commit is contained in:
parent
510d62ab8a
commit
78bb3cdca8
@ -68,51 +68,6 @@ func (r *beaconResponse) withVersion(version clparams.StateVersion) (out *beacon
|
||||
return out
|
||||
}
|
||||
|
||||
//// In case of it being a json we need to also expose finalization, version, etc...
|
||||
//type beaconHandlerFn func(r *http.Request) *beaconResponse
|
||||
//
|
||||
//func beaconHandlerWrapper(fn beaconHandlerFn, supportSSZ bool) func(w http.ResponseWriter, r *http.Request) {
|
||||
// return func(w http.ResponseWriter, r *http.Request) {
|
||||
// accept := r.Header.Get("Accept")
|
||||
// isSSZ := !strings.Contains(accept, "application/json") && strings.Contains(accept, "application/stream-octect")
|
||||
// start := time.Now()
|
||||
// defer func() {
|
||||
// log.Debug("[Beacon API] finished", "method", r.Method, "path", r.URL.Path, "duration", time.Since(start))
|
||||
// }()
|
||||
//
|
||||
// resp := fn(r)
|
||||
// if resp.internalError != nil {
|
||||
// http.Error(w, resp.internalError.Error(), http.StatusInternalServerError)
|
||||
// log.Debug("[Beacon API] failed", "method", r.Method, "err", resp.internalError.Error(), "ssz", isSSZ)
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// if resp.apiError != nil {
|
||||
// http.Error(w, resp.apiError.err.Error(), resp.apiError.code)
|
||||
// log.Debug("[Beacon API] failed", "method", r.Method, "err", resp.apiError.err.Error(), "ssz", isSSZ)
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// if isSSZ && supportSSZ {
|
||||
// data := resp.Data
|
||||
// // SSZ encoding
|
||||
// encoded, err := data.(ssz.Marshaler).EncodeSSZ(nil)
|
||||
// if err != nil {
|
||||
// http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
// log.Debug("[Beacon API] failed", "method", r.Method, "err", err, "accepted", accept)
|
||||
// return
|
||||
// }
|
||||
// w.Header().Set("Content-Type", "application/octet-stream")
|
||||
// w.Write(encoded)
|
||||
// return
|
||||
// }
|
||||
// w.Header().Set("Content-Type", "application/json")
|
||||
// if err := json.NewEncoder(w).Encode(resp); err != nil {
|
||||
// log.Warn("[Beacon API] failed", "method", r.Method, "err", err, "ssz", isSSZ)
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
type chainTag int
|
||||
|
||||
var (
|
||||
|
25
cl/gossip/gossip.go
Normal file
25
cl/gossip/gossip.go
Normal file
@ -0,0 +1,25 @@
|
||||
package gossip
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
TopicNameBeaconBlock = "beacon_block"
|
||||
TopicNameBeaconAggregateAndProof = "beacon_aggregate_and_proof"
|
||||
TopicNameVoluntaryExit = "voluntary_exit"
|
||||
TopicNameProposerSlashing = "proposer_slashing"
|
||||
TopicNameAttesterSlashing = "attester_slashing"
|
||||
TopicNameBlsToExecutionChange = "bls_to_execution_change"
|
||||
|
||||
TopicNamePrefixBlobSidecar = "blob_sidecar_"
|
||||
)
|
||||
|
||||
func TopicNameBlobSidecar(d int) string {
|
||||
return TopicNamePrefixBlobSidecar + strconv.Itoa(d)
|
||||
}
|
||||
|
||||
func IsTopicBlobSidecar(d string) bool {
|
||||
return strings.Contains(d, TopicNamePrefixBlobSidecar)
|
||||
}
|
@ -3,10 +3,12 @@ package network
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/ledgerwatch/erigon-lib/common"
|
||||
"sync"
|
||||
|
||||
"github.com/ledgerwatch/erigon-lib/common"
|
||||
|
||||
"github.com/ledgerwatch/erigon/cl/freezer"
|
||||
"github.com/ledgerwatch/erigon/cl/gossip"
|
||||
"github.com/ledgerwatch/erigon/cl/phase1/forkchoice"
|
||||
"github.com/ledgerwatch/erigon/cl/sentinel/peers"
|
||||
|
||||
@ -96,8 +98,8 @@ func (g *GossipManager) onRecv(ctx context.Context, data *sentinel.GossipData, l
|
||||
// If the deserialization fails, an error is logged and the loop returns to the next iteration.
|
||||
// If the deserialization is successful, the object is set to the deserialized value and the loop returns to the next iteration.
|
||||
var object ssz.Unmarshaler
|
||||
switch data.Type {
|
||||
case sentinel.GossipType_BeaconBlockGossipType:
|
||||
switch data.Name {
|
||||
case gossip.TopicNameBeaconBlock:
|
||||
object = cltypes.NewSignedBeaconBlock(g.beaconConfig)
|
||||
if err := object.DecodeSSZ(common.CopyBytes(data.Data), int(version)); err != nil {
|
||||
g.sentinel.BanPeer(ctx, data.Peer)
|
||||
@ -142,19 +144,19 @@ func (g *GossipManager) onRecv(ctx context.Context, data *sentinel.GossipData, l
|
||||
}
|
||||
g.mu.RUnlock()
|
||||
|
||||
case sentinel.GossipType_VoluntaryExitGossipType:
|
||||
case gossip.TopicNameVoluntaryExit:
|
||||
if err := operationsContract[*cltypes.SignedVoluntaryExit](ctx, g, l, data, int(version), "voluntary exit", g.forkChoice.OnVoluntaryExit); err != nil {
|
||||
return err
|
||||
}
|
||||
case sentinel.GossipType_ProposerSlashingGossipType:
|
||||
case gossip.TopicNameProposerSlashing:
|
||||
if err := operationsContract[*cltypes.ProposerSlashing](ctx, g, l, data, int(version), "proposer slashing", g.forkChoice.OnProposerSlashing); err != nil {
|
||||
return err
|
||||
}
|
||||
case sentinel.GossipType_AttesterSlashingGossipType:
|
||||
case gossip.TopicNameAttesterSlashing:
|
||||
if err := operationsContract[*cltypes.AttesterSlashing](ctx, g, l, data, int(version), "attester slashing", g.forkChoice.OnAttesterSlashing); err != nil {
|
||||
return err
|
||||
}
|
||||
case sentinel.GossipType_BlsToExecutionChangeGossipType:
|
||||
case gossip.TopicNameBlsToExecutionChange:
|
||||
if err := operationsContract[*cltypes.SignedBLSToExecutionChange](ctx, g, l, data, int(version), "bls to execution change", g.forkChoice.OnBlsToExecutionChange); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -186,7 +186,7 @@ func (b *BeaconRpcP2P) PropagateBlock(block *cltypes.SignedBeaconBlock) error {
|
||||
}
|
||||
_, err = b.sentinel.PublishGossip(b.ctx, &sentinel.GossipData{
|
||||
Data: encoded,
|
||||
Type: sentinel.GossipType_BeaconBlockGossipType,
|
||||
Name: "beacon_block",
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ import (
|
||||
|
||||
"github.com/ledgerwatch/erigon-lib/common"
|
||||
"github.com/ledgerwatch/erigon/cl/fork"
|
||||
"github.com/ledgerwatch/erigon/cl/gossip"
|
||||
"github.com/ledgerwatch/log/v3"
|
||||
pubsub "github.com/libp2p/go-libp2p-pubsub"
|
||||
"github.com/libp2p/go-libp2p/core/peer"
|
||||
@ -36,50 +37,38 @@ var (
|
||||
|
||||
const SSZSnappyCodec = "ssz_snappy"
|
||||
|
||||
type TopicName string
|
||||
|
||||
const (
|
||||
BeaconBlockTopic TopicName = "beacon_block"
|
||||
BeaconAggregateAndProofTopic TopicName = "beacon_aggregate_and_proof"
|
||||
VoluntaryExitTopic TopicName = "voluntary_exit"
|
||||
ProposerSlashingTopic TopicName = "proposer_slashing"
|
||||
AttesterSlashingTopic TopicName = "attester_slashing"
|
||||
BlsToExecutionChangeTopic TopicName = "bls_to_execution_change"
|
||||
BlobSidecarTopic TopicName = "blob_sidecar_%d" // This topic needs an index
|
||||
)
|
||||
|
||||
type GossipTopic struct {
|
||||
Name TopicName
|
||||
Name string
|
||||
CodecStr string
|
||||
}
|
||||
|
||||
var BeaconBlockSsz = GossipTopic{
|
||||
Name: BeaconBlockTopic,
|
||||
Name: gossip.TopicNameBeaconBlock,
|
||||
CodecStr: SSZSnappyCodec,
|
||||
}
|
||||
|
||||
var BeaconAggregateAndProofSsz = GossipTopic{
|
||||
Name: BeaconAggregateAndProofTopic,
|
||||
Name: gossip.TopicNameBeaconAggregateAndProof,
|
||||
CodecStr: SSZSnappyCodec,
|
||||
}
|
||||
|
||||
var VoluntaryExitSsz = GossipTopic{
|
||||
Name: VoluntaryExitTopic,
|
||||
Name: gossip.TopicNameVoluntaryExit,
|
||||
CodecStr: SSZSnappyCodec,
|
||||
}
|
||||
|
||||
var ProposerSlashingSsz = GossipTopic{
|
||||
Name: ProposerSlashingTopic,
|
||||
Name: gossip.TopicNameProposerSlashing,
|
||||
CodecStr: SSZSnappyCodec,
|
||||
}
|
||||
|
||||
var AttesterSlashingSsz = GossipTopic{
|
||||
Name: AttesterSlashingTopic,
|
||||
Name: gossip.TopicNameAttesterSlashing,
|
||||
CodecStr: SSZSnappyCodec,
|
||||
}
|
||||
|
||||
var BlsToExecutionChangeSsz = GossipTopic{
|
||||
Name: BlsToExecutionChangeTopic,
|
||||
Name: gossip.TopicNameBlsToExecutionChange,
|
||||
CodecStr: SSZSnappyCodec,
|
||||
}
|
||||
|
||||
@ -105,7 +94,7 @@ func NewGossipManager(
|
||||
func GossipSidecarTopics(maxBlobs uint64) (ret []GossipTopic) {
|
||||
for i := uint64(0); i < maxBlobs; i++ {
|
||||
ret = append(ret, GossipTopic{
|
||||
Name: TopicName(fmt.Sprintf(string(BlobSidecarTopic), i)),
|
||||
Name: gossip.TopicNameBlobSidecar(int(i)),
|
||||
CodecStr: SSZSnappyCodec,
|
||||
})
|
||||
}
|
||||
@ -204,7 +193,7 @@ func (s *Sentinel) SubscribeGossip(topic GossipTopic, opts ...pubsub.TopicOpt) (
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to join topic %s, err=%w", path, err)
|
||||
}
|
||||
topicScoreParams := s.topicScoreParams(string(topic.Name))
|
||||
topicScoreParams := s.topicScoreParams(topic.Name)
|
||||
if topicScoreParams != nil {
|
||||
sub.topic.SetScoreParams(topicScoreParams)
|
||||
}
|
||||
@ -225,7 +214,7 @@ func (s *Sentinel) Unsubscribe(topic GossipTopic, opts ...pubsub.TopicOpt) (err
|
||||
|
||||
func (s *Sentinel) topicScoreParams(topic string) *pubsub.TopicScoreParams {
|
||||
switch {
|
||||
case strings.Contains(topic, string(BeaconBlockTopic)):
|
||||
case strings.Contains(topic, gossip.TopicNameBeaconBlock):
|
||||
return s.defaultBlockTopicParams()
|
||||
/*case strings.Contains(topic, GossipAggregateAndProofMessage):
|
||||
return defaultAggregateTopicParams(activeValidators), nil
|
||||
@ -335,13 +324,13 @@ func (s *GossipSubscription) Close() {
|
||||
|
||||
type GossipMessage struct {
|
||||
From peer.ID
|
||||
Topic TopicName
|
||||
TopicName string
|
||||
Data []byte
|
||||
}
|
||||
|
||||
// this is a helper to begin running the gossip subscription.
|
||||
// function should not be used outside of the constructor for gossip subscription
|
||||
func (s *GossipSubscription) run(ctx context.Context, sub *pubsub.Subscription, topic string) {
|
||||
func (s *GossipSubscription) run(ctx context.Context, sub *pubsub.Subscription, topicName string) {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Error("[Sentinel Gossip] Message Handler Crashed", "err", r)
|
||||
@ -359,7 +348,7 @@ func (s *GossipSubscription) run(ctx context.Context, sub *pubsub.Subscription,
|
||||
if errors.Is(err, context.Canceled) {
|
||||
return
|
||||
}
|
||||
log.Warn("[Sentinel] fail to decode gossip packet", "err", err, "topic", topic)
|
||||
log.Warn("[Sentinel] fail to decode gossip packet", "err", err, "topicName", topicName)
|
||||
return
|
||||
}
|
||||
if msg.GetFrom() == s.host {
|
||||
@ -367,7 +356,7 @@ func (s *GossipSubscription) run(ctx context.Context, sub *pubsub.Subscription,
|
||||
}
|
||||
s.ch <- &GossipMessage{
|
||||
From: msg.GetFrom(),
|
||||
Topic: TopicName(topic),
|
||||
TopicName: topicName,
|
||||
Data: common.Copy(msg.Data),
|
||||
}
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ func TestSentinelGossipOnHardFork(t *testing.T) {
|
||||
|
||||
ans := <-ch
|
||||
require.Equal(t, ans.Data, msg)
|
||||
previousTopic = string(ans.Topic)
|
||||
previousTopic = ans.TopicName
|
||||
|
||||
bcfg.AltairForkEpoch = clparams.MainnetBeaconConfig.AltairForkEpoch
|
||||
bcfg.InitializeForkSchedule()
|
||||
@ -94,12 +94,12 @@ func TestSentinelGossipOnHardFork(t *testing.T) {
|
||||
msg = []byte("hello1")
|
||||
go func() {
|
||||
// delay to make sure that the connection is established
|
||||
sub1 = sentinel1.subManager.GetMatchingSubscription(string(BeaconBlockSsz.Name))
|
||||
sub1 = sentinel1.subManager.GetMatchingSubscription(BeaconBlockSsz.Name)
|
||||
sub1.Publish(msg)
|
||||
}()
|
||||
|
||||
ans = <-ch
|
||||
require.Equal(t, ans.Data, msg)
|
||||
require.NotEqual(t, previousTopic, ans.Topic)
|
||||
require.NotEqual(t, previousTopic, ans.TopicName)
|
||||
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
"sync"
|
||||
|
||||
"github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel"
|
||||
"github.com/ledgerwatch/erigon/cl/gossip"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -13,9 +13,8 @@ const (
|
||||
|
||||
type gossipObject struct {
|
||||
data []byte // gossip data
|
||||
t sentinel.GossipType // determine which gossip message we are notifying of
|
||||
t string // determine which gossip message we are notifying of
|
||||
pid string // pid is the peer id of the sender
|
||||
blobIndex *uint32 // index of the blob
|
||||
}
|
||||
|
||||
type gossipNotifier struct {
|
||||
@ -30,7 +29,7 @@ func newGossipNotifier() *gossipNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
func (g *gossipNotifier) notify(t sentinel.GossipType, data []byte, pid string) {
|
||||
func (g *gossipNotifier) notify(t string, data []byte, pid string) {
|
||||
g.mu.Lock()
|
||||
defer g.mu.Unlock()
|
||||
|
||||
@ -43,18 +42,15 @@ func (g *gossipNotifier) notify(t sentinel.GossipType, data []byte, pid string)
|
||||
}
|
||||
}
|
||||
|
||||
func (g *gossipNotifier) notifyBlob(t sentinel.GossipType, data []byte, pid string, blobIndex int) {
|
||||
func (g *gossipNotifier) notifyBlob(data []byte, pid string, blobIndex int) {
|
||||
g.mu.Lock()
|
||||
defer g.mu.Unlock()
|
||||
|
||||
index := new(uint32)
|
||||
*index = uint32(blobIndex)
|
||||
for _, ch := range g.notifiers {
|
||||
ch <- gossipObject{
|
||||
data: data,
|
||||
t: t,
|
||||
t: gossip.TopicNameBlobSidecar(blobIndex),
|
||||
pid: pid,
|
||||
blobIndex: index,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,6 @@ package service
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
@ -13,6 +12,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/ledgerwatch/erigon-lib/diagnostics"
|
||||
"github.com/ledgerwatch/erigon/cl/gossip"
|
||||
"github.com/ledgerwatch/erigon/cl/sentinel"
|
||||
"github.com/ledgerwatch/erigon/cl/sentinel/httpreqresp"
|
||||
|
||||
@ -50,7 +50,7 @@ func NewSentinelServer(ctx context.Context, sentinel *sentinel.Sentinel, logger
|
||||
// extractBlobSideCarIndex takes a topic and extract the blob sidecar
|
||||
func extractBlobSideCarIndex(topic string) int {
|
||||
// compute the index prefixless
|
||||
startIndex := strings.Index(topic, string(sentinel.BlobSidecarTopic)) + len(sentinel.BlobSidecarTopic)
|
||||
startIndex := strings.Index(topic, gossip.TopicNamePrefixBlobSidecar) + len(gossip.TopicNamePrefixBlobSidecar)
|
||||
endIndex := strings.Index(topic[:startIndex], "/")
|
||||
blobIndex, err := strconv.Atoi(topic[startIndex:endIndex])
|
||||
if err != nil {
|
||||
@ -77,29 +77,31 @@ func (s *SentinelServer) PublishGossip(_ context.Context, msg *sentinelrpc.Gossi
|
||||
// Snappify payload before sending it to gossip
|
||||
compressedData := utils.CompressSnappy(msg.Data)
|
||||
|
||||
s.trackPeerStatistics(msg.GetPeer().Pid, false, msg.Type.String(), "unknown", len(compressedData))
|
||||
s.trackPeerStatistics(msg.GetPeer().Pid, false, msg.Name, "unknown", len(compressedData))
|
||||
|
||||
var subscription *sentinel.GossipSubscription
|
||||
|
||||
switch msg.Type {
|
||||
case sentinelrpc.GossipType_BeaconBlockGossipType:
|
||||
subscription = manager.GetMatchingSubscription(string(sentinel.BeaconBlockTopic))
|
||||
case sentinelrpc.GossipType_AggregateAndProofGossipType:
|
||||
subscription = manager.GetMatchingSubscription(string(sentinel.BeaconAggregateAndProofTopic))
|
||||
case sentinelrpc.GossipType_VoluntaryExitGossipType:
|
||||
subscription = manager.GetMatchingSubscription(string(sentinel.VoluntaryExitTopic))
|
||||
case sentinelrpc.GossipType_ProposerSlashingGossipType:
|
||||
subscription = manager.GetMatchingSubscription(string(sentinel.ProposerSlashingTopic))
|
||||
case sentinelrpc.GossipType_AttesterSlashingGossipType:
|
||||
subscription = manager.GetMatchingSubscription(string(sentinel.AttesterSlashingTopic))
|
||||
case sentinelrpc.GossipType_BlobSidecarType:
|
||||
if msg.BlobIndex == nil {
|
||||
return &sentinelrpc.EmptyMessage{}, errors.New("cannot publish sidecar blob with no index")
|
||||
}
|
||||
subscription = manager.GetMatchingSubscription(fmt.Sprintf(string(sentinel.BlobSidecarTopic), *msg.BlobIndex))
|
||||
// TODO: this is still wrong... we should build a subscription here to match exactly, meaning that downstream consumers should be
|
||||
// in charge of keeping track of fork id.
|
||||
switch msg.Name {
|
||||
case gossip.TopicNameBeaconBlock:
|
||||
subscription = manager.GetMatchingSubscription(msg.Name)
|
||||
case gossip.TopicNameBeaconAggregateAndProof:
|
||||
subscription = manager.GetMatchingSubscription(msg.Name)
|
||||
case gossip.TopicNameVoluntaryExit:
|
||||
subscription = manager.GetMatchingSubscription(msg.Name)
|
||||
case gossip.TopicNameProposerSlashing:
|
||||
subscription = manager.GetMatchingSubscription(msg.Name)
|
||||
case gossip.TopicNameAttesterSlashing:
|
||||
subscription = manager.GetMatchingSubscription(msg.Name)
|
||||
default:
|
||||
switch {
|
||||
case gossip.IsTopicBlobSidecar(msg.Name):
|
||||
subscription = manager.GetMatchingSubscription(msg.Name)
|
||||
default:
|
||||
return &sentinelrpc.EmptyMessage{}, nil
|
||||
}
|
||||
}
|
||||
if subscription == nil {
|
||||
return &sentinelrpc.EmptyMessage{}, nil
|
||||
}
|
||||
@ -122,11 +124,10 @@ func (s *SentinelServer) SubscribeGossip(_ *sentinelrpc.EmptyMessage, stream sen
|
||||
case packet := <-ch:
|
||||
if err := stream.Send(&sentinelrpc.GossipData{
|
||||
Data: packet.data,
|
||||
Type: packet.t,
|
||||
Name: packet.t,
|
||||
Peer: &sentinelrpc.Peer{
|
||||
Pid: packet.pid,
|
||||
},
|
||||
BlobIndex: packet.blobIndex,
|
||||
}); err != nil {
|
||||
s.logger.Warn("[Sentinel] Could not relay gossip packet", "reason", err)
|
||||
}
|
||||
@ -274,10 +275,10 @@ func (s *SentinelServer) ListenToGossip() {
|
||||
|
||||
func (s *SentinelServer) handleGossipPacket(pkt *sentinel.GossipMessage) error {
|
||||
var err error
|
||||
s.logger.Trace("[Sentinel Gossip] Received Packet", "topic", pkt.Topic)
|
||||
s.logger.Trace("[Sentinel Gossip] Received Packet", "topic", pkt.TopicName)
|
||||
|
||||
data := pkt.Data
|
||||
topic := string(pkt.Topic)
|
||||
topic := pkt.TopicName
|
||||
// If we use snappy codec then decompress it accordingly.
|
||||
if strings.Contains(topic, sentinel.SSZSnappyCodec) {
|
||||
data, err = utils.DecompressSnappy(data)
|
||||
@ -294,21 +295,21 @@ func (s *SentinelServer) handleGossipPacket(pkt *sentinel.GossipMessage) error {
|
||||
s.trackPeerStatistics(string(textPid), true, msgType, msgCap, len(data))
|
||||
|
||||
// Check to which gossip it belongs to.
|
||||
if strings.Contains(topic, string(sentinel.BeaconBlockTopic)) {
|
||||
s.gossipNotifier.notify(sentinelrpc.GossipType_BeaconBlockGossipType, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(sentinel.BeaconAggregateAndProofTopic)) {
|
||||
s.gossipNotifier.notify(sentinelrpc.GossipType_AggregateAndProofGossipType, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(sentinel.VoluntaryExitTopic)) {
|
||||
s.gossipNotifier.notify(sentinelrpc.GossipType_VoluntaryExitGossipType, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(sentinel.ProposerSlashingTopic)) {
|
||||
s.gossipNotifier.notify(sentinelrpc.GossipType_ProposerSlashingGossipType, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(sentinel.AttesterSlashingTopic)) {
|
||||
s.gossipNotifier.notify(sentinelrpc.GossipType_AttesterSlashingGossipType, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(sentinel.BlsToExecutionChangeTopic)) {
|
||||
s.gossipNotifier.notify(sentinelrpc.GossipType_BlsToExecutionChangeGossipType, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(sentinel.BlobSidecarTopic)) {
|
||||
if strings.Contains(topic, string(gossip.TopicNameBeaconBlock)) {
|
||||
s.gossipNotifier.notify(gossip.TopicNameBeaconBlock, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(gossip.TopicNameBeaconAggregateAndProof)) {
|
||||
s.gossipNotifier.notify(gossip.TopicNameBeaconAggregateAndProof, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(gossip.TopicNameVoluntaryExit)) {
|
||||
s.gossipNotifier.notify(gossip.TopicNameVoluntaryExit, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(gossip.TopicNameProposerSlashing)) {
|
||||
s.gossipNotifier.notify(gossip.TopicNameProposerSlashing, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(gossip.TopicNameAttesterSlashing)) {
|
||||
s.gossipNotifier.notify(gossip.TopicNameAttesterSlashing, data, string(textPid))
|
||||
} else if strings.Contains(topic, string(gossip.TopicNameBlsToExecutionChange)) {
|
||||
s.gossipNotifier.notify(gossip.TopicNameBlsToExecutionChange, data, string(textPid))
|
||||
} else if gossip.IsTopicBlobSidecar(topic) {
|
||||
// extract the index
|
||||
s.gossipNotifier.notifyBlob(sentinelrpc.GossipType_BlobSidecarType, data, string(textPid), extractBlobSideCarIndex(topic))
|
||||
s.gossipNotifier.notifyBlob(data, string(textPid), extractBlobSideCarIndex(topic))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ const (
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
type DownloaderClient interface {
|
||||
// Erigon "download once" - means restart/upgrade will not download files (and will be fast)
|
||||
// Erigon "download once" - means restart/upgrade/downgrade will not download files (and will be fast)
|
||||
// After "download once" - Erigon will produce and seed new files
|
||||
// Downloader will able: seed new files (already existing on FS), download uncomplete parts of existing files (if Verify found some bad parts)
|
||||
ProhibitNewDownloads(ctx context.Context, in *ProhibitNewDownloadsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||
@ -101,7 +101,7 @@ func (c *downloaderClient) Stats(ctx context.Context, in *StatsRequest, opts ...
|
||||
// All implementations must embed UnimplementedDownloaderServer
|
||||
// for forward compatibility
|
||||
type DownloaderServer interface {
|
||||
// Erigon "download once" - means restart/upgrade will not download files (and will be fast)
|
||||
// Erigon "download once" - means restart/upgrade/downgrade will not download files (and will be fast)
|
||||
// After "download once" - Erigon will produce and seed new files
|
||||
// Downloader will able: seed new files (already existing on FS), download uncomplete parts of existing files (if Verify found some bad parts)
|
||||
ProhibitNewDownloads(context.Context, *ProhibitNewDownloadsRequest) (*emptypb.Empty, error)
|
||||
|
@ -21,68 +21,6 @@ const (
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
type GossipType int32
|
||||
|
||||
const (
|
||||
// Global gossip topics.
|
||||
GossipType_BeaconBlockGossipType GossipType = 0
|
||||
GossipType_AggregateAndProofGossipType GossipType = 1
|
||||
GossipType_VoluntaryExitGossipType GossipType = 2
|
||||
GossipType_ProposerSlashingGossipType GossipType = 3
|
||||
GossipType_AttesterSlashingGossipType GossipType = 4
|
||||
GossipType_BlobSidecarType GossipType = 5
|
||||
GossipType_BlsToExecutionChangeGossipType GossipType = 6
|
||||
)
|
||||
|
||||
// Enum value maps for GossipType.
|
||||
var (
|
||||
GossipType_name = map[int32]string{
|
||||
0: "BeaconBlockGossipType",
|
||||
1: "AggregateAndProofGossipType",
|
||||
2: "VoluntaryExitGossipType",
|
||||
3: "ProposerSlashingGossipType",
|
||||
4: "AttesterSlashingGossipType",
|
||||
5: "BlobSidecarType",
|
||||
6: "BlsToExecutionChangeGossipType",
|
||||
}
|
||||
GossipType_value = map[string]int32{
|
||||
"BeaconBlockGossipType": 0,
|
||||
"AggregateAndProofGossipType": 1,
|
||||
"VoluntaryExitGossipType": 2,
|
||||
"ProposerSlashingGossipType": 3,
|
||||
"AttesterSlashingGossipType": 4,
|
||||
"BlobSidecarType": 5,
|
||||
"BlsToExecutionChangeGossipType": 6,
|
||||
}
|
||||
)
|
||||
|
||||
func (x GossipType) Enum() *GossipType {
|
||||
p := new(GossipType)
|
||||
*p = x
|
||||
return p
|
||||
}
|
||||
|
||||
func (x GossipType) String() string {
|
||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||
}
|
||||
|
||||
func (GossipType) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_p2psentinel_sentinel_proto_enumTypes[0].Descriptor()
|
||||
}
|
||||
|
||||
func (GossipType) Type() protoreflect.EnumType {
|
||||
return &file_p2psentinel_sentinel_proto_enumTypes[0]
|
||||
}
|
||||
|
||||
func (x GossipType) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use GossipType.Descriptor instead.
|
||||
func (GossipType) EnumDescriptor() ([]byte, []int) {
|
||||
return file_p2psentinel_sentinel_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
type EmptyMessage struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -174,9 +112,8 @@ type GossipData struct {
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` // SSZ encoded data
|
||||
Type GossipType `protobuf:"varint,2,opt,name=type,proto3,enum=sentinel.GossipType" json:"type,omitempty"`
|
||||
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
||||
Peer *Peer `protobuf:"bytes,3,opt,name=peer,proto3,oneof" json:"peer,omitempty"`
|
||||
BlobIndex *uint32 `protobuf:"varint,4,opt,name=blob_index,json=blobIndex,proto3,oneof" json:"blob_index,omitempty"` // Blob identifier for EIP4844
|
||||
}
|
||||
|
||||
func (x *GossipData) Reset() {
|
||||
@ -218,11 +155,11 @@ func (x *GossipData) GetData() []byte {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *GossipData) GetType() GossipType {
|
||||
func (x *GossipData) GetName() string {
|
||||
if x != nil {
|
||||
return x.Type
|
||||
return x.Name
|
||||
}
|
||||
return GossipType_BeaconBlockGossipType
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *GossipData) GetPeer() *Peer {
|
||||
@ -232,13 +169,6 @@ func (x *GossipData) GetPeer() *Peer {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *GossipData) GetBlobIndex() uint32 {
|
||||
if x != nil && x.BlobIndex != nil {
|
||||
return *x.BlobIndex
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type Status struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -492,92 +422,73 @@ var file_p2psentinel_sentinel_proto_rawDesc = []byte{
|
||||
0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0e, 0x0a, 0x0c, 0x45, 0x6d, 0x70,
|
||||
0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x18, 0x0a, 0x04, 0x50, 0x65, 0x65,
|
||||
0x72, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
|
||||
0x70, 0x69, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61,
|
||||
0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
|
||||
0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e,
|
||||
0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
|
||||
0x12, 0x27, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
|
||||
0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00,
|
||||
0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x6c, 0x6f,
|
||||
0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52,
|
||||
0x09, 0x62, 0x6c, 0x6f, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a,
|
||||
0x05, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f,
|
||||
0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xcd, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||
0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x67, 0x65, 0x73,
|
||||
0x74, 0x12, 0x32, 0x0a, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x72,
|
||||
0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65,
|
||||
0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65,
|
||||
0x64, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a,
|
||||
0x65, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e,
|
||||
0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x28,
|
||||
0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x08,
|
||||
0x68, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64,
|
||||
0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x68, 0x65, 0x61,
|
||||
0x64, 0x53, 0x6c, 0x6f, 0x74, 0x22, 0x23, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65,
|
||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74,
|
||||
0x70, 0x69, 0x64, 0x22, 0x66, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74,
|
||||
0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
|
||||
0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x65, 0x65,
|
||||
0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e,
|
||||
0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x88,
|
||||
0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x22, 0xcd, 0x01, 0x0a, 0x06,
|
||||
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x64,
|
||||
0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x6f, 0x72,
|
||||
0x6b, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c,
|
||||
0x69, 0x7a, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0d, 0x66, 0x69,
|
||||
0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x66,
|
||||
0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45,
|
||||
0x70, 0x6f, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x72, 0x6f, 0x6f,
|
||||
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
|
||||
0x48, 0x32, 0x35, 0x36, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x1b,
|
||||
0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||
0x04, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x22, 0x23, 0x0a, 0x09, 0x50,
|
||||
0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12,
|
||||
0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64,
|
||||
0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x5c, 0x0a, 0x0c, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74,
|
||||
0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f,
|
||||
0x70, 0x69, 0x63, 0x22, 0x5c, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44,
|
||||
0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x22, 0x0a,
|
||||
0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65,
|
||||
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65,
|
||||
0x72, 0x2a, 0xde, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65,
|
||||
0x12, 0x19, 0x0a, 0x15, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47,
|
||||
0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41,
|
||||
0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66,
|
||||
0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17,
|
||||
0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x47, 0x6f, 0x73,
|
||||
0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x72, 0x6f,
|
||||
0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x47, 0x6f, 0x73,
|
||||
0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x74, 0x74,
|
||||
0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x47, 0x6f, 0x73,
|
||||
0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x6c, 0x6f,
|
||||
0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x22,
|
||||
0x0a, 0x1e, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65,
|
||||
0x10, 0x06, 0x32, 0x90, 0x04, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x12,
|
||||
0x41, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x47, 0x6f, 0x73, 0x73,
|
||||
0x69, 0x70, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d,
|
||||
0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x6e,
|
||||
0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61,
|
||||
0x30, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x15, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61,
|
||||
0x12, 0x35, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x2e,
|
||||
0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a,
|
||||
0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
|
||||
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x50, 0x65,
|
||||
0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, 0x73, 0x65,
|
||||
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x12, 0x31, 0x0a, 0x07, 0x42, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65,
|
||||
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65,
|
||||
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73,
|
||||
0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72,
|
||||
0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x72,
|
||||
0x72, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65,
|
||||
0x72, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x32, 0x90, 0x04, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x74,
|
||||
0x69, 0x6e, 0x65, 0x6c, 0x12, 0x41, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
|
||||
0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e,
|
||||
0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a,
|
||||
0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69,
|
||||
0x70, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65,
|
||||
0x6c, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e,
|
||||
0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74,
|
||||
0x75, 0x73, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74,
|
||||
0x61, 0x74, 0x75, 0x73, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e,
|
||||
0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08,
|
||||
0x47, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
||||
0x1a, 0x13, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x42, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72,
|
||||
0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72,
|
||||
0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
||||
0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61,
|
||||
0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
|
||||
0x12, 0x34, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e,
|
||||
0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16,
|
||||
0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d,
|
||||
0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73,
|
||||
0x68, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e,
|
||||
0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e,
|
||||
0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x55, 0x6e, 0x62, 0x61,
|
||||
0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c,
|
||||
0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c,
|
||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a,
|
||||
0x0c, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e,
|
||||
0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e,
|
||||
0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65,
|
||||
0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x15, 0x5a, 0x13, 0x2e, 0x2f, 0x73, 0x65, 0x6e, 0x74, 0x69,
|
||||
0x6e, 0x65, 0x6c, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x62, 0x06, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x33,
|
||||
0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50,
|
||||
0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50,
|
||||
0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x50,
|
||||
0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x14, 0x2e, 0x73,
|
||||
0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61,
|
||||
0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d,
|
||||
0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x15, 0x5a, 0x13, 0x2e, 0x2f,
|
||||
0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65,
|
||||
0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -592,48 +503,45 @@ func file_p2psentinel_sentinel_proto_rawDescGZIP() []byte {
|
||||
return file_p2psentinel_sentinel_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_p2psentinel_sentinel_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
||||
var file_p2psentinel_sentinel_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
|
||||
var file_p2psentinel_sentinel_proto_goTypes = []interface{}{
|
||||
(GossipType)(0), // 0: sentinel.GossipType
|
||||
(*EmptyMessage)(nil), // 1: sentinel.EmptyMessage
|
||||
(*Peer)(nil), // 2: sentinel.Peer
|
||||
(*GossipData)(nil), // 3: sentinel.GossipData
|
||||
(*Status)(nil), // 4: sentinel.Status
|
||||
(*PeerCount)(nil), // 5: sentinel.PeerCount
|
||||
(*RequestData)(nil), // 6: sentinel.RequestData
|
||||
(*ResponseData)(nil), // 7: sentinel.ResponseData
|
||||
(*types.H256)(nil), // 8: types.H256
|
||||
(*EmptyMessage)(nil), // 0: sentinel.EmptyMessage
|
||||
(*Peer)(nil), // 1: sentinel.Peer
|
||||
(*GossipData)(nil), // 2: sentinel.GossipData
|
||||
(*Status)(nil), // 3: sentinel.Status
|
||||
(*PeerCount)(nil), // 4: sentinel.PeerCount
|
||||
(*RequestData)(nil), // 5: sentinel.RequestData
|
||||
(*ResponseData)(nil), // 6: sentinel.ResponseData
|
||||
(*types.H256)(nil), // 7: types.H256
|
||||
}
|
||||
var file_p2psentinel_sentinel_proto_depIdxs = []int32{
|
||||
0, // 0: sentinel.GossipData.type:type_name -> sentinel.GossipType
|
||||
2, // 1: sentinel.GossipData.peer:type_name -> sentinel.Peer
|
||||
8, // 2: sentinel.Status.finalized_root:type_name -> types.H256
|
||||
8, // 3: sentinel.Status.head_root:type_name -> types.H256
|
||||
2, // 4: sentinel.ResponseData.peer:type_name -> sentinel.Peer
|
||||
1, // 5: sentinel.Sentinel.SubscribeGossip:input_type -> sentinel.EmptyMessage
|
||||
6, // 6: sentinel.Sentinel.SendRequest:input_type -> sentinel.RequestData
|
||||
4, // 7: sentinel.Sentinel.SetStatus:input_type -> sentinel.Status
|
||||
1, // 8: sentinel.Sentinel.GetPeers:input_type -> sentinel.EmptyMessage
|
||||
2, // 9: sentinel.Sentinel.BanPeer:input_type -> sentinel.Peer
|
||||
2, // 10: sentinel.Sentinel.UnbanPeer:input_type -> sentinel.Peer
|
||||
2, // 11: sentinel.Sentinel.PenalizePeer:input_type -> sentinel.Peer
|
||||
2, // 12: sentinel.Sentinel.RewardPeer:input_type -> sentinel.Peer
|
||||
3, // 13: sentinel.Sentinel.PublishGossip:input_type -> sentinel.GossipData
|
||||
3, // 14: sentinel.Sentinel.SubscribeGossip:output_type -> sentinel.GossipData
|
||||
7, // 15: sentinel.Sentinel.SendRequest:output_type -> sentinel.ResponseData
|
||||
1, // 16: sentinel.Sentinel.SetStatus:output_type -> sentinel.EmptyMessage
|
||||
5, // 17: sentinel.Sentinel.GetPeers:output_type -> sentinel.PeerCount
|
||||
1, // 18: sentinel.Sentinel.BanPeer:output_type -> sentinel.EmptyMessage
|
||||
1, // 19: sentinel.Sentinel.UnbanPeer:output_type -> sentinel.EmptyMessage
|
||||
1, // 20: sentinel.Sentinel.PenalizePeer:output_type -> sentinel.EmptyMessage
|
||||
1, // 21: sentinel.Sentinel.RewardPeer:output_type -> sentinel.EmptyMessage
|
||||
1, // 22: sentinel.Sentinel.PublishGossip:output_type -> sentinel.EmptyMessage
|
||||
14, // [14:23] is the sub-list for method output_type
|
||||
5, // [5:14] is the sub-list for method input_type
|
||||
5, // [5:5] is the sub-list for extension type_name
|
||||
5, // [5:5] is the sub-list for extension extendee
|
||||
0, // [0:5] is the sub-list for field type_name
|
||||
1, // 0: sentinel.GossipData.peer:type_name -> sentinel.Peer
|
||||
7, // 1: sentinel.Status.finalized_root:type_name -> types.H256
|
||||
7, // 2: sentinel.Status.head_root:type_name -> types.H256
|
||||
1, // 3: sentinel.ResponseData.peer:type_name -> sentinel.Peer
|
||||
0, // 4: sentinel.Sentinel.SubscribeGossip:input_type -> sentinel.EmptyMessage
|
||||
5, // 5: sentinel.Sentinel.SendRequest:input_type -> sentinel.RequestData
|
||||
3, // 6: sentinel.Sentinel.SetStatus:input_type -> sentinel.Status
|
||||
0, // 7: sentinel.Sentinel.GetPeers:input_type -> sentinel.EmptyMessage
|
||||
1, // 8: sentinel.Sentinel.BanPeer:input_type -> sentinel.Peer
|
||||
1, // 9: sentinel.Sentinel.UnbanPeer:input_type -> sentinel.Peer
|
||||
1, // 10: sentinel.Sentinel.PenalizePeer:input_type -> sentinel.Peer
|
||||
1, // 11: sentinel.Sentinel.RewardPeer:input_type -> sentinel.Peer
|
||||
2, // 12: sentinel.Sentinel.PublishGossip:input_type -> sentinel.GossipData
|
||||
2, // 13: sentinel.Sentinel.SubscribeGossip:output_type -> sentinel.GossipData
|
||||
6, // 14: sentinel.Sentinel.SendRequest:output_type -> sentinel.ResponseData
|
||||
0, // 15: sentinel.Sentinel.SetStatus:output_type -> sentinel.EmptyMessage
|
||||
4, // 16: sentinel.Sentinel.GetPeers:output_type -> sentinel.PeerCount
|
||||
0, // 17: sentinel.Sentinel.BanPeer:output_type -> sentinel.EmptyMessage
|
||||
0, // 18: sentinel.Sentinel.UnbanPeer:output_type -> sentinel.EmptyMessage
|
||||
0, // 19: sentinel.Sentinel.PenalizePeer:output_type -> sentinel.EmptyMessage
|
||||
0, // 20: sentinel.Sentinel.RewardPeer:output_type -> sentinel.EmptyMessage
|
||||
0, // 21: sentinel.Sentinel.PublishGossip:output_type -> sentinel.EmptyMessage
|
||||
13, // [13:22] is the sub-list for method output_type
|
||||
4, // [4:13] is the sub-list for method input_type
|
||||
4, // [4:4] is the sub-list for extension type_name
|
||||
4, // [4:4] is the sub-list for extension extendee
|
||||
0, // [0:4] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_p2psentinel_sentinel_proto_init() }
|
||||
@ -733,14 +641,13 @@ func file_p2psentinel_sentinel_proto_init() {
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_p2psentinel_sentinel_proto_rawDesc,
|
||||
NumEnums: 1,
|
||||
NumEnums: 0,
|
||||
NumMessages: 7,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
GoTypes: file_p2psentinel_sentinel_proto_goTypes,
|
||||
DependencyIndexes: file_p2psentinel_sentinel_proto_depIdxs,
|
||||
EnumInfos: file_p2psentinel_sentinel_proto_enumTypes,
|
||||
MessageInfos: file_p2psentinel_sentinel_proto_msgTypes,
|
||||
}.Build()
|
||||
File_p2psentinel_sentinel_proto = out.File
|
||||
|
2
go.mod
2
go.mod
@ -5,7 +5,6 @@ go 1.20
|
||||
require (
|
||||
github.com/erigontech/mdbx-go v0.27.21
|
||||
github.com/erigontech/silkworm-go v0.10.0
|
||||
github.com/ledgerwatch/erigon-lib v1.0.0
|
||||
github.com/ledgerwatch/log/v3 v3.9.0
|
||||
github.com/ledgerwatch/secp256k1 v1.0.0
|
||||
)
|
||||
@ -58,6 +57,7 @@ require (
|
||||
github.com/json-iterator/go v1.1.12
|
||||
github.com/julienschmidt/httprouter v1.3.0
|
||||
github.com/klauspost/compress v1.17.3
|
||||
github.com/ledgerwatch/erigon-lib v1.0.0
|
||||
github.com/libp2p/go-libp2p v0.31.0
|
||||
github.com/libp2p/go-libp2p-mplex v0.9.0
|
||||
github.com/libp2p/go-libp2p-pubsub v0.9.3
|
||||
|
Loading…
Reference in New Issue
Block a user