peers

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2020 License: GPL-3.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrDialToSelf is returned if we attempt to dial our own peer
	ErrDialToSelf = errors.New("dial to self attempted")
	// ErrEmptyAddress returns when you try to create Interface with empty address
	ErrEmptyAddress = errors.New("self address could not be empty")
	// ErrEmptyTransport returns when you try to create Interface with empty transport
	ErrEmptyTransport = errors.New("transport could not be empty")
)
View Source
var (
	ErrInvalidLengthPeersTest        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowPeersTest          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupPeersTest = fmt.Errorf("proto: unexpected end of group")
)

Functions

func RegisterGreeterServer

func RegisterGreeterServer(s *grpc.Server, srv GreeterServer)

Types

type AddressIDReceiver

type AddressIDReceiver interface {
	AddressID(multiaddr.Multiaddr) (ID, error)
}

AddressIDReceiver is an interface of Multiaddr to ID converter.

type GRPCConnector

type GRPCConnector interface {
	GRPCConnection(ctx context.Context, maddr multiaddr.Multiaddr, reset bool) (*grpc.ClientConn, error)
}

GRPCConnector is an interface of gRPC virtual connector.

type GreeterClient

type GreeterClient interface {
	Hello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error)
}

GreeterClient is the client API for Greeter service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewGreeterClient

func NewGreeterClient(cc *grpc.ClientConn) GreeterClient

type GreeterServer

type GreeterServer interface {
	Hello(context.Context, *HelloRequest) (*HelloResponse, error)
}

GreeterServer is the server API for Greeter service.

type HelloRequest

type HelloRequest struct {
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

Request message example

func (*HelloRequest) Descriptor

func (*HelloRequest) Descriptor() ([]byte, []int)

func (*HelloRequest) GetName

func (m *HelloRequest) GetName() string

func (*HelloRequest) Marshal

func (m *HelloRequest) Marshal() (dAtA []byte, err error)

func (*HelloRequest) MarshalTo

func (m *HelloRequest) MarshalTo(dAtA []byte) (int, error)

func (*HelloRequest) MarshalToSizedBuffer

func (m *HelloRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*HelloRequest) ProtoMessage

func (*HelloRequest) ProtoMessage()

func (*HelloRequest) Reset

func (m *HelloRequest) Reset()

func (*HelloRequest) Size

func (m *HelloRequest) Size() (n int)

func (*HelloRequest) String

func (m *HelloRequest) String() string

func (*HelloRequest) Unmarshal

func (m *HelloRequest) Unmarshal(dAtA []byte) error

func (*HelloRequest) XXX_DiscardUnknown

func (m *HelloRequest) XXX_DiscardUnknown()

func (*HelloRequest) XXX_Marshal

func (m *HelloRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*HelloRequest) XXX_Merge

func (m *HelloRequest) XXX_Merge(src proto.Message)

func (*HelloRequest) XXX_Size

func (m *HelloRequest) XXX_Size() int

func (*HelloRequest) XXX_Unmarshal

func (m *HelloRequest) XXX_Unmarshal(b []byte) error

type HelloResponse

type HelloResponse struct {
	Message              string   `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*HelloResponse) Descriptor

func (*HelloResponse) Descriptor() ([]byte, []int)

func (*HelloResponse) GetMessage

func (m *HelloResponse) GetMessage() string

func (*HelloResponse) Marshal

func (m *HelloResponse) Marshal() (dAtA []byte, err error)

func (*HelloResponse) MarshalTo

func (m *HelloResponse) MarshalTo(dAtA []byte) (int, error)

func (*HelloResponse) MarshalToSizedBuffer

func (m *HelloResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*HelloResponse) ProtoMessage

func (*HelloResponse) ProtoMessage()

func (*HelloResponse) Reset

func (m *HelloResponse) Reset()

func (*HelloResponse) Size

func (m *HelloResponse) Size() (n int)

func (*HelloResponse) String

func (m *HelloResponse) String() string

func (*HelloResponse) Unmarshal

func (m *HelloResponse) Unmarshal(dAtA []byte) error

func (*HelloResponse) XXX_DiscardUnknown

func (m *HelloResponse) XXX_DiscardUnknown()

func (*HelloResponse) XXX_Marshal

func (m *HelloResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*HelloResponse) XXX_Merge

func (m *HelloResponse) XXX_Merge(src proto.Message)

func (*HelloResponse) XXX_Size

func (m *HelloResponse) XXX_Size() int

func (*HelloResponse) XXX_Unmarshal

func (m *HelloResponse) XXX_Unmarshal(b []byte) error

type ID

type ID string

ID is a type of peer identification

func IDFromBinary

func IDFromBinary(b []byte) ID

IDFromBinary returns peer ID for host with given slice of byte.

func IDFromPublicKey

func IDFromPublicKey(pk *ecdsa.PublicKey) ID

IDFromPublicKey returns peer ID for host with given public key.

func (ID) Bytes

func (i ID) Bytes() []byte

Bytes returns bytes representation of PeerID.

func (ID) Equal

func (i ID) Equal(id ID) bool

Equal checks that both id's are identical.

func (ID) Hash

func (i ID) Hash() uint64

Hash method used in HRW-library.

func (ID) String

func (i ID) String() string

String returns string representation of PeerID.

type Interface

type Interface interface {
	Shutdown() error
	Job(context.Context)
	Address() multiaddr.Multiaddr
	RemoveConnection(maddr multiaddr.Multiaddr) error
	Listen(maddr multiaddr.Multiaddr) (manet.Listener, error)
	Connect(ctx context.Context, maddr multiaddr.Multiaddr) (manet.Conn, error)
	GRPCConnector
}

Interface is an interface of network connections controller.

func New

func New(p Params) (Interface, error)

New create iface instance and check arguments.

type Params

type Params struct {
	Address          multiaddr.Multiaddr
	Transport        transport.Transport
	Logger           *zap.Logger
	Attempts         int64
	AttemptsTTL      time.Duration
	ConnectionTTL    time.Duration
	ConnectionIDLE   time.Duration
	MetricsTimeout   time.Duration
	KeepAliveTTL     time.Duration
	KeepAlivePingTTL time.Duration
}

Params groups the parameters of Interface.

type Peer

type Peer interface {
	ID() ID
	Address() multiaddr.Multiaddr
	PublicKey() *ecdsa.PublicKey
	PrivateKey() (*ecdsa.PrivateKey, error)
	SetPrivateKey(*ecdsa.PrivateKey) error
}

Peer is value, that stores in Store storage

func NewLocalPeer

func NewLocalPeer(addr multiaddr.Multiaddr, key *ecdsa.PrivateKey) Peer

NewLocalPeer creates new peer instance.

func NewPeer

func NewPeer(addr multiaddr.Multiaddr, pub *ecdsa.PublicKey, key *ecdsa.PrivateKey) Peer

NewPeer creates new peer instance.

type PeerFilter

type PeerFilter func(Peer) bool

PeerFilter is a Peer filtering function.

type PeerNetAddressStore

type PeerNetAddressStore interface {
	GetAddr(ID) (multiaddr.Multiaddr, error)
}

PeerNetAddressStore is an interface of ID to Multiaddr converter.

type PublicKeyStore

type PublicKeyStore interface {
	GetPublicKey(ID) (*ecdsa.PublicKey, error)
}

PublicKeyStore is an interface of the storage of peer's public keys.

type SelfIDReceiver

type SelfIDReceiver interface {
	SelfID() ID
}

SelfIDReceiver is an interface of local peer ID value with read access.

type Storage

type Storage interface {
	Get(ID) (Peer, error)
	Set(ID, Peer) error
	Has(ID) bool
	Rem(ID) error
	List(ID, int64, int) ([]ID, error)
	Filter(PeerFilter) []ID
	Update(*netmap.NetMap) error
}

Storage is storage interface for Store

func NewSimpleStorage

func NewSimpleStorage(capacity int, l *zap.Logger) Storage

NewSimpleStorage is implementation over map.

type Store

type Store interface {
	SelfIDReceiver
	PublicKeyStore
	AddressIDReceiver
	AddPeer(multiaddr.Multiaddr, *ecdsa.PublicKey, *ecdsa.PrivateKey) (ID, error)
	DeletePeer(ID)
	PeerNetAddressStore
	GetPrivateKey(ID) (*ecdsa.PrivateKey, error)
	Update(*netmap.NetMap) error
	Sign([]byte) ([]byte, error)
	Verify(id ID, data, sign []byte) error
	Check(min int) error
}

Store is an interface to storage of all p2p connections

func NewStore

func NewStore(p StoreParams) (Store, error)

NewStore creates new store by params.

type StoreParams

type StoreParams struct {
	Addr     multiaddr.Multiaddr
	Key      *ecdsa.PrivateKey
	Storage  Storage
	StoreCap int
	Logger   *zap.Logger
}

StoreParams for creating new Store.

type UnimplementedGreeterServer

type UnimplementedGreeterServer struct {
}

UnimplementedGreeterServer can be embedded to have forward compatible implementations.

func (*UnimplementedGreeterServer) Hello

Jump to

Keyboard shortcuts

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