Help us shape the future of Go! Take the 2026 Go Developer Survey

p2p

package
v1.22.88 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2026 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	EngineType_name = map[int32]string{
		0: "ENGINE_TYPE_UNSPECIFIED",
		1: "ENGINE_TYPE_CHAIN",
		2: "ENGINE_TYPE_DAG",
	}
	EngineType_value = map[string]int32{
		"ENGINE_TYPE_UNSPECIFIED": 0,
		"ENGINE_TYPE_CHAIN":       1,
		"ENGINE_TYPE_DAG":         2,
	}
)

Enum value maps for EngineType.

View Source
var File_p2p_p2p_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type Accepted

type Accepted struct {

	// Chain being responded from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Request id of the original GetAccepted request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Subset of container ids from the GetAccepted request that the sender has
	// accepted
	ContainerIds [][]byte `protobuf:"bytes,3,rep,name=container_ids,json=containerIds,proto3" json:"container_ids,omitempty"`
	// contains filtered or unexported fields
}

Accepted is sent in response to GetAccepted. The sending peer responds with a subset of container ids from the GetAccepted request that the sending peer has accepted.

func (*Accepted) Descriptor deprecated

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

Deprecated: Use Accepted.ProtoReflect.Descriptor instead.

func (*Accepted) GetChainId

func (x *Accepted) GetChainId() []byte

func (*Accepted) GetContainerIds

func (x *Accepted) GetContainerIds() [][]byte

func (*Accepted) GetRequestId

func (x *Accepted) GetRequestId() uint32

func (*Accepted) ProtoMessage

func (*Accepted) ProtoMessage()

func (*Accepted) ProtoReflect

func (x *Accepted) ProtoReflect() protoreflect.Message

func (*Accepted) Reset

func (x *Accepted) Reset()

func (*Accepted) String

func (x *Accepted) String() string

type AcceptedFrontier

type AcceptedFrontier struct {

	// Chain being responded from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Request id of the original GetAcceptedFrontier request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// The id of the last accepted frontier
	ContainerId []byte `protobuf:"bytes,3,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	// contains filtered or unexported fields
}

AcceptedFrontier contains the remote peer's last accepted frontier.

AcceptedFrontier is sent in response to GetAcceptedFrontier.

func (*AcceptedFrontier) Descriptor deprecated

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

Deprecated: Use AcceptedFrontier.ProtoReflect.Descriptor instead.

func (*AcceptedFrontier) GetChainId

func (x *AcceptedFrontier) GetChainId() []byte

func (*AcceptedFrontier) GetContainerId

func (x *AcceptedFrontier) GetContainerId() []byte

func (*AcceptedFrontier) GetRequestId

func (x *AcceptedFrontier) GetRequestId() uint32

func (*AcceptedFrontier) ProtoMessage

func (*AcceptedFrontier) ProtoMessage()

func (*AcceptedFrontier) ProtoReflect

func (x *AcceptedFrontier) ProtoReflect() protoreflect.Message

func (*AcceptedFrontier) Reset

func (x *AcceptedFrontier) Reset()

func (*AcceptedFrontier) String

func (x *AcceptedFrontier) String() string

type AcceptedStateSummary

type AcceptedStateSummary struct {

	// Chain being responded from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Request id of the original GetAcceptedStateSummary request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// State summary ids
	SummaryIds [][]byte `protobuf:"bytes,3,rep,name=summary_ids,json=summaryIds,proto3" json:"summary_ids,omitempty"`
	// contains filtered or unexported fields
}

AcceptedStateSummary is sent in response to GetAcceptedStateSummary

func (*AcceptedStateSummary) Descriptor deprecated

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

Deprecated: Use AcceptedStateSummary.ProtoReflect.Descriptor instead.

func (*AcceptedStateSummary) GetChainId

func (x *AcceptedStateSummary) GetChainId() []byte

func (*AcceptedStateSummary) GetRequestId

func (x *AcceptedStateSummary) GetRequestId() uint32

func (*AcceptedStateSummary) GetSummaryIds

func (x *AcceptedStateSummary) GetSummaryIds() [][]byte

func (*AcceptedStateSummary) ProtoMessage

func (*AcceptedStateSummary) ProtoMessage()

func (*AcceptedStateSummary) ProtoReflect

func (x *AcceptedStateSummary) ProtoReflect() protoreflect.Message

func (*AcceptedStateSummary) Reset

func (x *AcceptedStateSummary) Reset()

func (*AcceptedStateSummary) String

func (x *AcceptedStateSummary) String() string

type Ancestors

type Ancestors struct {

	// Chain being responded from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Request id of the original GetAncestors request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Ancestry for the requested container
	Containers [][]byte `protobuf:"bytes,3,rep,name=containers,proto3" json:"containers,omitempty"`
	// contains filtered or unexported fields
}

Ancestors is sent in response to GetAncestors.

Ancestors contains a contiguous ancestry of containers for the requested container in order of increasing block height.

func (*Ancestors) Descriptor deprecated

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

Deprecated: Use Ancestors.ProtoReflect.Descriptor instead.

func (*Ancestors) GetChainId

func (x *Ancestors) GetChainId() []byte

func (*Ancestors) GetContainers

func (x *Ancestors) GetContainers() [][]byte

func (*Ancestors) GetRequestId

func (x *Ancestors) GetRequestId() uint32

func (*Ancestors) ProtoMessage

func (*Ancestors) ProtoMessage()

func (*Ancestors) ProtoReflect

func (x *Ancestors) ProtoReflect() protoreflect.Message

func (*Ancestors) Reset

func (x *Ancestors) Reset()

func (*Ancestors) String

func (x *Ancestors) String() string

type BlockHeader

type BlockHeader struct {
	Metadata *ProtocolMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// digest is the short representation of the inner block's bytes
	Digest []byte `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
	// contains filtered or unexported fields
}

func (*BlockHeader) Descriptor deprecated

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

Deprecated: Use BlockHeader.ProtoReflect.Descriptor instead.

func (*BlockHeader) GetDigest

func (x *BlockHeader) GetDigest() []byte

func (*BlockHeader) GetMetadata

func (x *BlockHeader) GetMetadata() *ProtocolMetadata

func (*BlockHeader) ProtoMessage

func (*BlockHeader) ProtoMessage()

func (*BlockHeader) ProtoReflect

func (x *BlockHeader) ProtoReflect() protoreflect.Message

func (*BlockHeader) Reset

func (x *BlockHeader) Reset()

func (*BlockHeader) String

func (x *BlockHeader) String() string

type BlockProposal

type BlockProposal struct {
	Block []byte `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"`
	Vote  *Vote  `protobuf:"bytes,2,opt,name=vote,proto3" json:"vote,omitempty"`
	// contains filtered or unexported fields
}

func (*BlockProposal) Descriptor deprecated

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

Deprecated: Use BlockProposal.ProtoReflect.Descriptor instead.

func (*BlockProposal) GetBlock

func (x *BlockProposal) GetBlock() []byte

func (*BlockProposal) GetVote

func (x *BlockProposal) GetVote() *Vote

func (*BlockProposal) ProtoMessage

func (*BlockProposal) ProtoMessage()

func (*BlockProposal) ProtoReflect

func (x *BlockProposal) ProtoReflect() protoreflect.Message

func (*BlockProposal) Reset

func (x *BlockProposal) Reset()

func (*BlockProposal) String

func (x *BlockProposal) String() string

type BloomFilter

type BloomFilter struct {
	Filter []byte `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	Salt   []byte `protobuf:"bytes,2,opt,name=salt,proto3" json:"salt,omitempty"`
	// contains filtered or unexported fields
}

BloomFilter with a random salt to prevent consistent hash collisions

func (*BloomFilter) Descriptor deprecated

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

Deprecated: Use BloomFilter.ProtoReflect.Descriptor instead.

func (*BloomFilter) GetFilter

func (x *BloomFilter) GetFilter() []byte

func (*BloomFilter) GetSalt

func (x *BloomFilter) GetSalt() []byte

func (*BloomFilter) ProtoMessage

func (*BloomFilter) ProtoMessage()

func (*BloomFilter) ProtoReflect

func (x *BloomFilter) ProtoReflect() protoreflect.Message

func (*BloomFilter) Reset

func (x *BloomFilter) Reset()

func (*BloomFilter) String

func (x *BloomFilter) String() string

type Chits

type Chits struct {

	// Chain being responded from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Request ID of the original PushQuery/PullQuery request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// ID of the currently preferred block
	PreferredId []byte `protobuf:"bytes,3,opt,name=preferred_id,json=preferredId,proto3" json:"preferred_id,omitempty"`
	// ID of the last accepted block
	AcceptedId []byte `protobuf:"bytes,4,opt,name=accepted_id,json=acceptedId,proto3" json:"accepted_id,omitempty"`
	// ID of the currently preferred block at the requested height
	PreferredIdAtHeight []byte `protobuf:"bytes,5,opt,name=preferred_id_at_height,json=preferredIdAtHeight,proto3" json:"preferred_id_at_height,omitempty"`
	// Last accepted block's height
	AcceptedHeight uint64 `protobuf:"varint,6,opt,name=accepted_height,json=acceptedHeight,proto3" json:"accepted_height,omitempty"`
	// contains filtered or unexported fields
}

Chits contains the preferences of a peer in response to a PushQuery or PullQuery message.

func (*Chits) Descriptor deprecated

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

Deprecated: Use Chits.ProtoReflect.Descriptor instead.

func (*Chits) GetAcceptedHeight

func (x *Chits) GetAcceptedHeight() uint64

func (*Chits) GetAcceptedId

func (x *Chits) GetAcceptedId() []byte

func (*Chits) GetChainId

func (x *Chits) GetChainId() []byte

func (*Chits) GetPreferredId

func (x *Chits) GetPreferredId() []byte

func (*Chits) GetPreferredIdAtHeight

func (x *Chits) GetPreferredIdAtHeight() []byte

func (*Chits) GetRequestId

func (x *Chits) GetRequestId() uint32

func (*Chits) ProtoMessage

func (*Chits) ProtoMessage()

func (*Chits) ProtoReflect

func (x *Chits) ProtoReflect() protoreflect.Message

func (*Chits) Reset

func (x *Chits) Reset()

func (*Chits) String

func (x *Chits) String() string

type ClaimedIpPort

type ClaimedIpPort struct {

	// X509 certificate of the peer
	X509Certificate []byte `protobuf:"bytes,1,opt,name=x509_certificate,json=x509Certificate,proto3" json:"x509_certificate,omitempty"`
	// IP address of the peer
	IpAddr []byte `protobuf:"bytes,2,opt,name=ip_addr,json=ipAddr,proto3" json:"ip_addr,omitempty"`
	// IP port of the peer
	IpPort uint32 `protobuf:"varint,3,opt,name=ip_port,json=ipPort,proto3" json:"ip_port,omitempty"`
	// Timestamp of the IP address + port pair
	Timestamp uint64 `protobuf:"varint,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// Signature of the IP port pair at a provided timestamp
	Signature []byte `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"`
	// P-Chain transaction that added this peer to the validator set
	TxId []byte `protobuf:"bytes,6,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"`
	// contains filtered or unexported fields
}

ClaimedIpPort contains metadata needed to connect to a peer

func (*ClaimedIpPort) Descriptor deprecated

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

Deprecated: Use ClaimedIpPort.ProtoReflect.Descriptor instead.

func (*ClaimedIpPort) GetIpAddr

func (x *ClaimedIpPort) GetIpAddr() []byte

func (*ClaimedIpPort) GetIpPort

func (x *ClaimedIpPort) GetIpPort() uint32

func (*ClaimedIpPort) GetSignature

func (x *ClaimedIpPort) GetSignature() []byte

func (*ClaimedIpPort) GetTimestamp

func (x *ClaimedIpPort) GetTimestamp() uint64

func (*ClaimedIpPort) GetTxId

func (x *ClaimedIpPort) GetTxId() []byte

func (*ClaimedIpPort) GetX509Certificate

func (x *ClaimedIpPort) GetX509Certificate() []byte

func (*ClaimedIpPort) ProtoMessage

func (*ClaimedIpPort) ProtoMessage()

func (*ClaimedIpPort) ProtoReflect

func (x *ClaimedIpPort) ProtoReflect() protoreflect.Message

func (*ClaimedIpPort) Reset

func (x *ClaimedIpPort) Reset()

func (*ClaimedIpPort) String

func (x *ClaimedIpPort) String() string

type Client

type Client struct {

	// Client name (e.g node)
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Client semantic version
	Major uint32 `protobuf:"varint,2,opt,name=major,proto3" json:"major,omitempty"`
	Minor uint32 `protobuf:"varint,3,opt,name=minor,proto3" json:"minor,omitempty"`
	Patch uint32 `protobuf:"varint,4,opt,name=patch,proto3" json:"patch,omitempty"`
	// contains filtered or unexported fields
}

Metadata about a peer's P2P client used to determine compatibility

func (*Client) Descriptor deprecated

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

Deprecated: Use Client.ProtoReflect.Descriptor instead.

func (*Client) GetMajor

func (x *Client) GetMajor() uint32

func (*Client) GetMinor

func (x *Client) GetMinor() uint32

func (*Client) GetName

func (x *Client) GetName() string

func (*Client) GetPatch

func (x *Client) GetPatch() uint32

func (*Client) ProtoMessage

func (*Client) ProtoMessage()

func (*Client) ProtoReflect

func (x *Client) ProtoReflect() protoreflect.Message

func (*Client) Reset

func (x *Client) Reset()

func (*Client) String

func (x *Client) String() string

type EmptyNotarization

type EmptyNotarization struct {
	Metadata          *ProtocolMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
	QuorumCertificate []byte            `protobuf:"bytes,2,opt,name=quorum_certificate,json=quorumCertificate,proto3" json:"quorum_certificate,omitempty"`
	// contains filtered or unexported fields
}

func (*EmptyNotarization) Descriptor deprecated

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

Deprecated: Use EmptyNotarization.ProtoReflect.Descriptor instead.

func (*EmptyNotarization) GetMetadata

func (x *EmptyNotarization) GetMetadata() *ProtocolMetadata

func (*EmptyNotarization) GetQuorumCertificate

func (x *EmptyNotarization) GetQuorumCertificate() []byte

func (*EmptyNotarization) ProtoMessage

func (*EmptyNotarization) ProtoMessage()

func (*EmptyNotarization) ProtoReflect

func (x *EmptyNotarization) ProtoReflect() protoreflect.Message

func (*EmptyNotarization) Reset

func (x *EmptyNotarization) Reset()

func (*EmptyNotarization) String

func (x *EmptyNotarization) String() string

type EmptyVote

type EmptyVote struct {
	Metadata  *ProtocolMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
	Signature *Signature        `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
	// contains filtered or unexported fields
}

func (*EmptyVote) Descriptor deprecated

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

Deprecated: Use EmptyVote.ProtoReflect.Descriptor instead.

func (*EmptyVote) GetMetadata

func (x *EmptyVote) GetMetadata() *ProtocolMetadata

func (*EmptyVote) GetSignature

func (x *EmptyVote) GetSignature() *Signature

func (*EmptyVote) ProtoMessage

func (*EmptyVote) ProtoMessage()

func (*EmptyVote) ProtoReflect

func (x *EmptyVote) ProtoReflect() protoreflect.Message

func (*EmptyVote) Reset

func (x *EmptyVote) Reset()

func (*EmptyVote) String

func (x *EmptyVote) String() string

type EngineType

type EngineType int32

The consensus engine that should be used when handling a consensus request.

const (
	EngineType_ENGINE_TYPE_UNSPECIFIED EngineType = 0
	// Chain consensus (linear blockchain, used by P-Chain, C-Chain)
	EngineType_ENGINE_TYPE_CHAIN EngineType = 1
	// DAG consensus (used by X-Chain)
	EngineType_ENGINE_TYPE_DAG EngineType = 2
)

func (EngineType) Descriptor

func (EngineType) Descriptor() protoreflect.EnumDescriptor

func (EngineType) Enum

func (x EngineType) Enum() *EngineType

func (EngineType) EnumDescriptor deprecated

func (EngineType) EnumDescriptor() ([]byte, []int)

Deprecated: Use EngineType.Descriptor instead.

func (EngineType) Number

func (x EngineType) Number() protoreflect.EnumNumber

func (EngineType) String

func (x EngineType) String() string

func (EngineType) Type

type Error added in v1.22.87

type Error struct {

	// Chain the message is for
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Request id of the original Request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// VM defined error code. VMs may define error codes > 0.
	ErrorCode int32 `protobuf:"zigzag32,3,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"`
	// VM defined error message
	ErrorMessage string `protobuf:"bytes,4,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	// contains filtered or unexported fields
}

Error is a VM-defined error sent in response to Request

func (*Error) Descriptor deprecated added in v1.22.87

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

Deprecated: Use Error.ProtoReflect.Descriptor instead.

func (*Error) GetChainId added in v1.22.87

func (x *Error) GetChainId() []byte

func (*Error) GetErrorCode added in v1.22.87

func (x *Error) GetErrorCode() int32

func (*Error) GetErrorMessage added in v1.22.87

func (x *Error) GetErrorMessage() string

func (*Error) GetRequestId added in v1.22.87

func (x *Error) GetRequestId() uint32

func (*Error) ProtoMessage added in v1.22.87

func (*Error) ProtoMessage()

func (*Error) ProtoReflect added in v1.22.87

func (x *Error) ProtoReflect() protoreflect.Message

func (*Error) Reset added in v1.22.87

func (x *Error) Reset()

func (*Error) String added in v1.22.87

func (x *Error) String() string

type Get

type Get struct {

	// Chain being requested from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Unique identifier for this request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Timeout (ns) for this request
	Deadline uint64 `protobuf:"varint,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
	// Container being requested
	ContainerId []byte `protobuf:"bytes,4,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	// contains filtered or unexported fields
}

Get requests a container from a remote peer.

Remote peers should respond to Get with a Put message if they have the container.

func (*Get) Descriptor deprecated

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

Deprecated: Use Get.ProtoReflect.Descriptor instead.

func (*Get) GetChainId

func (x *Get) GetChainId() []byte

func (*Get) GetContainerId

func (x *Get) GetContainerId() []byte

func (*Get) GetDeadline

func (x *Get) GetDeadline() uint64

func (*Get) GetRequestId

func (x *Get) GetRequestId() uint32

func (*Get) ProtoMessage

func (*Get) ProtoMessage()

func (*Get) ProtoReflect

func (x *Get) ProtoReflect() protoreflect.Message

func (*Get) Reset

func (x *Get) Reset()

func (*Get) String

func (x *Get) String() string

type GetAccepted

type GetAccepted struct {

	// Chain being requested from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Unique identifier for this message
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Timeout (ns) for this request
	Deadline uint64 `protobuf:"varint,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
	// The sender's accepted frontier
	ContainerIds [][]byte `protobuf:"bytes,4,rep,name=container_ids,json=containerIds,proto3" json:"container_ids,omitempty"`
	// contains filtered or unexported fields
}

GetAccepted sends a request with the sender's accepted frontier to a remote peer.

Peers should respond to GetAccepted with an Accepted message.

func (*GetAccepted) Descriptor deprecated

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

Deprecated: Use GetAccepted.ProtoReflect.Descriptor instead.

func (*GetAccepted) GetChainId

func (x *GetAccepted) GetChainId() []byte

func (*GetAccepted) GetContainerIds

func (x *GetAccepted) GetContainerIds() [][]byte

func (*GetAccepted) GetDeadline

func (x *GetAccepted) GetDeadline() uint64

func (*GetAccepted) GetRequestId

func (x *GetAccepted) GetRequestId() uint32

func (*GetAccepted) ProtoMessage

func (*GetAccepted) ProtoMessage()

func (*GetAccepted) ProtoReflect

func (x *GetAccepted) ProtoReflect() protoreflect.Message

func (*GetAccepted) Reset

func (x *GetAccepted) Reset()

func (*GetAccepted) String

func (x *GetAccepted) String() string

type GetAcceptedFrontier

type GetAcceptedFrontier struct {

	// Chain being requested from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Unique identifier for this request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Timeout (ns) for this request
	Deadline uint64 `protobuf:"varint,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
	// contains filtered or unexported fields
}

GetAcceptedFrontier requests the accepted frontier from a peer.

Peers should respond to GetAcceptedFrontier with AcceptedFrontier.

func (*GetAcceptedFrontier) Descriptor deprecated

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

Deprecated: Use GetAcceptedFrontier.ProtoReflect.Descriptor instead.

func (*GetAcceptedFrontier) GetChainId

func (x *GetAcceptedFrontier) GetChainId() []byte

func (*GetAcceptedFrontier) GetDeadline

func (x *GetAcceptedFrontier) GetDeadline() uint64

func (*GetAcceptedFrontier) GetRequestId

func (x *GetAcceptedFrontier) GetRequestId() uint32

func (*GetAcceptedFrontier) ProtoMessage

func (*GetAcceptedFrontier) ProtoMessage()

func (*GetAcceptedFrontier) ProtoReflect

func (x *GetAcceptedFrontier) ProtoReflect() protoreflect.Message

func (*GetAcceptedFrontier) Reset

func (x *GetAcceptedFrontier) Reset()

func (*GetAcceptedFrontier) String

func (x *GetAcceptedFrontier) String() string

type GetAcceptedStateSummary

type GetAcceptedStateSummary struct {

	// Chain being requested from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Unique identifier for this request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Timeout (ns) for this request
	Deadline uint64 `protobuf:"varint,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
	// Heights being requested
	Heights []uint64 `protobuf:"varint,4,rep,packed,name=heights,proto3" json:"heights,omitempty"`
	// contains filtered or unexported fields
}

GetAcceptedStateSummary requests a set of state summaries at a set of block heights

func (*GetAcceptedStateSummary) Descriptor deprecated

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

Deprecated: Use GetAcceptedStateSummary.ProtoReflect.Descriptor instead.

func (*GetAcceptedStateSummary) GetChainId

func (x *GetAcceptedStateSummary) GetChainId() []byte

func (*GetAcceptedStateSummary) GetDeadline

func (x *GetAcceptedStateSummary) GetDeadline() uint64

func (*GetAcceptedStateSummary) GetHeights

func (x *GetAcceptedStateSummary) GetHeights() []uint64

func (*GetAcceptedStateSummary) GetRequestId

func (x *GetAcceptedStateSummary) GetRequestId() uint32

func (*GetAcceptedStateSummary) ProtoMessage

func (*GetAcceptedStateSummary) ProtoMessage()

func (*GetAcceptedStateSummary) ProtoReflect

func (x *GetAcceptedStateSummary) ProtoReflect() protoreflect.Message

func (*GetAcceptedStateSummary) Reset

func (x *GetAcceptedStateSummary) Reset()

func (*GetAcceptedStateSummary) String

func (x *GetAcceptedStateSummary) String() string

type GetAncestors

type GetAncestors struct {

	// Chain being requested from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Unique identifier for this request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Timeout (ns) for this request
	Deadline uint64 `protobuf:"varint,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
	// Container for which ancestors are being requested
	ContainerId []byte `protobuf:"bytes,4,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	// Consensus type to handle this message
	EngineType EngineType `protobuf:"varint,5,opt,name=engine_type,json=engineType,proto3,enum=p2p.EngineType" json:"engine_type,omitempty"`
	// contains filtered or unexported fields
}

GetAncestors requests the ancestors for a given container.

The remote peer should respond with an Ancestors message.

func (*GetAncestors) Descriptor deprecated

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

Deprecated: Use GetAncestors.ProtoReflect.Descriptor instead.

func (*GetAncestors) GetChainId

func (x *GetAncestors) GetChainId() []byte

func (*GetAncestors) GetContainerId

func (x *GetAncestors) GetContainerId() []byte

func (*GetAncestors) GetDeadline

func (x *GetAncestors) GetDeadline() uint64

func (*GetAncestors) GetEngineType

func (x *GetAncestors) GetEngineType() EngineType

func (*GetAncestors) GetRequestId

func (x *GetAncestors) GetRequestId() uint32

func (*GetAncestors) ProtoMessage

func (*GetAncestors) ProtoMessage()

func (*GetAncestors) ProtoReflect

func (x *GetAncestors) ProtoReflect() protoreflect.Message

func (*GetAncestors) Reset

func (x *GetAncestors) Reset()

func (*GetAncestors) String

func (x *GetAncestors) String() string

type GetPeerList

type GetPeerList struct {
	KnownPeers *BloomFilter `protobuf:"bytes,1,opt,name=known_peers,json=knownPeers,proto3" json:"known_peers,omitempty"`
	AllChains  bool         `protobuf:"varint,2,opt,name=all_chains,json=allChains,proto3" json:"all_chains,omitempty"`
	// contains filtered or unexported fields
}

GetPeerList contains a bloom filter of the currently known validator IPs.

GetPeerList must not be responded to until finishing the handshake. After the handshake is completed, GetPeerlist messages should be responded to with a Peerlist message containing validators that are not present in the bloom filter.

func (*GetPeerList) Descriptor deprecated

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

Deprecated: Use GetPeerList.ProtoReflect.Descriptor instead.

func (*GetPeerList) GetAllChains added in v1.22.84

func (x *GetPeerList) GetAllChains() bool

func (*GetPeerList) GetKnownPeers

func (x *GetPeerList) GetKnownPeers() *BloomFilter

func (*GetPeerList) ProtoMessage

func (*GetPeerList) ProtoMessage()

func (*GetPeerList) ProtoReflect

func (x *GetPeerList) ProtoReflect() protoreflect.Message

func (*GetPeerList) Reset

func (x *GetPeerList) Reset()

func (*GetPeerList) String

func (x *GetPeerList) String() string

type GetStateSummaryFrontier

type GetStateSummaryFrontier struct {

	// Chain being requested from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Unique identifier for this request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Timeout (ns) for this request
	Deadline uint64 `protobuf:"varint,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
	// contains filtered or unexported fields
}

GetStateSummaryFrontier requests a peer's most recently accepted state summary

func (*GetStateSummaryFrontier) Descriptor deprecated

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

Deprecated: Use GetStateSummaryFrontier.ProtoReflect.Descriptor instead.

func (*GetStateSummaryFrontier) GetChainId

func (x *GetStateSummaryFrontier) GetChainId() []byte

func (*GetStateSummaryFrontier) GetDeadline

func (x *GetStateSummaryFrontier) GetDeadline() uint64

func (*GetStateSummaryFrontier) GetRequestId

func (x *GetStateSummaryFrontier) GetRequestId() uint32

func (*GetStateSummaryFrontier) ProtoMessage

func (*GetStateSummaryFrontier) ProtoMessage()

func (*GetStateSummaryFrontier) ProtoReflect

func (x *GetStateSummaryFrontier) ProtoReflect() protoreflect.Message

func (*GetStateSummaryFrontier) Reset

func (x *GetStateSummaryFrontier) Reset()

func (*GetStateSummaryFrontier) String

func (x *GetStateSummaryFrontier) String() string

type Gossip added in v1.22.87

type Gossip struct {

	// Chain the message is for
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Message body
	AppBytes []byte `protobuf:"bytes,2,opt,name=app_bytes,json=appBytes,proto3" json:"app_bytes,omitempty"`
	// contains filtered or unexported fields
}

Gossip is a VM-defined message

func (*Gossip) Descriptor deprecated added in v1.22.87

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

Deprecated: Use Gossip.ProtoReflect.Descriptor instead.

func (*Gossip) GetAppBytes added in v1.22.87

func (x *Gossip) GetAppBytes() []byte

func (*Gossip) GetChainId added in v1.22.87

func (x *Gossip) GetChainId() []byte

func (*Gossip) ProtoMessage added in v1.22.87

func (*Gossip) ProtoMessage()

func (*Gossip) ProtoReflect added in v1.22.87

func (x *Gossip) ProtoReflect() protoreflect.Message

func (*Gossip) Reset added in v1.22.87

func (x *Gossip) Reset()

func (*Gossip) String added in v1.22.87

func (x *Gossip) String() string

type Handshake

type Handshake struct {

	// Network the peer is running on (e.g local, testnet, mainnet)
	NetworkId uint32 `protobuf:"varint,1,opt,name=network_id,json=networkId,proto3" json:"network_id,omitempty"`
	// Unix timestamp when this Handshake message was created
	MyTime uint64 `protobuf:"varint,2,opt,name=my_time,json=myTime,proto3" json:"my_time,omitempty"`
	// IP address of the peer
	IpAddr []byte `protobuf:"bytes,3,opt,name=ip_addr,json=ipAddr,proto3" json:"ip_addr,omitempty"`
	// IP port of the peer
	IpPort uint32 `protobuf:"varint,4,opt,name=ip_port,json=ipPort,proto3" json:"ip_port,omitempty"`
	// Timestamp of the IP
	IpSigningTime uint64 `protobuf:"varint,6,opt,name=ip_signing_time,json=ipSigningTime,proto3" json:"ip_signing_time,omitempty"`
	// Signature of the peer IP port pair at a provided timestamp with the TLS
	// key.
	IpNodeIdSig []byte `protobuf:"bytes,7,opt,name=ip_node_id_sig,json=ipNodeIdSig,proto3" json:"ip_node_id_sig,omitempty"`
	// Nets the peer is tracking
	TrackedNets  [][]byte     `protobuf:"bytes,8,rep,name=tracked_nets,json=trackedNets,proto3" json:"tracked_nets,omitempty"`
	Client       *Client      `protobuf:"bytes,9,opt,name=client,proto3" json:"client,omitempty"`
	SupportedLps []uint32     `protobuf:"varint,10,rep,packed,name=supported_lps,json=supportedLps,proto3" json:"supported_lps,omitempty"`
	ObjectedLps  []uint32     `protobuf:"varint,11,rep,packed,name=objected_lps,json=objectedLps,proto3" json:"objected_lps,omitempty"`
	KnownPeers   *BloomFilter `protobuf:"bytes,12,opt,name=known_peers,json=knownPeers,proto3" json:"known_peers,omitempty"`
	// Signature of the peer IP port pair at a provided timestamp with the BLS
	// key.
	IpBlsSig []byte `protobuf:"bytes,13,opt,name=ip_bls_sig,json=ipBlsSig,proto3" json:"ip_bls_sig,omitempty"`
	// To avoid sending IPs that the client isn't interested in tracking, the
	// server expects the client to confirm that it is tracking all chains.
	AllChains bool `protobuf:"varint,14,opt,name=all_chains,json=allChains,proto3" json:"all_chains,omitempty"`
	// contains filtered or unexported fields
}

Handshake is the first outbound message sent to a peer when a connection is established to start the p2p handshake.

Peers must respond to a Handshake message with a PeerList message to allow the peer to connect to other peers in the network.

Peers should drop connections to peers with incompatible versions.

func (*Handshake) Descriptor deprecated

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

Deprecated: Use Handshake.ProtoReflect.Descriptor instead.

func (*Handshake) GetAllChains added in v1.22.84

func (x *Handshake) GetAllChains() bool

func (*Handshake) GetClient

func (x *Handshake) GetClient() *Client

func (*Handshake) GetIpAddr

func (x *Handshake) GetIpAddr() []byte

func (*Handshake) GetIpBlsSig

func (x *Handshake) GetIpBlsSig() []byte

func (*Handshake) GetIpNodeIdSig

func (x *Handshake) GetIpNodeIdSig() []byte

func (*Handshake) GetIpPort

func (x *Handshake) GetIpPort() uint32

func (*Handshake) GetIpSigningTime

func (x *Handshake) GetIpSigningTime() uint64

func (*Handshake) GetKnownPeers

func (x *Handshake) GetKnownPeers() *BloomFilter

func (*Handshake) GetMyTime

func (x *Handshake) GetMyTime() uint64

func (*Handshake) GetNetworkId

func (x *Handshake) GetNetworkId() uint32

func (*Handshake) GetObjectedLps

func (x *Handshake) GetObjectedLps() []uint32

func (*Handshake) GetSupportedLps

func (x *Handshake) GetSupportedLps() []uint32

func (*Handshake) GetTrackedNets added in v1.16.56

func (x *Handshake) GetTrackedNets() [][]byte

func (*Handshake) ProtoMessage

func (*Handshake) ProtoMessage()

func (*Handshake) ProtoReflect

func (x *Handshake) ProtoReflect() protoreflect.Message

func (*Handshake) Reset

func (x *Handshake) Reset()

func (*Handshake) String

func (x *Handshake) String() string

type Message

type Message struct {

	// NOTES
	// Use "oneof" for each message type and set rest to null if not used.
	// That is because when the compression is enabled, we don't want to include uncompressed fields.
	//
	// Types that are assignable to Message:
	//
	//	*Message_CompressedZstd
	//	*Message_Ping
	//	*Message_Pong
	//	*Message_Handshake
	//	*Message_GetPeerList
	//	*Message_PeerList_
	//	*Message_GetStateSummaryFrontier
	//	*Message_StateSummaryFrontier_
	//	*Message_GetAcceptedStateSummary
	//	*Message_AcceptedStateSummary_
	//	*Message_GetAcceptedFrontier
	//	*Message_AcceptedFrontier_
	//	*Message_GetAccepted
	//	*Message_Accepted_
	//	*Message_GetAncestors
	//	*Message_Ancestors_
	//	*Message_Get
	//	*Message_Put
	//	*Message_PushQuery
	//	*Message_PullQuery
	//	*Message_Chits
	//	*Message_Request
	//	*Message_Response
	//	*Message_Gossip
	//	*Message_Error
	//	*Message_Simplex
	Message isMessage_Message `protobuf_oneof:"message"`
	// contains filtered or unexported fields
}

Represents peer-to-peer messages. Only one type can be non-null.

func (*Message) Descriptor deprecated

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

Deprecated: Use Message.ProtoReflect.Descriptor instead.

func (*Message) GetAcceptedFrontier_

func (x *Message) GetAcceptedFrontier_() *AcceptedFrontier

func (*Message) GetAcceptedStateSummary_

func (x *Message) GetAcceptedStateSummary_() *AcceptedStateSummary

func (*Message) GetAccepted_

func (x *Message) GetAccepted_() *Accepted

func (*Message) GetAncestors_

func (x *Message) GetAncestors_() *Ancestors

func (*Message) GetChits

func (x *Message) GetChits() *Chits

func (*Message) GetCompressedZstd

func (x *Message) GetCompressedZstd() []byte

func (*Message) GetError added in v1.22.87

func (x *Message) GetError() *Error

func (*Message) GetGet

func (x *Message) GetGet() *Get

func (*Message) GetGetAccepted

func (x *Message) GetGetAccepted() *GetAccepted

func (*Message) GetGetAcceptedFrontier

func (x *Message) GetGetAcceptedFrontier() *GetAcceptedFrontier

func (*Message) GetGetAcceptedStateSummary

func (x *Message) GetGetAcceptedStateSummary() *GetAcceptedStateSummary

func (*Message) GetGetAncestors

func (x *Message) GetGetAncestors() *GetAncestors

func (*Message) GetGetPeerList

func (x *Message) GetGetPeerList() *GetPeerList

func (*Message) GetGetStateSummaryFrontier

func (x *Message) GetGetStateSummaryFrontier() *GetStateSummaryFrontier

func (*Message) GetGossip added in v1.22.87

func (x *Message) GetGossip() *Gossip

func (*Message) GetHandshake

func (x *Message) GetHandshake() *Handshake

func (*Message) GetMessage

func (m *Message) GetMessage() isMessage_Message

func (*Message) GetPeerList_

func (x *Message) GetPeerList_() *PeerList

func (*Message) GetPing

func (x *Message) GetPing() *Ping

func (*Message) GetPong

func (x *Message) GetPong() *Pong

func (*Message) GetPullQuery

func (x *Message) GetPullQuery() *PullQuery

func (*Message) GetPushQuery

func (x *Message) GetPushQuery() *PushQuery

func (*Message) GetPut

func (x *Message) GetPut() *Put

func (*Message) GetRequest added in v1.22.87

func (x *Message) GetRequest() *Request

func (*Message) GetResponse added in v1.22.87

func (x *Message) GetResponse() *Response

func (*Message) GetSimplex

func (x *Message) GetSimplex() *Simplex

func (*Message) GetStateSummaryFrontier_

func (x *Message) GetStateSummaryFrontier_() *StateSummaryFrontier

func (*Message) ProtoMessage

func (*Message) ProtoMessage()

func (*Message) ProtoReflect

func (x *Message) ProtoReflect() protoreflect.Message

func (*Message) Reset

func (x *Message) Reset()

func (*Message) String

func (x *Message) String() string

type Message_AcceptedFrontier_

type Message_AcceptedFrontier_ struct {
	AcceptedFrontier_ *AcceptedFrontier `protobuf:"bytes,20,opt,name=accepted_frontier,json=acceptedFrontier,proto3,oneof"`
}

type Message_AcceptedStateSummary_

type Message_AcceptedStateSummary_ struct {
	AcceptedStateSummary_ *AcceptedStateSummary `protobuf:"bytes,18,opt,name=accepted_state_summary,json=acceptedStateSummary,proto3,oneof"`
}

type Message_Accepted_

type Message_Accepted_ struct {
	Accepted_ *Accepted `protobuf:"bytes,22,opt,name=accepted,proto3,oneof"`
}

type Message_Ancestors_

type Message_Ancestors_ struct {
	Ancestors_ *Ancestors `protobuf:"bytes,24,opt,name=ancestors,proto3,oneof"`
}

type Message_Chits

type Message_Chits struct {
	Chits *Chits `protobuf:"bytes,29,opt,name=chits,proto3,oneof"`
}

type Message_CompressedZstd

type Message_CompressedZstd struct {
	// zstd-compressed bytes of a "p2p.Message" whose "oneof" "message" field is
	// NOT compressed_* BUT one of the message types (e.g. ping, pong, etc.).
	// This field is only set if the message type supports compression.
	CompressedZstd []byte `protobuf:"bytes,2,opt,name=compressed_zstd,json=compressedZstd,proto3,oneof"`
}

type Message_Error added in v1.22.87

type Message_Error struct {
	Error *Error `protobuf:"bytes,34,opt,name=error,proto3,oneof"`
}

type Message_Get

type Message_Get struct {
	// Consensus messages:
	Get *Get `protobuf:"bytes,25,opt,name=get,proto3,oneof"`
}

type Message_GetAccepted

type Message_GetAccepted struct {
	GetAccepted *GetAccepted `protobuf:"bytes,21,opt,name=get_accepted,json=getAccepted,proto3,oneof"`
}

type Message_GetAcceptedFrontier

type Message_GetAcceptedFrontier struct {
	// Bootstrapping messages:
	GetAcceptedFrontier *GetAcceptedFrontier `protobuf:"bytes,19,opt,name=get_accepted_frontier,json=getAcceptedFrontier,proto3,oneof"`
}

type Message_GetAcceptedStateSummary

type Message_GetAcceptedStateSummary struct {
	GetAcceptedStateSummary *GetAcceptedStateSummary `protobuf:"bytes,17,opt,name=get_accepted_state_summary,json=getAcceptedStateSummary,proto3,oneof"`
}

type Message_GetAncestors

type Message_GetAncestors struct {
	GetAncestors *GetAncestors `protobuf:"bytes,23,opt,name=get_ancestors,json=getAncestors,proto3,oneof"`
}

type Message_GetPeerList

type Message_GetPeerList struct {
	GetPeerList *GetPeerList `protobuf:"bytes,35,opt,name=get_peer_list,json=getPeerList,proto3,oneof"`
}

type Message_GetStateSummaryFrontier

type Message_GetStateSummaryFrontier struct {
	// State-sync messages:
	GetStateSummaryFrontier *GetStateSummaryFrontier `protobuf:"bytes,15,opt,name=get_state_summary_frontier,json=getStateSummaryFrontier,proto3,oneof"`
}

type Message_Gossip added in v1.22.87

type Message_Gossip struct {
	Gossip *Gossip `protobuf:"bytes,32,opt,name=gossip,proto3,oneof"`
}

type Message_Handshake

type Message_Handshake struct {
	Handshake *Handshake `protobuf:"bytes,13,opt,name=handshake,proto3,oneof"`
}

type Message_PeerList_

type Message_PeerList_ struct {
	PeerList_ *PeerList `protobuf:"bytes,14,opt,name=peer_list,json=peerList,proto3,oneof"`
}

type Message_Ping

type Message_Ping struct {
	// Network messages:
	Ping *Ping `protobuf:"bytes,11,opt,name=ping,proto3,oneof"`
}

type Message_Pong

type Message_Pong struct {
	Pong *Pong `protobuf:"bytes,12,opt,name=pong,proto3,oneof"`
}

type Message_PullQuery

type Message_PullQuery struct {
	PullQuery *PullQuery `protobuf:"bytes,28,opt,name=pull_query,json=pullQuery,proto3,oneof"`
}

type Message_PushQuery

type Message_PushQuery struct {
	PushQuery *PushQuery `protobuf:"bytes,27,opt,name=push_query,json=pushQuery,proto3,oneof"`
}

type Message_Put

type Message_Put struct {
	Put *Put `protobuf:"bytes,26,opt,name=put,proto3,oneof"`
}

type Message_Request added in v1.22.87

type Message_Request struct {
	// App messages:
	Request *Request `protobuf:"bytes,30,opt,name=request,proto3,oneof"`
}

type Message_Response added in v1.22.87

type Message_Response struct {
	Response *Response `protobuf:"bytes,31,opt,name=response,proto3,oneof"`
}

type Message_Simplex

type Message_Simplex struct {
	// Simplex messages:
	Simplex *Simplex `protobuf:"bytes,36,opt,name=simplex,proto3,oneof"`
}

type Message_StateSummaryFrontier_

type Message_StateSummaryFrontier_ struct {
	StateSummaryFrontier_ *StateSummaryFrontier `protobuf:"bytes,16,opt,name=state_summary_frontier,json=stateSummaryFrontier,proto3,oneof"`
}

type PeerList

type PeerList struct {
	ClaimedIpPorts []*ClaimedIpPort `protobuf:"bytes,1,rep,name=claimed_ip_ports,json=claimedIpPorts,proto3" json:"claimed_ip_ports,omitempty"`
	// contains filtered or unexported fields
}

PeerList contains network-level metadata for a set of validators.

PeerList must be sent in response to an inbound Handshake message from a remote peer a peer wants to connect to. Once a PeerList is received after a Handshake message, the p2p handshake is complete and the connection is established.

PeerList should be sent in response to a GetPeerlist message if the handshake has been completed.

func (*PeerList) Descriptor deprecated

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

Deprecated: Use PeerList.ProtoReflect.Descriptor instead.

func (*PeerList) GetClaimedIpPorts

func (x *PeerList) GetClaimedIpPorts() []*ClaimedIpPort

func (*PeerList) ProtoMessage

func (*PeerList) ProtoMessage()

func (*PeerList) ProtoReflect

func (x *PeerList) ProtoReflect() protoreflect.Message

func (*PeerList) Reset

func (x *PeerList) Reset()

func (*PeerList) String

func (x *PeerList) String() string

type Ping

type Ping struct {

	// Uptime percentage on the primary network [0, 100]
	Uptime uint32 `protobuf:"varint,1,opt,name=uptime,proto3" json:"uptime,omitempty"`
	// contains filtered or unexported fields
}

Ping reports a peer's perceived uptime percentage.

Peers should respond to Ping with a Pong.

func (*Ping) Descriptor deprecated

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

Deprecated: Use Ping.ProtoReflect.Descriptor instead.

func (*Ping) GetUptime

func (x *Ping) GetUptime() uint32

func (*Ping) ProtoMessage

func (*Ping) ProtoMessage()

func (*Ping) ProtoReflect

func (x *Ping) ProtoReflect() protoreflect.Message

func (*Ping) Reset

func (x *Ping) Reset()

func (*Ping) String

func (x *Ping) String() string

type Pong

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

Pong is sent in response to a Ping.

func (*Pong) Descriptor deprecated

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

Deprecated: Use Pong.ProtoReflect.Descriptor instead.

func (*Pong) ProtoMessage

func (*Pong) ProtoMessage()

func (*Pong) ProtoReflect

func (x *Pong) ProtoReflect() protoreflect.Message

func (*Pong) Reset

func (x *Pong) Reset()

func (*Pong) String

func (x *Pong) String() string

type ProtocolMetadata

type ProtocolMetadata struct {

	// Version defines the version of the protocol this block was created with.
	Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
	// Epoch returns the epoch in which the block was proposed
	Epoch uint64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"`
	// Round returns the round number in which the block was proposed.
	// Can also be an empty block.
	Round uint64 `protobuf:"varint,3,opt,name=round,proto3" json:"round,omitempty"`
	// Seq is the order of the block among all blocks in the blockchain.
	// Cannot correspond to an empty block.
	Seq uint64 `protobuf:"varint,4,opt,name=seq,proto3" json:"seq,omitempty"`
	// Prev returns the digest of the previous data block
	Prev []byte `protobuf:"bytes,5,opt,name=prev,proto3" json:"prev,omitempty"`
	// contains filtered or unexported fields
}

func (*ProtocolMetadata) Descriptor deprecated

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

Deprecated: Use ProtocolMetadata.ProtoReflect.Descriptor instead.

func (*ProtocolMetadata) GetEpoch

func (x *ProtocolMetadata) GetEpoch() uint64

func (*ProtocolMetadata) GetPrev

func (x *ProtocolMetadata) GetPrev() []byte

func (*ProtocolMetadata) GetRound

func (x *ProtocolMetadata) GetRound() uint64

func (*ProtocolMetadata) GetSeq

func (x *ProtocolMetadata) GetSeq() uint64

func (*ProtocolMetadata) GetVersion

func (x *ProtocolMetadata) GetVersion() uint32

func (*ProtocolMetadata) ProtoMessage

func (*ProtocolMetadata) ProtoMessage()

func (*ProtocolMetadata) ProtoReflect

func (x *ProtocolMetadata) ProtoReflect() protoreflect.Message

func (*ProtocolMetadata) Reset

func (x *ProtocolMetadata) Reset()

func (*ProtocolMetadata) String

func (x *ProtocolMetadata) String() string

type PullQuery

type PullQuery struct {

	// Chain being requested from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Unique identifier for this request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Timeout (ns) for this request
	Deadline uint64 `protobuf:"varint,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
	// Container id being gossiped
	ContainerId []byte `protobuf:"bytes,4,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	// Requesting peer's last accepted height
	RequestedHeight uint64 `protobuf:"varint,6,opt,name=requested_height,json=requestedHeight,proto3" json:"requested_height,omitempty"`
	// contains filtered or unexported fields
}

PullQuery requests the preferences of a remote peer given a container id.

Remote peers should respond to a PullQuery with a Chits message

func (*PullQuery) Descriptor deprecated

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

Deprecated: Use PullQuery.ProtoReflect.Descriptor instead.

func (*PullQuery) GetChainId

func (x *PullQuery) GetChainId() []byte

func (*PullQuery) GetContainerId

func (x *PullQuery) GetContainerId() []byte

func (*PullQuery) GetDeadline

func (x *PullQuery) GetDeadline() uint64

func (*PullQuery) GetRequestId

func (x *PullQuery) GetRequestId() uint32

func (*PullQuery) GetRequestedHeight

func (x *PullQuery) GetRequestedHeight() uint64

func (*PullQuery) ProtoMessage

func (*PullQuery) ProtoMessage()

func (*PullQuery) ProtoReflect

func (x *PullQuery) ProtoReflect() protoreflect.Message

func (*PullQuery) Reset

func (x *PullQuery) Reset()

func (*PullQuery) String

func (x *PullQuery) String() string

type PushQuery

type PushQuery struct {

	// Chain being requested from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Unique identifier for this request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Timeout (ns) for this request
	Deadline uint64 `protobuf:"varint,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
	// Container being gossiped
	Container []byte `protobuf:"bytes,4,opt,name=container,proto3" json:"container,omitempty"`
	// Requesting peer's last accepted height
	RequestedHeight uint64 `protobuf:"varint,6,opt,name=requested_height,json=requestedHeight,proto3" json:"requested_height,omitempty"`
	// contains filtered or unexported fields
}

PushQuery requests the preferences of a remote peer given a container.

Remote peers should respond to a PushQuery with a Chits message

func (*PushQuery) Descriptor deprecated

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

Deprecated: Use PushQuery.ProtoReflect.Descriptor instead.

func (*PushQuery) GetChainId

func (x *PushQuery) GetChainId() []byte

func (*PushQuery) GetContainer

func (x *PushQuery) GetContainer() []byte

func (*PushQuery) GetDeadline

func (x *PushQuery) GetDeadline() uint64

func (*PushQuery) GetRequestId

func (x *PushQuery) GetRequestId() uint32

func (*PushQuery) GetRequestedHeight

func (x *PushQuery) GetRequestedHeight() uint64

func (*PushQuery) ProtoMessage

func (*PushQuery) ProtoMessage()

func (*PushQuery) ProtoReflect

func (x *PushQuery) ProtoReflect() protoreflect.Message

func (*PushQuery) Reset

func (x *PushQuery) Reset()

func (*PushQuery) String

func (x *PushQuery) String() string

type Put

type Put struct {

	// Chain being responded from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Request id of the original Get request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Requested container
	Container []byte `protobuf:"bytes,3,opt,name=container,proto3" json:"container,omitempty"`
	// contains filtered or unexported fields
}

Put is sent in response to Get with the requested block.

func (*Put) Descriptor deprecated

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

Deprecated: Use Put.ProtoReflect.Descriptor instead.

func (*Put) GetChainId

func (x *Put) GetChainId() []byte

func (*Put) GetContainer

func (x *Put) GetContainer() []byte

func (*Put) GetRequestId

func (x *Put) GetRequestId() uint32

func (*Put) ProtoMessage

func (*Put) ProtoMessage()

func (*Put) ProtoReflect

func (x *Put) ProtoReflect() protoreflect.Message

func (*Put) Reset

func (x *Put) Reset()

func (*Put) String

func (x *Put) String() string

type QuorumCertificate

type QuorumCertificate struct {
	BlockHeader       *BlockHeader `protobuf:"bytes,1,opt,name=block_header,json=blockHeader,proto3" json:"block_header,omitempty"`
	QuorumCertificate []byte       `protobuf:"bytes,2,opt,name=quorum_certificate,json=quorumCertificate,proto3" json:"quorum_certificate,omitempty"`
	// contains filtered or unexported fields
}

func (*QuorumCertificate) Descriptor deprecated

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

Deprecated: Use QuorumCertificate.ProtoReflect.Descriptor instead.

func (*QuorumCertificate) GetBlockHeader

func (x *QuorumCertificate) GetBlockHeader() *BlockHeader

func (*QuorumCertificate) GetQuorumCertificate

func (x *QuorumCertificate) GetQuorumCertificate() []byte

func (*QuorumCertificate) ProtoMessage

func (*QuorumCertificate) ProtoMessage()

func (*QuorumCertificate) ProtoReflect

func (x *QuorumCertificate) ProtoReflect() protoreflect.Message

func (*QuorumCertificate) Reset

func (x *QuorumCertificate) Reset()

func (*QuorumCertificate) String

func (x *QuorumCertificate) String() string

type QuorumRound

type QuorumRound struct {
	Block             []byte             `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"`
	Notarization      *QuorumCertificate `protobuf:"bytes,2,opt,name=notarization,proto3" json:"notarization,omitempty"`
	EmptyNotarization *EmptyNotarization `protobuf:"bytes,3,opt,name=empty_notarization,json=emptyNotarization,proto3" json:"empty_notarization,omitempty"`
	Finalization      *QuorumCertificate `protobuf:"bytes,4,opt,name=finalization,proto3" json:"finalization,omitempty"`
	// contains filtered or unexported fields
}

QuorumRound represents a round that has acheived quorum on either (empty notarization), (block & notarization), or (block, finalization certificate)

func (*QuorumRound) Descriptor deprecated

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

Deprecated: Use QuorumRound.ProtoReflect.Descriptor instead.

func (*QuorumRound) GetBlock

func (x *QuorumRound) GetBlock() []byte

func (*QuorumRound) GetEmptyNotarization

func (x *QuorumRound) GetEmptyNotarization() *EmptyNotarization

func (*QuorumRound) GetFinalization

func (x *QuorumRound) GetFinalization() *QuorumCertificate

func (*QuorumRound) GetNotarization

func (x *QuorumRound) GetNotarization() *QuorumCertificate

func (*QuorumRound) ProtoMessage

func (*QuorumRound) ProtoMessage()

func (*QuorumRound) ProtoReflect

func (x *QuorumRound) ProtoReflect() protoreflect.Message

func (*QuorumRound) Reset

func (x *QuorumRound) Reset()

func (*QuorumRound) String

func (x *QuorumRound) String() string

type ReplicationRequest

type ReplicationRequest struct {
	Seqs        []uint64 `protobuf:"varint,1,rep,packed,name=seqs,proto3" json:"seqs,omitempty"`                           // sequences we are requesting
	LatestRound uint64   `protobuf:"varint,2,opt,name=latest_round,json=latestRound,proto3" json:"latest_round,omitempty"` // latest round that we are aware of
	// contains filtered or unexported fields
}

func (*ReplicationRequest) Descriptor deprecated

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

Deprecated: Use ReplicationRequest.ProtoReflect.Descriptor instead.

func (*ReplicationRequest) GetLatestRound

func (x *ReplicationRequest) GetLatestRound() uint64

func (*ReplicationRequest) GetSeqs

func (x *ReplicationRequest) GetSeqs() []uint64

func (*ReplicationRequest) ProtoMessage

func (*ReplicationRequest) ProtoMessage()

func (*ReplicationRequest) ProtoReflect

func (x *ReplicationRequest) ProtoReflect() protoreflect.Message

func (*ReplicationRequest) Reset

func (x *ReplicationRequest) Reset()

func (*ReplicationRequest) String

func (x *ReplicationRequest) String() string

type ReplicationResponse

type ReplicationResponse struct {
	Data        []*QuorumRound `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`                                  // requested seqs. not required to be in particular order
	LatestRound *QuorumRound   `protobuf:"bytes,2,opt,name=latest_round,json=latestRound,proto3" json:"latest_round,omitempty"` // latest round the responding node is aware of
	// contains filtered or unexported fields
}

func (*ReplicationResponse) Descriptor deprecated

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

Deprecated: Use ReplicationResponse.ProtoReflect.Descriptor instead.

func (*ReplicationResponse) GetData

func (x *ReplicationResponse) GetData() []*QuorumRound

func (*ReplicationResponse) GetLatestRound

func (x *ReplicationResponse) GetLatestRound() *QuorumRound

func (*ReplicationResponse) ProtoMessage

func (*ReplicationResponse) ProtoMessage()

func (*ReplicationResponse) ProtoReflect

func (x *ReplicationResponse) ProtoReflect() protoreflect.Message

func (*ReplicationResponse) Reset

func (x *ReplicationResponse) Reset()

func (*ReplicationResponse) String

func (x *ReplicationResponse) String() string

type Request added in v1.22.87

type Request struct {

	// Chain being requested from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Unique identifier for this request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Timeout (ns) for this request
	Deadline uint64 `protobuf:"varint,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
	// Request body
	AppBytes []byte `protobuf:"bytes,4,opt,name=app_bytes,json=appBytes,proto3" json:"app_bytes,omitempty"`
	// contains filtered or unexported fields
}

Request is a VM-defined request.

Remote peers must respond to Request with a corresponding Response or Error

func (*Request) Descriptor deprecated added in v1.22.87

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

Deprecated: Use Request.ProtoReflect.Descriptor instead.

func (*Request) GetAppBytes added in v1.22.87

func (x *Request) GetAppBytes() []byte

func (*Request) GetChainId added in v1.22.87

func (x *Request) GetChainId() []byte

func (*Request) GetDeadline added in v1.22.87

func (x *Request) GetDeadline() uint64

func (*Request) GetRequestId added in v1.22.87

func (x *Request) GetRequestId() uint32

func (*Request) ProtoMessage added in v1.22.87

func (*Request) ProtoMessage()

func (*Request) ProtoReflect added in v1.22.87

func (x *Request) ProtoReflect() protoreflect.Message

func (*Request) Reset added in v1.22.87

func (x *Request) Reset()

func (*Request) String added in v1.22.87

func (x *Request) String() string

type Response added in v1.22.87

type Response struct {

	// Chain being responded from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Request id of the original Request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// Response body
	AppBytes []byte `protobuf:"bytes,3,opt,name=app_bytes,json=appBytes,proto3" json:"app_bytes,omitempty"`
	// contains filtered or unexported fields
}

Response is a VM-defined response sent in response to Request

func (*Response) Descriptor deprecated added in v1.22.87

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

Deprecated: Use Response.ProtoReflect.Descriptor instead.

func (*Response) GetAppBytes added in v1.22.87

func (x *Response) GetAppBytes() []byte

func (*Response) GetChainId added in v1.22.87

func (x *Response) GetChainId() []byte

func (*Response) GetRequestId added in v1.22.87

func (x *Response) GetRequestId() uint32

func (*Response) ProtoMessage added in v1.22.87

func (*Response) ProtoMessage()

func (*Response) ProtoReflect added in v1.22.87

func (x *Response) ProtoReflect() protoreflect.Message

func (*Response) Reset added in v1.22.87

func (x *Response) Reset()

func (*Response) String added in v1.22.87

func (x *Response) String() string

type Signature

type Signature struct {

	// Signer identifies who the signature came from.
	Signer []byte `protobuf:"bytes,1,opt,name=signer,proto3" json:"signer,omitempty"`
	// Value is the actual cryptographic signature.
	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*Signature) Descriptor deprecated

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

Deprecated: Use Signature.ProtoReflect.Descriptor instead.

func (*Signature) GetSigner

func (x *Signature) GetSigner() []byte

func (*Signature) GetValue

func (x *Signature) GetValue() []byte

func (*Signature) ProtoMessage

func (*Signature) ProtoMessage()

func (*Signature) ProtoReflect

func (x *Signature) ProtoReflect() protoreflect.Message

func (*Signature) Reset

func (x *Signature) Reset()

func (*Signature) String

func (x *Signature) String() string

type Simplex

type Simplex struct {
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Types that are assignable to Message:
	//
	//	*Simplex_BlockProposal
	//	*Simplex_Vote
	//	*Simplex_EmptyVote
	//	*Simplex_FinalizeVote
	//	*Simplex_Notarization
	//	*Simplex_EmptyNotarization
	//	*Simplex_Finalization
	//	*Simplex_ReplicationRequest
	//	*Simplex_ReplicationResponse
	Message isSimplex_Message `protobuf_oneof:"message"`
	// contains filtered or unexported fields
}

func (*Simplex) Descriptor deprecated

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

Deprecated: Use Simplex.ProtoReflect.Descriptor instead.

func (*Simplex) GetBlockProposal

func (x *Simplex) GetBlockProposal() *BlockProposal

func (*Simplex) GetChainId

func (x *Simplex) GetChainId() []byte

func (*Simplex) GetEmptyNotarization

func (x *Simplex) GetEmptyNotarization() *EmptyNotarization

func (*Simplex) GetEmptyVote

func (x *Simplex) GetEmptyVote() *EmptyVote

func (*Simplex) GetFinalization

func (x *Simplex) GetFinalization() *QuorumCertificate

func (*Simplex) GetFinalizeVote

func (x *Simplex) GetFinalizeVote() *Vote

func (*Simplex) GetMessage

func (m *Simplex) GetMessage() isSimplex_Message

func (*Simplex) GetNotarization

func (x *Simplex) GetNotarization() *QuorumCertificate

func (*Simplex) GetReplicationRequest

func (x *Simplex) GetReplicationRequest() *ReplicationRequest

func (*Simplex) GetReplicationResponse

func (x *Simplex) GetReplicationResponse() *ReplicationResponse

func (*Simplex) GetVote

func (x *Simplex) GetVote() *Vote

func (*Simplex) ProtoMessage

func (*Simplex) ProtoMessage()

func (*Simplex) ProtoReflect

func (x *Simplex) ProtoReflect() protoreflect.Message

func (*Simplex) Reset

func (x *Simplex) Reset()

func (*Simplex) String

func (x *Simplex) String() string

type Simplex_BlockProposal

type Simplex_BlockProposal struct {
	BlockProposal *BlockProposal `protobuf:"bytes,2,opt,name=block_proposal,json=blockProposal,proto3,oneof"`
}

type Simplex_EmptyNotarization

type Simplex_EmptyNotarization struct {
	EmptyNotarization *EmptyNotarization `protobuf:"bytes,7,opt,name=empty_notarization,json=emptyNotarization,proto3,oneof"`
}

type Simplex_EmptyVote

type Simplex_EmptyVote struct {
	EmptyVote *EmptyVote `protobuf:"bytes,4,opt,name=empty_vote,json=emptyVote,proto3,oneof"`
}

type Simplex_Finalization

type Simplex_Finalization struct {
	Finalization *QuorumCertificate `protobuf:"bytes,8,opt,name=finalization,proto3,oneof"`
}

type Simplex_FinalizeVote

type Simplex_FinalizeVote struct {
	FinalizeVote *Vote `protobuf:"bytes,5,opt,name=finalize_vote,json=finalizeVote,proto3,oneof"`
}

type Simplex_Notarization

type Simplex_Notarization struct {
	Notarization *QuorumCertificate `protobuf:"bytes,6,opt,name=notarization,proto3,oneof"`
}

type Simplex_ReplicationRequest

type Simplex_ReplicationRequest struct {
	ReplicationRequest *ReplicationRequest `protobuf:"bytes,9,opt,name=replication_request,json=replicationRequest,proto3,oneof"`
}

type Simplex_ReplicationResponse

type Simplex_ReplicationResponse struct {
	ReplicationResponse *ReplicationResponse `protobuf:"bytes,10,opt,name=replication_response,json=replicationResponse,proto3,oneof"`
}

type Simplex_Vote

type Simplex_Vote struct {
	Vote *Vote `protobuf:"bytes,3,opt,name=vote,proto3,oneof"`
}

type StateSummaryFrontier

type StateSummaryFrontier struct {

	// Chain being responded from
	ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// Request id of the original GetStateSummaryFrontier request
	RequestId uint32 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
	// The requested state summary
	Summary []byte `protobuf:"bytes,3,opt,name=summary,proto3" json:"summary,omitempty"`
	// contains filtered or unexported fields
}

StateSummaryFrontier is sent in response to a GetStateSummaryFrontier request

func (*StateSummaryFrontier) Descriptor deprecated

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

Deprecated: Use StateSummaryFrontier.ProtoReflect.Descriptor instead.

func (*StateSummaryFrontier) GetChainId

func (x *StateSummaryFrontier) GetChainId() []byte

func (*StateSummaryFrontier) GetRequestId

func (x *StateSummaryFrontier) GetRequestId() uint32

func (*StateSummaryFrontier) GetSummary

func (x *StateSummaryFrontier) GetSummary() []byte

func (*StateSummaryFrontier) ProtoMessage

func (*StateSummaryFrontier) ProtoMessage()

func (*StateSummaryFrontier) ProtoReflect

func (x *StateSummaryFrontier) ProtoReflect() protoreflect.Message

func (*StateSummaryFrontier) Reset

func (x *StateSummaryFrontier) Reset()

func (*StateSummaryFrontier) String

func (x *StateSummaryFrontier) String() string

type Vote

type Vote struct {
	BlockHeader *BlockHeader `protobuf:"bytes,1,opt,name=block_header,json=blockHeader,proto3" json:"block_header,omitempty"`
	Signature   *Signature   `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
	// contains filtered or unexported fields
}

func (*Vote) Descriptor deprecated

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

Deprecated: Use Vote.ProtoReflect.Descriptor instead.

func (*Vote) GetBlockHeader

func (x *Vote) GetBlockHeader() *BlockHeader

func (*Vote) GetSignature

func (x *Vote) GetSignature() *Signature

func (*Vote) ProtoMessage

func (*Vote) ProtoMessage()

func (*Vote) ProtoReflect

func (x *Vote) ProtoReflect() protoreflect.Message

func (*Vote) Reset

func (x *Vote) Reset()

func (*Vote) String

func (x *Vote) String() string

Jump to

Keyboard shortcuts

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