Documentation ¶
Index ¶
- func Dial(n *enode.Node) (*rlpxConn, error)
- func Listen(ln *enode.LocalNode) (*net.UDPConn, error)
- func NewEthProtocol(version uint, opts EthProtocolOptions) ethp2p.Protocol
- func ParseBootnodes(bootnodes string) ([]*enode.Node, error)
- func ParseNode(source string) (*enode.Node, error)
- func ReadNodeSet(file string) ([]*enode.Node, error)
- func WriteDNSTreeNodes(file string, tree *dnsdisc.Tree) error
- func WriteNodeSet(file string, ns NodeSet, writeErrors bool) error
- func WritePeers(file string, nodes map[enode.ID]string) error
- func WriteURLs(file string, ns NodeSet) error
- type AccountRange
- type BlockBodies
- type BlockHashEntry
- type BlockHeaders
- type ByteCodes
- type Disconnect
- type Disconnects
- type Error
- type EthProtocolOptions
- type GetAccountRange
- type GetBlockBodies
- type GetBlockHeaders
- type GetByteCodes
- type GetPooledTransactions
- type GetStorageRanges
- type GetTrieNodes
- type HeadBlock
- type Hello
- type Message
- type MessageCount
- type NewBlock
- type NewBlockHashes
- type NewPooledTransactionHashes
- type NewPooledTransactionHashes66
- type NodeJSON
- type NodeSet
- type Ping
- type Pong
- type PooledTransactions
- type Status
- type StorageRanges
- type Transactions
- type TrieNodes
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Dial ¶
Dial attempts to Dial the given node and perform a handshake, returning the created Conn if successful.
func NewEthProtocol ¶
func NewEthProtocol(version uint, opts EthProtocolOptions) ethp2p.Protocol
NewEthProctocol creates the new eth protocol. This will handle writing the status exchange, message handling, and writing blocks/txs to the database.
func ParseBootnodes ¶
ParseBootnodes parses the bootnodes string and returns a node slice.
func ReadNodeSet ¶
ReadNodeSet parses a list of discovery node URLs loaded from a JSON file.
func WriteDNSTreeNodes ¶ added in v0.1.61
Types ¶
type AccountRange ¶
type AccountRange snap.AccountRangePacket
func (AccountRange) Code ¶
func (msg AccountRange) Code() int
func (AccountRange) ReqID ¶
func (msg AccountRange) ReqID() uint64
type BlockBodies ¶
type BlockBodies eth.BlockBodiesPacket
BlockBodies is the network packet for block content distribution.
func (BlockBodies) Code ¶
func (msg BlockBodies) Code() int
func (BlockBodies) ReqID ¶
func (msg BlockBodies) ReqID() uint64
type BlockHashEntry ¶ added in v0.1.63
type BlockHashEntry struct {
// contains filtered or unexported fields
}
type BlockHeaders ¶
type BlockHeaders eth.BlockHeadersPacket
func (BlockHeaders) Code ¶
func (msg BlockHeaders) Code() int
func (BlockHeaders) ReqID ¶
func (msg BlockHeaders) ReqID() uint64
type ByteCodes ¶
type ByteCodes snap.ByteCodesPacket
type Disconnect ¶
type Disconnect struct {
Reason p2p.DiscReason
}
Disconnect is the RLP structure for a disconnect message.
func (Disconnect) Code ¶
func (msg Disconnect) Code() int
func (Disconnect) ReqID ¶
func (msg Disconnect) ReqID() uint64
type Disconnects ¶
type Disconnects []p2p.DiscReason
Disconnects is the RLP structure for disconnect messages.
func (Disconnects) Code ¶
func (msg Disconnects) Code() int
func (Disconnects) ReqID ¶
func (msg Disconnects) ReqID() uint64
type EthProtocolOptions ¶
type EthProtocolOptions struct { Context context.Context Database database.Database GenesisHash common.Hash RPC string SensorID string NetworkID uint64 Peers chan *enode.Node ForkID forkid.ID MsgCounter *prometheus.CounterVec // Head keeps track of the current head block of the chain. This is required // when doing the status exchange. Head *HeadBlock HeadMutex *sync.RWMutex }
EthProtocolOptions is the options used when creating a new eth protocol.
type GetAccountRange ¶
type GetAccountRange snap.GetAccountRangePacket
GetAccountRange represents an account range query.
func (GetAccountRange) Code ¶
func (msg GetAccountRange) Code() int
func (GetAccountRange) ReqID ¶
func (msg GetAccountRange) ReqID() uint64
type GetBlockBodies ¶
type GetBlockBodies eth.GetBlockBodiesPacket
GetBlockBodies represents a GetBlockBodies request
func (GetBlockBodies) Code ¶
func (msg GetBlockBodies) Code() int
func (GetBlockBodies) ReqID ¶
func (msg GetBlockBodies) ReqID() uint64
type GetBlockHeaders ¶
type GetBlockHeaders eth.GetBlockHeadersPacket
GetBlockHeaders represents a block header query.
func (GetBlockHeaders) Code ¶
func (msg GetBlockHeaders) Code() int
func (GetBlockHeaders) ReqID ¶
func (msg GetBlockHeaders) ReqID() uint64
type GetByteCodes ¶
type GetByteCodes snap.GetByteCodesPacket
func (GetByteCodes) Code ¶
func (msg GetByteCodes) Code() int
func (GetByteCodes) ReqID ¶
func (msg GetByteCodes) ReqID() uint64
type GetPooledTransactions ¶
type GetPooledTransactions eth.GetPooledTransactionsPacket
func (GetPooledTransactions) Code ¶
func (msg GetPooledTransactions) Code() int
func (GetPooledTransactions) ReqID ¶
func (msg GetPooledTransactions) ReqID() uint64
type GetStorageRanges ¶
type GetStorageRanges snap.GetStorageRangesPacket
func (GetStorageRanges) Code ¶
func (msg GetStorageRanges) Code() int
func (GetStorageRanges) ReqID ¶
func (msg GetStorageRanges) ReqID() uint64
type GetTrieNodes ¶
type GetTrieNodes snap.GetTrieNodesPacket
func (GetTrieNodes) Code ¶
func (msg GetTrieNodes) Code() int
func (GetTrieNodes) ReqID ¶
func (msg GetTrieNodes) ReqID() uint64
type Hello ¶
type Hello struct { Version uint64 Name string Caps []p2p.Cap ListenPort uint64 ID []byte // secp256k1 public key // Ignore additional fields (for forward compatibility). Rest []rlp.RawValue `rlp:"tail"` }
Hello is the RLP structure of the protocol handshake.
type MessageCount ¶
type MessageCount struct { BlockHeaders int64 `json:"block_headers,omitempty"` BlockBodies int64 `json:"block_bodies,omitempty"` Blocks int64 `json:"blocks,omitempty"` BlockHashes int64 `json:"block_hashes,omitempty"` BlockHeaderRequests int64 `json:"block_header_requests,omitempty"` BlockBodiesRequests int64 `json:"block_bodies_requests,omitempty"` Transactions int64 `json:"transactions,omitempty"` TransactionHashes int64 `json:"transaction_hashes,omitempty"` TransactionRequests int64 `json:"transaction_requests,omitempty"` Pings int64 `json:"pings,omitempty"` Errors int64 `json:"errors,omitempty"` Disconnects int64 `json:"disconnects,omitempty"` }
MessageCount is used to help the outer goroutine to receive summary of the number and type of messages that were sent. This is used for distributed logging. It can be used to count the different types of messages received across all peer connections to provide a summary.
func (*MessageCount) Clear ¶
func (count *MessageCount) Clear()
Clear clears all of the counts from the message counter.
func (*MessageCount) IsEmpty ¶
func (c *MessageCount) IsEmpty() bool
IsEmpty checks whether the sum of all the counts is empty. Make sure to call Load before this method to get an accurate count.
func (*MessageCount) Load ¶
func (count *MessageCount) Load() MessageCount
Load takes a snapshot of all the counts in a thread-safe manner. Make sure you call this and read from the returned object.
type NewBlock ¶
type NewBlock eth.NewBlockPacket
NewBlock is the network packet for the block propagation message.
type NewBlockHashes ¶
type NewBlockHashes eth.NewBlockHashesPacket
NewBlockHashes is the network packet for the block announcements.
func (NewBlockHashes) Code ¶
func (msg NewBlockHashes) Code() int
func (NewBlockHashes) ReqID ¶
func (msg NewBlockHashes) ReqID() uint64
type NewPooledTransactionHashes ¶
NewPooledTransactionHashes is the network packet for the tx hash propagation message.
func (NewPooledTransactionHashes) Code ¶
func (msg NewPooledTransactionHashes) Code() int
func (NewPooledTransactionHashes) ReqID ¶
func (msg NewPooledTransactionHashes) ReqID() uint64
type NewPooledTransactionHashes66 ¶
NewPooledTransactionHashes66 is the network packet for the tx hash propagation message.
func (NewPooledTransactionHashes66) Code ¶
func (msg NewPooledTransactionHashes66) Code() int
func (NewPooledTransactionHashes66) ReqID ¶
func (msg NewPooledTransactionHashes66) ReqID() uint64
type PooledTransactions ¶
type PooledTransactions eth.PooledTransactionsPacket
func (PooledTransactions) Code ¶
func (msg PooledTransactions) Code() int
func (PooledTransactions) ReqID ¶
func (msg PooledTransactions) ReqID() uint64
type Status ¶
type Status eth.StatusPacket
Status is the network packet for the status message for eth/64 and later.
type StorageRanges ¶
type StorageRanges snap.StorageRangesPacket
func (StorageRanges) Code ¶
func (msg StorageRanges) Code() int
func (StorageRanges) ReqID ¶
func (msg StorageRanges) ReqID() uint64
type Transactions ¶
type Transactions eth.TransactionsPacket
func (Transactions) Code ¶
func (msg Transactions) Code() int
func (Transactions) ReqID ¶
func (msg Transactions) ReqID() uint64