Documentation ¶
Index ¶
- Constants
- Variables
- func Decode(input []byte) (Packet, Pubkey, []byte, error)
- func DecodePubkey(curve elliptic.Curve, e Pubkey) (*ecdsa.PublicKey, error)
- func Encode(priv *ecdsa.PrivateKey, req Packet) (packet, hash []byte, err error)
- func Expired(ts uint64) bool
- type ENRRequest
- type ENRResponse
- type Endpoint
- type Findnode
- type Neighbors
- type Node
- type Packet
- type Ping
- type Pong
- type Pubkey
- type Secp256k1
- type StateSeries
- type UDPv4
- func (t *UDPv4) Close()
- func (t *UDPv4) GenPacket(f *filler.Filler, packetType string, n *enode.Node) Packet
- func (t *UDPv4) GetPri() *ecdsa.PrivateKey
- func (t *UDPv4) Pending(id enode.ID, ip net.IP, ptype byte, callback replyMatchFunc) *replyMatcher
- func (t *UDPv4) SelectSeed(seedQueue []*V4Seed) *V4Seed
- func (t *UDPv4) Self() *enode.Node
- func (t *UDPv4) Send(n *enode.Node, req Packet) []byte
- type V4Seed
Constants ¶
View Source
const ( PingPacket = iota + 1 // zero is 'reserved' PongPacket FindnodePacket NeighborsPacket ENRRequestPacket ENRResponsePacket )
RPC packet types
View Source
const MaxNeighbors = 12
Variables ¶
Functions ¶
func DecodePubkey ¶
DecodePubkey reads an encoded secp256k1 public key.
Types ¶
type ENRRequest ¶
type ENRRequest struct { Expiration uint64 // Ignore additional fields (for forward compatibility). Rest []rlp.RawValue `rlp:"tail"` }
ENRRequest queries for the remote node's record.
func (*ENRRequest) Kind ¶
func (req *ENRRequest) Kind() byte
func (*ENRRequest) Name ¶
func (req *ENRRequest) Name() string
func (*ENRRequest) String ¶
func (req *ENRRequest) String() string
type ENRResponse ¶
type ENRResponse struct { ReplyTok []byte // Hash of the ENRRequest packet. Record enr.Record // Ignore additional fields (for forward compatibility). Rest []rlp.RawValue `rlp:"tail"` }
ENRResponse is the reply to ENRRequest.
func (*ENRResponse) Kind ¶
func (req *ENRResponse) Kind() byte
func (*ENRResponse) Name ¶
func (req *ENRResponse) Name() string
func (*ENRResponse) String ¶
func (req *ENRResponse) String() string
type Endpoint ¶
type Endpoint struct { IP net.IP // len 4 for IPv4 or 16 for IPv6 UDP uint16 // for discovery protocol TCP uint16 // for RLPx protocol }
Endpoint represents a network endpoint.
type Findnode ¶
type Findnode struct { Target Pubkey Expiration uint64 // Ignore additional fields (for forward compatibility). Rest []rlp.RawValue `rlp:"tail"` }
Findnode is a query for nodes close to the given target.
type Neighbors ¶
type Neighbors struct { Nodes []Node Expiration uint64 // Ignore additional fields (for forward compatibility). Rest []rlp.RawValue `rlp:"tail"` }
Neighbors is the reply to findnode.
type Ping ¶
type Pong ¶
type Pong struct { // This field should mirror the UDP envelope address // of the ping packet, which provides a way to discover the // external address (after NAT). To Endpoint ReplyTok []byte // This contains the hash of the ping packet. Expiration uint64 // Absolute timestamp at which the packet becomes invalid. ENRSeq uint64 `rlp:"optional"` // Sequence number of local record, added by EIP-868. // Ignore additional fields (for forward compatibility). Rest []rlp.RawValue `rlp:"tail"` }
Pong is the reply to ping.
type Secp256k1 ¶
Secp256k1 is the "secp256k1" key, which holds a public key.
type StateSeries ¶
type UDPv4 ¶
type UDPv4 struct {
// contains filtered or unexported fields
}
UDPv4 implements the v4 wire protocol.
func (*UDPv4) Close ¶
func (t *UDPv4) Close()
Close shuts down the socket and aborts any running queries.
func (*UDPv4) GetPri ¶
func (t *UDPv4) GetPri() *ecdsa.PrivateKey
func (*UDPv4) SelectSeed ¶
Click to show internal directories.
Click to hide internal directories.