Documentation ¶
Index ¶
Constants ¶
const ( RequestRootMsg = 0x00 RespondRootMsg = 0x01 )
const ProtocolName = "trust"
ProtocolName is the official short name of the `trust` protocol used during devp2p capability negotiation.
const (
Trust1 = 1
)
Constants to match up protocol versions and messages
Variables ¶
var ProtocolVersions = []uint{Trust1}
ProtocolVersions are the supported versions of the `trust` protocol (first is primary).
Functions ¶
Types ¶
type Backend ¶
type Backend interface { // Chain retrieves the blockchain object to serve data. Chain() *core.BlockChain // RunPeer is invoked when a peer joins on the `eth` protocol. The handler // should do any peer maintenance work, handshakes and validations. If all // is passed, control should be given back to the `handler` to process the // inbound messages going forward. RunPeer(peer *Peer, handler Handler) error PeerInfo(id enode.ID) interface{} Handle(peer *Peer, packet Packet) error }
type Handler ¶
Handler is a callback to invoke from an outside runner after the boilerplate exchanges have passed.
type NodeInfo ¶
type NodeInfo struct{}
NodeInfo represents a short summary of the `trust` sub-protocol metadata known about the host peer.
type Packet ¶
type Packet interface { Name() string // Name returns a string corresponding to the message type. Kind() byte // Kind returns the message type. }
Packet represents a p2p message in the `trust` protocol.
type Peer ¶
type Peer struct { *p2p.Peer // The embedded P2P package peer // contains filtered or unexported fields }
Peer is a collection of relevant information we have about a `trust` peer.
func (*Peer) Close ¶
func (p *Peer) Close()
Close signals the broadcast goroutine to terminate. Only ever call this if you created the peer yourself via NewPeer. Otherwise let whoever created it clean it up!
func (*Peer) RequestRoot ¶
type RootRequestPacket ¶
type RootRequestPacket struct { RequestId uint64 BlockNumber uint64 BlockHash common.Hash DiffHash common.Hash }
func (*RootRequestPacket) Kind ¶
func (*RootRequestPacket) Kind() byte
func (*RootRequestPacket) Name ¶
func (*RootRequestPacket) Name() string
type RootResponsePacket ¶
type RootResponsePacket struct { RequestId uint64 Status types.VerifyStatus BlockNumber uint64 BlockHash common.Hash Root common.Hash Extra rlp.RawValue // for extension }
func (*RootResponsePacket) Kind ¶
func (*RootResponsePacket) Kind() byte
func (*RootResponsePacket) Name ¶
func (*RootResponsePacket) Name() string