p2p

package
v1.9.7-0...-06ccbb3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2025 License: GPL-3.0 Imports: 24 Imported by: 0

Documentation

Overview

Package p2p is a generated GoMock package.

Index

Constants

This section is empty.

Variables

View Source
var ErrPeerNotFound = errors.New("peer not found")

Functions

func PreservingPeerShuffle

func PreservingPeerShuffle(_ []*PeerId)

func RandPeerShuffle

func RandPeerShuffle(peerIds []*PeerId)

Types

type DecodedInboundMessage

type DecodedInboundMessage[TPacket any] struct {
	*sentry.InboundMessage
	Decoded TPacket
	PeerId  *PeerId
}

type ErrIncompleteHeaders

type ErrIncompleteHeaders struct {
	// contains filtered or unexported fields
}

func (ErrIncompleteHeaders) Error

func (e ErrIncompleteHeaders) Error() string

func (ErrIncompleteHeaders) Is

func (e ErrIncompleteHeaders) Is(err error) bool

func (ErrIncompleteHeaders) LowestMissingBlockNum

func (e ErrIncompleteHeaders) LowestMissingBlockNum() uint64

type ErrInvalidFetchHeadersRange

type ErrInvalidFetchHeadersRange struct {
	// contains filtered or unexported fields
}

func (ErrInvalidFetchHeadersRange) Error

func (ErrInvalidFetchHeadersRange) Is

type ErrMissingBodies

type ErrMissingBodies struct {
	// contains filtered or unexported fields
}

func NewErrMissingBodies

func NewErrMissingBodies(headers []*types.Header) *ErrMissingBodies

func (ErrMissingBodies) Error

func (e ErrMissingBodies) Error() string

func (ErrMissingBodies) Is

func (e ErrMissingBodies) Is(err error) bool

func (ErrMissingBodies) LowestMissingBlockNum

func (e ErrMissingBodies) LowestMissingBlockNum() (uint64, bool)

type ErrNonSequentialHeaderNumbers

type ErrNonSequentialHeaderNumbers struct {
	// contains filtered or unexported fields
}

func (ErrNonSequentialHeaderNumbers) Error

func (ErrNonSequentialHeaderNumbers) Is

type ErrTooManyBodies

type ErrTooManyBodies struct {
	// contains filtered or unexported fields
}

func (ErrTooManyBodies) Error

func (e ErrTooManyBodies) Error() string

func (ErrTooManyBodies) Is

func (e ErrTooManyBodies) Is(err error) bool

type ErrTooManyHeaders

type ErrTooManyHeaders struct {
	// contains filtered or unexported fields
}

func (ErrTooManyHeaders) Error

func (e ErrTooManyHeaders) Error() string

func (ErrTooManyHeaders) Is

func (e ErrTooManyHeaders) Is(err error) bool

type Fetcher

type Fetcher interface {
	// FetchHeaders fetches [start,end) headers from a peer. Blocks until data is received.
	FetchHeaders(ctx context.Context, start uint64, end uint64, peerId *PeerId) (FetcherResponse[[]*types.Header], error)
	// FetchBodies fetches block bodies for the given headers from a peer. Blocks until data is received.
	FetchBodies(ctx context.Context, headers []*types.Header, peerId *PeerId) (FetcherResponse[[]*types.Body], error)
	// FetchBlocks fetches headers and bodies for a given [start, end) range from a peer and
	// assembles them into blocks. Blocks until data is received.
	FetchBlocks(ctx context.Context, start uint64, end uint64, peerId *PeerId) (FetcherResponse[[]*types.Block], error)
}

func NewFetcher

func NewFetcher(
	config FetcherConfig,
	messageListener MessageListener,
	messageSender MessageSender,
	requestIdGenerator RequestIdGenerator,
) Fetcher

func NewPenalizingFetcher

func NewPenalizingFetcher(logger log.Logger, fetcher Fetcher, peerPenalizer PeerPenalizer) Fetcher

func NewTrackingFetcher

func NewTrackingFetcher(fetcher Fetcher, peerTracker PeerTracker) Fetcher

type FetcherConfig

type FetcherConfig struct {
	// contains filtered or unexported fields
}

type FetcherResponse

type FetcherResponse[T any] struct {
	Data      T
	TotalSize int
}

type MessageListener

type MessageListener interface {
	Run(ctx context.Context)
	RegisterNewBlockObserver(observer MessageObserver[*DecodedInboundMessage[*eth.NewBlockPacket]]) UnregisterFunc
	RegisterNewBlockHashesObserver(observer MessageObserver[*DecodedInboundMessage[*eth.NewBlockHashesPacket]]) UnregisterFunc
	RegisterBlockHeadersObserver(observer MessageObserver[*DecodedInboundMessage[*eth.BlockHeadersPacket66]]) UnregisterFunc
	RegisterBlockBodiesObserver(observer MessageObserver[*DecodedInboundMessage[*eth.BlockBodiesPacket66]]) UnregisterFunc
	RegisterPeerEventObserver(observer MessageObserver[*sentry.PeerEvent]) UnregisterFunc
}

func NewMessageListener

func NewMessageListener(
	logger log.Logger,
	sentryClient direct.SentryClient,
	statusDataFactory sentrymulticlient.StatusDataFactory,
	peerPenalizer PeerPenalizer,
) MessageListener

type MessageObserver

type MessageObserver[TMessage any] func(message TMessage)

func NewPeerEventObserver

func NewPeerEventObserver(logger log.Logger, peerTracker PeerTracker) MessageObserver[*sentry.PeerEvent]

type MessageSender

type MessageSender interface {
	SendGetBlockHeaders(ctx context.Context, peerId *PeerId, req eth.GetBlockHeadersPacket66) error
	SendGetBlockBodies(ctx context.Context, peerId *PeerId, req eth.GetBlockBodiesPacket66) error
}

func NewMessageSender

func NewMessageSender(sentryClient direct.SentryClient) MessageSender

type MockService

type MockService struct {
	// contains filtered or unexported fields
}

MockService is a mock of Service interface.

func NewMockService

func NewMockService(ctrl *gomock.Controller) *MockService

NewMockService creates a new mock instance.

func (*MockService) BlockNumMissing

func (m *MockService) BlockNumMissing(peerId *PeerId, blockNum uint64)

BlockNumMissing mocks base method.

func (*MockService) BlockNumPresent

func (m *MockService) BlockNumPresent(peerId *PeerId, blockNum uint64)

BlockNumPresent mocks base method.

func (*MockService) EXPECT

func (m *MockService) EXPECT() *MockServiceMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockService) FetchBlocks

func (m *MockService) FetchBlocks(ctx context.Context, start, end uint64, peerId *PeerId) (FetcherResponse[[]*types.Block], error)

FetchBlocks mocks base method.

func (*MockService) FetchBodies

func (m *MockService) FetchBodies(ctx context.Context, headers []*types.Header, peerId *PeerId) (FetcherResponse[[]*types.Body], error)

FetchBodies mocks base method.

func (*MockService) FetchHeaders

func (m *MockService) FetchHeaders(ctx context.Context, start, end uint64, peerId *PeerId) (FetcherResponse[[]*types.Header], error)

FetchHeaders mocks base method.

func (*MockService) ListPeersMayHaveBlockNum

func (m *MockService) ListPeersMayHaveBlockNum(blockNum uint64) []*PeerId

ListPeersMayHaveBlockNum mocks base method.

func (*MockService) MaxPeers

func (m *MockService) MaxPeers() int

MaxPeers mocks base method.

func (*MockService) PeerConnected

func (m *MockService) PeerConnected(peerId *PeerId)

PeerConnected mocks base method.

func (*MockService) PeerDisconnected

func (m *MockService) PeerDisconnected(peerId *PeerId)

PeerDisconnected mocks base method.

func (*MockService) Penalize

func (m *MockService) Penalize(ctx context.Context, peerId *PeerId) error

Penalize mocks base method.

func (*MockService) RegisterBlockBodiesObserver

func (m *MockService) RegisterBlockBodiesObserver(observer MessageObserver[*DecodedInboundMessage[*eth.BlockBodiesPacket66]]) UnregisterFunc

RegisterBlockBodiesObserver mocks base method.

func (*MockService) RegisterBlockHeadersObserver

func (m *MockService) RegisterBlockHeadersObserver(observer MessageObserver[*DecodedInboundMessage[*eth.BlockHeadersPacket66]]) UnregisterFunc

RegisterBlockHeadersObserver mocks base method.

func (*MockService) RegisterNewBlockHashesObserver

func (m *MockService) RegisterNewBlockHashesObserver(observer MessageObserver[*DecodedInboundMessage[*eth.NewBlockHashesPacket]]) UnregisterFunc

RegisterNewBlockHashesObserver mocks base method.

func (*MockService) RegisterNewBlockObserver

func (m *MockService) RegisterNewBlockObserver(observer MessageObserver[*DecodedInboundMessage[*eth.NewBlockPacket]]) UnregisterFunc

RegisterNewBlockObserver mocks base method.

func (*MockService) RegisterPeerEventObserver

func (m *MockService) RegisterPeerEventObserver(observer MessageObserver[*sentry.PeerEvent]) UnregisterFunc

RegisterPeerEventObserver mocks base method.

func (*MockService) Run

func (m *MockService) Run(ctx context.Context)

Run mocks base method.

type MockServiceBlockNumMissingCall

type MockServiceBlockNumMissingCall struct {
	*gomock.Call
}

MockServiceBlockNumMissingCall wrap *gomock.Call

func (*MockServiceBlockNumMissingCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceBlockNumMissingCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceBlockNumMissingCall) Return

Return rewrite *gomock.Call.Return

type MockServiceBlockNumPresentCall

type MockServiceBlockNumPresentCall struct {
	*gomock.Call
}

MockServiceBlockNumPresentCall wrap *gomock.Call

func (*MockServiceBlockNumPresentCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceBlockNumPresentCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceBlockNumPresentCall) Return

Return rewrite *gomock.Call.Return

type MockServiceFetchBlocksCall

type MockServiceFetchBlocksCall struct {
	*gomock.Call
}

MockServiceFetchBlocksCall wrap *gomock.Call

func (*MockServiceFetchBlocksCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceFetchBlocksCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceFetchBlocksCall) Return

Return rewrite *gomock.Call.Return

type MockServiceFetchBodiesCall

type MockServiceFetchBodiesCall struct {
	*gomock.Call
}

MockServiceFetchBodiesCall wrap *gomock.Call

func (*MockServiceFetchBodiesCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceFetchBodiesCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceFetchBodiesCall) Return

Return rewrite *gomock.Call.Return

type MockServiceFetchHeadersCall

type MockServiceFetchHeadersCall struct {
	*gomock.Call
}

MockServiceFetchHeadersCall wrap *gomock.Call

func (*MockServiceFetchHeadersCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceFetchHeadersCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceFetchHeadersCall) Return

Return rewrite *gomock.Call.Return

type MockServiceListPeersMayHaveBlockNumCall

type MockServiceListPeersMayHaveBlockNumCall struct {
	*gomock.Call
}

MockServiceListPeersMayHaveBlockNumCall wrap *gomock.Call

func (*MockServiceListPeersMayHaveBlockNumCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceListPeersMayHaveBlockNumCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceListPeersMayHaveBlockNumCall) Return

Return rewrite *gomock.Call.Return

type MockServiceMaxPeersCall

type MockServiceMaxPeersCall struct {
	*gomock.Call
}

MockServiceMaxPeersCall wrap *gomock.Call

func (*MockServiceMaxPeersCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceMaxPeersCall) DoAndReturn

func (c *MockServiceMaxPeersCall) DoAndReturn(f func() int) *MockServiceMaxPeersCall

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceMaxPeersCall) Return

Return rewrite *gomock.Call.Return

type MockServiceMockRecorder

type MockServiceMockRecorder struct {
	// contains filtered or unexported fields
}

MockServiceMockRecorder is the mock recorder for MockService.

func (*MockServiceMockRecorder) BlockNumMissing

func (mr *MockServiceMockRecorder) BlockNumMissing(peerId, blockNum any) *MockServiceBlockNumMissingCall

BlockNumMissing indicates an expected call of BlockNumMissing.

func (*MockServiceMockRecorder) BlockNumPresent

func (mr *MockServiceMockRecorder) BlockNumPresent(peerId, blockNum any) *MockServiceBlockNumPresentCall

BlockNumPresent indicates an expected call of BlockNumPresent.

func (*MockServiceMockRecorder) FetchBlocks

func (mr *MockServiceMockRecorder) FetchBlocks(ctx, start, end, peerId any) *MockServiceFetchBlocksCall

FetchBlocks indicates an expected call of FetchBlocks.

func (*MockServiceMockRecorder) FetchBodies

func (mr *MockServiceMockRecorder) FetchBodies(ctx, headers, peerId any) *MockServiceFetchBodiesCall

FetchBodies indicates an expected call of FetchBodies.

func (*MockServiceMockRecorder) FetchHeaders

func (mr *MockServiceMockRecorder) FetchHeaders(ctx, start, end, peerId any) *MockServiceFetchHeadersCall

FetchHeaders indicates an expected call of FetchHeaders.

func (*MockServiceMockRecorder) ListPeersMayHaveBlockNum

func (mr *MockServiceMockRecorder) ListPeersMayHaveBlockNum(blockNum any) *MockServiceListPeersMayHaveBlockNumCall

ListPeersMayHaveBlockNum indicates an expected call of ListPeersMayHaveBlockNum.

func (*MockServiceMockRecorder) MaxPeers

MaxPeers indicates an expected call of MaxPeers.

func (*MockServiceMockRecorder) PeerConnected

func (mr *MockServiceMockRecorder) PeerConnected(peerId any) *MockServicePeerConnectedCall

PeerConnected indicates an expected call of PeerConnected.

func (*MockServiceMockRecorder) PeerDisconnected

func (mr *MockServiceMockRecorder) PeerDisconnected(peerId any) *MockServicePeerDisconnectedCall

PeerDisconnected indicates an expected call of PeerDisconnected.

func (*MockServiceMockRecorder) Penalize

func (mr *MockServiceMockRecorder) Penalize(ctx, peerId any) *MockServicePenalizeCall

Penalize indicates an expected call of Penalize.

func (*MockServiceMockRecorder) RegisterBlockBodiesObserver

func (mr *MockServiceMockRecorder) RegisterBlockBodiesObserver(observer any) *MockServiceRegisterBlockBodiesObserverCall

RegisterBlockBodiesObserver indicates an expected call of RegisterBlockBodiesObserver.

func (*MockServiceMockRecorder) RegisterBlockHeadersObserver

func (mr *MockServiceMockRecorder) RegisterBlockHeadersObserver(observer any) *MockServiceRegisterBlockHeadersObserverCall

RegisterBlockHeadersObserver indicates an expected call of RegisterBlockHeadersObserver.

func (*MockServiceMockRecorder) RegisterNewBlockHashesObserver

func (mr *MockServiceMockRecorder) RegisterNewBlockHashesObserver(observer any) *MockServiceRegisterNewBlockHashesObserverCall

RegisterNewBlockHashesObserver indicates an expected call of RegisterNewBlockHashesObserver.

func (*MockServiceMockRecorder) RegisterNewBlockObserver

func (mr *MockServiceMockRecorder) RegisterNewBlockObserver(observer any) *MockServiceRegisterNewBlockObserverCall

RegisterNewBlockObserver indicates an expected call of RegisterNewBlockObserver.

func (*MockServiceMockRecorder) RegisterPeerEventObserver

func (mr *MockServiceMockRecorder) RegisterPeerEventObserver(observer any) *MockServiceRegisterPeerEventObserverCall

RegisterPeerEventObserver indicates an expected call of RegisterPeerEventObserver.

func (*MockServiceMockRecorder) Run

Run indicates an expected call of Run.

type MockServicePeerConnectedCall

type MockServicePeerConnectedCall struct {
	*gomock.Call
}

MockServicePeerConnectedCall wrap *gomock.Call

func (*MockServicePeerConnectedCall) Do

Do rewrite *gomock.Call.Do

func (*MockServicePeerConnectedCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServicePeerConnectedCall) Return

Return rewrite *gomock.Call.Return

type MockServicePeerDisconnectedCall

type MockServicePeerDisconnectedCall struct {
	*gomock.Call
}

MockServicePeerDisconnectedCall wrap *gomock.Call

func (*MockServicePeerDisconnectedCall) Do

Do rewrite *gomock.Call.Do

func (*MockServicePeerDisconnectedCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServicePeerDisconnectedCall) Return

Return rewrite *gomock.Call.Return

type MockServicePenalizeCall

type MockServicePenalizeCall struct {
	*gomock.Call
}

MockServicePenalizeCall wrap *gomock.Call

func (*MockServicePenalizeCall) Do

Do rewrite *gomock.Call.Do

func (*MockServicePenalizeCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServicePenalizeCall) Return

Return rewrite *gomock.Call.Return

type MockServiceRegisterBlockBodiesObserverCall

type MockServiceRegisterBlockBodiesObserverCall struct {
	*gomock.Call
}

MockServiceRegisterBlockBodiesObserverCall wrap *gomock.Call

func (*MockServiceRegisterBlockBodiesObserverCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceRegisterBlockBodiesObserverCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceRegisterBlockBodiesObserverCall) Return

Return rewrite *gomock.Call.Return

type MockServiceRegisterBlockHeadersObserverCall

type MockServiceRegisterBlockHeadersObserverCall struct {
	*gomock.Call
}

MockServiceRegisterBlockHeadersObserverCall wrap *gomock.Call

func (*MockServiceRegisterBlockHeadersObserverCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceRegisterBlockHeadersObserverCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceRegisterBlockHeadersObserverCall) Return

Return rewrite *gomock.Call.Return

type MockServiceRegisterNewBlockHashesObserverCall

type MockServiceRegisterNewBlockHashesObserverCall struct {
	*gomock.Call
}

MockServiceRegisterNewBlockHashesObserverCall wrap *gomock.Call

func (*MockServiceRegisterNewBlockHashesObserverCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceRegisterNewBlockHashesObserverCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceRegisterNewBlockHashesObserverCall) Return

Return rewrite *gomock.Call.Return

type MockServiceRegisterNewBlockObserverCall

type MockServiceRegisterNewBlockObserverCall struct {
	*gomock.Call
}

MockServiceRegisterNewBlockObserverCall wrap *gomock.Call

func (*MockServiceRegisterNewBlockObserverCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceRegisterNewBlockObserverCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceRegisterNewBlockObserverCall) Return

Return rewrite *gomock.Call.Return

type MockServiceRegisterPeerEventObserverCall

type MockServiceRegisterPeerEventObserverCall struct {
	*gomock.Call
}

MockServiceRegisterPeerEventObserverCall wrap *gomock.Call

func (*MockServiceRegisterPeerEventObserverCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceRegisterPeerEventObserverCall) DoAndReturn

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceRegisterPeerEventObserverCall) Return

Return rewrite *gomock.Call.Return

type MockServiceRunCall

type MockServiceRunCall struct {
	*gomock.Call
}

MockServiceRunCall wrap *gomock.Call

func (*MockServiceRunCall) Do

Do rewrite *gomock.Call.Do

func (*MockServiceRunCall) DoAndReturn

func (c *MockServiceRunCall) DoAndReturn(f func(context.Context)) *MockServiceRunCall

DoAndReturn rewrite *gomock.Call.DoAndReturn

func (*MockServiceRunCall) Return

Return rewrite *gomock.Call.Return

type PeerId

type PeerId [64]byte

func PeerIdFromH512

func PeerIdFromH512(h512 *erigonlibtypes.H512) *PeerId

func PeerIdFromUint64

func PeerIdFromUint64(num uint64) *PeerId

PeerIdFromUint64 is useful for testing and that is its main intended purpose

func (*PeerId) Equal

func (pid *PeerId) Equal(other *PeerId) bool

func (*PeerId) H512

func (pid *PeerId) H512() *erigonlibtypes.H512

func (*PeerId) String

func (pid *PeerId) String() string

type PeerPenalizer

type PeerPenalizer interface {
	Penalize(ctx context.Context, peerId *PeerId) error
}

func NewPeerPenalizer

func NewPeerPenalizer(sentryClient direct.SentryClient) PeerPenalizer

type PeerShuffle

type PeerShuffle func(peerIds []*PeerId)

type PeerTracker

type PeerTracker interface {
	ListPeersMayHaveBlockNum(blockNum uint64) []*PeerId
	BlockNumPresent(peerId *PeerId, blockNum uint64)
	BlockNumMissing(peerId *PeerId, blockNum uint64)
	PeerConnected(peerId *PeerId)
	PeerDisconnected(peerId *PeerId)
}

func NewPeerTracker

func NewPeerTracker() PeerTracker

type RequestIdGenerator

type RequestIdGenerator func() uint64

type Service

type Service interface {
	Fetcher
	MessageListener
	PeerTracker
	PeerPenalizer
	MaxPeers() int
}

func NewService

func NewService(
	maxPeers int,
	logger log.Logger,
	sentryClient direct.SentryClient,
	statusDataFactory sentrymulticlient.StatusDataFactory,
) Service

type UnregisterFunc

type UnregisterFunc func()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL