isaacnetwork

package
v0.0.0-...-b559f02 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2024 License: GPL-3.0 Imports: 28 Imported by: 0

Documentation

Overview

Package isaacnetwork provides network.

Index

Constants

This section is empty.

Variables

View Source
var (
	OperationRequestHeaderHint              = hint.MustNewHint("operation-header-v0.0.1")
	SendOperationRequestHeaderHint          = hint.MustNewHint("send-operation-header-v0.0.1")
	RequestProposalRequestHeaderHint        = hint.MustNewHint("request-proposal-header-v0.0.1")
	ProposalRequestHeaderHint               = hint.MustNewHint("proposal-header-v0.0.1")
	LastSuffrageProofRequestHeaderHint      = hint.MustNewHint("last-suffrage-proof-header-v0.0.1")
	SuffrageProofRequestHeaderHint          = hint.MustNewHint("suffrage-proof-header-v0.0.1")
	LastBlockMapRequestHeaderHint           = hint.MustNewHint("last-blockmap-header-v0.0.1")
	BlockMapRequestHeaderHint               = hint.MustNewHint("blockmap-header-v0.0.1")
	BlockItemRequestHeaderHint              = hint.MustNewHint("block-item-header-v0.0.1")
	BlockItemFilesRequestHeaderHint         = hint.MustNewHint("block-item-files-header-v0.0.1")
	NodeChallengeRequestHeaderHint          = hint.MustNewHint("node-challenge-header-v0.0.1")
	SuffrageNodeConnInfoRequestHeaderHint   = hint.MustNewHint("suffrage-node-conninfo-header-v0.0.1")
	SyncSourceConnInfoRequestHeaderHint     = hint.MustNewHint("sync-source-conninfo-header-v0.0.1")
	StateRequestHeaderHint                  = hint.MustNewHint("state-header-v0.0.1")
	ExistsInStateOperationRequestHeaderHint = hint.MustNewHint("exists-instate-operation-header-v0.0.1")
	NodeInfoRequestHeaderHint               = hint.MustNewHint("node-info-header-v0.0.1")
	SendBallotsHeaderHint                   = hint.MustNewHint("send-ballots-header-v0.0.1")
	SetAllowConsensusHeaderHint             = hint.MustNewHint("set-allow-consensus-header-v0.0.1")
	StreamOperationsHeaderHint              = hint.MustNewHint("stream-operations-header-v0.0.1")
	StartHandoverHeaderHint                 = hint.MustNewHint("start-handover-header-v0.0.1")
	CheckHandoverHeaderHint                 = hint.MustNewHint("check-handover-header-v0.0.1")
	AskHandoverHeaderHint                   = hint.MustNewHint("ask-handover-header-v0.0.1")
	AskHandoverResponseHeaderHint           = hint.MustNewHint("ask-handover-response-header-v0.0.1")
	CancelHandoverHeaderHint                = hint.MustNewHint("cancel-handover-header-v0.0.1")
	HandoverMessageHeaderHint               = hint.MustNewHint("handover-message-header-v0.0.1")
	CheckHandoverXHeaderHint                = hint.MustNewHint("check-handover-x-header-v0.0.1")
	BlockItemResponseHeaderHint             = hint.MustNewHint("block-item-response-header-v0.0.1")
)
View Source
var (
	HandlerNameRequestProposal        quicstream.HandlerName = "request_proposal"
	HandlerNameProposal               quicstream.HandlerName = "proposal"
	HandlerNameLastSuffrageProof      quicstream.HandlerName = "last_suffrage_proof"
	HandlerNameSuffrageProof          quicstream.HandlerName = "suffrage_proof"
	HandlerNameLastBlockMap           quicstream.HandlerName = "last_blockmap"
	HandlerNameBlockMap               quicstream.HandlerName = "blockmap"
	HandlerNameBlockItem              quicstream.HandlerName = "block_item"
	HandlerNameBlockItemFiles         quicstream.HandlerName = "block_item_files"
	HandlerNameNodeChallenge          quicstream.HandlerName = "node_challenge"
	HandlerNameSuffrageNodeConnInfo   quicstream.HandlerName = "suffrage_node_conninfo"
	HandlerNameSyncSourceConnInfo     quicstream.HandlerName = "sync_source_conninfo"
	HandlerNameOperation              quicstream.HandlerName = "operation"
	HandlerNameSendOperation          quicstream.HandlerName = "send_operation"
	HandlerNameState                  quicstream.HandlerName = "state"
	HandlerNameExistsInStateOperation quicstream.HandlerName = "exists_instate_operation"
	HandlerNameNodeInfo               quicstream.HandlerName = "node_info"
	HandlerNameSendBallots            quicstream.HandlerName = "send_ballots"
	HandlerNameSetAllowConsensus      quicstream.HandlerName = "set_allow_consensus"
	HandlerNameStreamOperations       quicstream.HandlerName = "stream_operations"
	HandlerNameStartHandover          quicstream.HandlerName = "start_handover"
	HandlerNameCheckHandover          quicstream.HandlerName = "check_handover"
	HandlerNameAskHandover            quicstream.HandlerName = "ask_handover"
	HandlerNameCancelHandover         quicstream.HandlerName = "cancel_handover"
	HandlerNameHandoverMessage        quicstream.HandlerName = "handover_message"
	HandlerNameCheckHandoverX         quicstream.HandlerName = "check_handover_x"
)
View Source
var ContextKeyNodeChallengedNode = util.ContextKey("node-challenge-node")
View Source
var ErrNoMoreNext = util.NewIDError("no more next")
View Source
var NodeConnInfoHint = hint.MustNewHint("node-conninfo-v0.0.1")
View Source
var NodeInfoHint = hint.MustNewHint("node-info-v0.0.1")

Functions

func HCReqResBodyDecOK

func HCReqResBodyDecOK(
	ctx context.Context,
	broker *quicstreamheader.ClientBroker,
	header quicstreamheader.RequestHeader,
	decodef func(encoder.Encoder, io.Reader) error,
) (bool, error)

func QuicstreamHandlerBlockItem

func QuicstreamHandlerBlockItem(
	blockItemf func(
		base.Height,
		base.BlockItemType,
		func(_ io.Reader, found bool, uri url.URL, compressFormat string) error,
	) error,
) quicstreamheader.Handler[BlockItemRequestHeader]

func QuicstreamHandlerBlockItemFiles

func QuicstreamHandlerBlockItemFiles(
	blockItemFilesf func(
		base.Height,
		func(_ io.Reader, found bool) error,
	) error,
) quicstreamheader.Handler[BlockItemFilesRequestHeader]

func QuicstreamHandlerBlockMap

func QuicstreamHandlerBlockMap(
	blockMapf func(base.Height) (string, []byte, []byte, bool, error),
) quicstreamheader.Handler[BlockMapRequestHeader]

func QuicstreamHandlerExistsInStateOperation

func QuicstreamHandlerExistsInStateOperation(
	existsInStateOperationf func(util.Hash) (bool, error),
) quicstreamheader.Handler[ExistsInStateOperationRequestHeader]

func QuicstreamHandlerLastBlockMap

func QuicstreamHandlerLastBlockMap(
	lastBlockMapf func(util.Hash) (string, []byte, []byte, bool, error),
) quicstreamheader.Handler[LastBlockMapRequestHeader]

LastBlockMap responds the last BlockMap to client; if there is no BlockMap, it returns nil BlockMap and not updated without error.

func QuicstreamHandlerLastSuffrageProof

func QuicstreamHandlerLastSuffrageProof(
	lastSuffrageProoff func(suffragestate util.Hash) (string, []byte, []byte, bool, error),
) quicstreamheader.Handler[LastSuffrageProofRequestHeader]

func QuicstreamHandlerNodeChallenge

func QuicstreamHandlerNodeChallenge(
	networkID base.NetworkID,
	local base.LocalNode,
) quicstreamheader.Handler[NodeChallengeRequestHeader]

func QuicstreamHandlerNodeInfo

func QuicstreamHandlerNodeInfo(
	getNodeInfo func() ([]byte, error),
) quicstreamheader.Handler[NodeInfoRequestHeader]

func QuicstreamHandlerOperation

func QuicstreamHandlerOperation(
	oppool isaac.NewOperationPool,
	getFromHandoverX func(context.Context, OperationRequestHeader) (
		enchint string, body []byte, found bool, _ error,
	),
) quicstreamheader.Handler[OperationRequestHeader]

func QuicstreamHandlerSendBallots

func QuicstreamHandlerSendBallots(
	networkID base.NetworkID,
	votef func(base.BallotSignFact) error,
	maxMessageSize func() uint64,
) quicstreamheader.Handler[SendBallotsHeader]

func QuicstreamHandlerSendOperation

func QuicstreamHandlerSendOperation(
	networkID base.NetworkID,
	oppool isaac.NewOperationPool,
	existsInStateOperationf func(util.Hash) (bool, error),
	filterSendOperationf func(base.Operation) (bool, error),
	svvote isaac.SuffrageVoteFunc,
	broadcast func(context.Context, string, base.Operation, []byte) error,
	maxMessageSize func() uint64,
) quicstreamheader.Handler[SendOperationRequestHeader]

func QuicstreamHandlerState

func QuicstreamHandlerState(
	statef func(string) (enchint string, meta, body []byte, found bool, err error),
) quicstreamheader.Handler[StateRequestHeader]

func QuicstreamHandlerStreamOperations

func QuicstreamHandlerStreamOperations(
	pub base.Publickey,
	networkID base.NetworkID,
	limit uint64,
	traverse func(
		_ context.Context,
		offset []byte,
		callback func(enchint string, meta isaacdatabase.FrameHeaderPoolOperation, body, offset []byte) (bool, error),
	) error,
) quicstreamheader.Handler[StreamOperationsHeader]

func QuicstreamHandlerSuffrageNodeConnInfo

func QuicstreamHandlerSuffrageNodeConnInfo(
	suffrageNodeConnInfof func() ([]isaac.NodeConnInfo, error),
) quicstreamheader.Handler[SuffrageNodeConnInfoRequestHeader]

func QuicstreamHandlerSuffrageProof

func QuicstreamHandlerSuffrageProof(
	suffrageProoff func(base.Height) (string, []byte, []byte, bool, error),
) quicstreamheader.Handler[SuffrageProofRequestHeader]

func QuicstreamHandlerSyncSourceConnInfo

func QuicstreamHandlerSyncSourceConnInfo(
	syncSourceConnInfof func() ([]isaac.NodeConnInfo, error),
) quicstreamheader.Handler[SyncSourceConnInfoRequestHeader]

func QuicstreamHandlerVerifyNode

func QuicstreamHandlerVerifyNode(
	ctx context.Context,
	_ net.Addr,
	broker *quicstreamheader.HandlerBroker,
	pub base.Publickey,
	networkID base.NetworkID,
) error

func ReadBodyNotEmpty

func ReadBodyNotEmpty(ctx context.Context, broker quicstreamheader.ReadBodyBroker) (
	bodyType quicstreamheader.BodyType,
	bodyLength uint64,
	body io.Reader,
	enc encoder.Encoder,
	res quicstreamheader.ResponseHeader,
	_ error,
)

func VerifyNode

func VerifyNode(
	ctx context.Context,
	broker *quicstreamheader.ClientBroker,
	priv base.Privatekey,
	networkID base.NetworkID,
) error

Types

type AskHandoverHeader

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

func NewAskHandoverHeader

func NewAskHandoverHeader(connInfo quicstream.ConnInfo, address base.Address) AskHandoverHeader

func (AskHandoverHeader) Address

func (h AskHandoverHeader) Address() base.Address

func (AskHandoverHeader) ConnInfo

func (h AskHandoverHeader) ConnInfo() quicstream.ConnInfo

func (*AskHandoverHeader) DecodeJSON

func (h *AskHandoverHeader) DecodeJSON(b []byte, enc encoder.Encoder) error

func (AskHandoverHeader) IsValid

func (h AskHandoverHeader) IsValid([]byte) error

func (AskHandoverHeader) MarshalJSON

func (h AskHandoverHeader) MarshalJSON() ([]byte, error)

type AskHandoverResponseHeader

type AskHandoverResponseHeader struct {
	quicstreamheader.BaseResponseHeader
	// contains filtered or unexported fields
}

AskHandoverResponseHeader has handover id. If OK() is true, y broker can move to consensus without handover process.

func NewAskHandoverResponseHeader

func NewAskHandoverResponseHeader(ok bool, err error, id string) AskHandoverResponseHeader

func (AskHandoverResponseHeader) ID

func (AskHandoverResponseHeader) IsValid

func (h AskHandoverResponseHeader) IsValid([]byte) error

func (AskHandoverResponseHeader) MarshalJSON

func (h AskHandoverResponseHeader) MarshalJSON() ([]byte, error)

func (*AskHandoverResponseHeader) UnmarshalJSON

func (h *AskHandoverResponseHeader) UnmarshalJSON(b []byte) error

type BaseClient

type BaseClient struct {
	Encoders *encoder.Encoders
	Encoder  encoder.Encoder
	// contains filtered or unexported fields
}

func NewBaseClient

func NewBaseClient(
	encs *encoder.Encoders,
	enc encoder.Encoder,
	dialf quicstream.ConnInfoDialFunc,
	closef func() error,
) *BaseClient

func (*BaseClient) AskHandover

func (c *BaseClient) AskHandover(
	ctx context.Context,
	xci quicstream.ConnInfo,
	priv base.Privatekey,
	networkID base.NetworkID,
	address base.Address,
	yci quicstream.ConnInfo,
) (handoverid string, canMoveConsensus bool, _ error)

func (*BaseClient) BlockItem

func (c *BaseClient) BlockItem(
	ctx context.Context, ci quicstream.ConnInfo, height base.Height, item base.BlockItemType,
	f func(_ io.Reader, uri url.URL, compressFormat string) error,
) (found bool, _ error)

func (*BaseClient) BlockItemFiles

func (c *BaseClient) BlockItemFiles(
	ctx context.Context, ci quicstream.ConnInfo,
	height base.Height,
	priv base.Privatekey,
	networkID base.NetworkID,
	f func(io.Reader) error,
) (bool, error)

func (*BaseClient) BlockMap

func (c *BaseClient) BlockMap(
	ctx context.Context, ci quicstream.ConnInfo, height base.Height,
) (bm base.BlockMap, ok bool, _ error)

func (*BaseClient) CancelHandover

func (c *BaseClient) CancelHandover(
	ctx context.Context,
	ci quicstream.ConnInfo,
	priv base.Privatekey,
	networkID base.NetworkID,
) (bool, error)

func (*BaseClient) CheckHandover

func (c *BaseClient) CheckHandover(
	ctx context.Context,
	xci quicstream.ConnInfo,
	priv base.Privatekey,
	networkID base.NetworkID,
	address base.Address,
	yci quicstream.ConnInfo,
) (bool, error)

func (*BaseClient) CheckHandoverX

func (c *BaseClient) CheckHandoverX(
	ctx context.Context,
	xci quicstream.ConnInfo,
	priv base.Privatekey,
	networkID base.NetworkID,
	address base.Address,
) (bool, error)

func (*BaseClient) ClientID

func (c *BaseClient) ClientID() string

func (*BaseClient) Close

func (c *BaseClient) Close() error

func (*BaseClient) Dial

func (*BaseClient) ExistsInStateOperation

func (c *BaseClient) ExistsInStateOperation(
	ctx context.Context, ci quicstream.ConnInfo, facthash util.Hash,
) (found bool, _ error)

func (*BaseClient) HandoverMessage

func (c *BaseClient) HandoverMessage(
	ctx context.Context,
	ci quicstream.ConnInfo,
	message isaacstates.HandoverMessage,
) error

func (*BaseClient) LastBlockMap

func (c *BaseClient) LastBlockMap(
	ctx context.Context, ci quicstream.ConnInfo, manifest util.Hash,
) (bm base.BlockMap, ok bool, _ error)

func (*BaseClient) LastSuffrageProof

func (c *BaseClient) LastSuffrageProof(
	ctx context.Context, ci quicstream.ConnInfo, state util.Hash,
) (lastheight base.Height, proof base.SuffrageProof, ok bool, _ error)

func (*BaseClient) NodeChallenge

func (c *BaseClient) NodeChallenge(
	ctx context.Context,
	ci quicstream.ConnInfo,
	networkID base.NetworkID,
	node base.Address,
	nodePublickey base.Publickey,
	input []byte,
	me base.LocalNode,
) (sig base.Signature, _ error)

func (*BaseClient) Operation

func (c *BaseClient) Operation(
	ctx context.Context, ci quicstream.ConnInfo, oph util.Hash,
) (op base.Operation, found bool, _ error)

func (*BaseClient) Proposal

func (*BaseClient) RequestProposal

func (c *BaseClient) RequestProposal(
	ctx context.Context,
	ci quicstream.ConnInfo,
	point base.Point,
	proposer base.Address,
	previousBlock util.Hash,
) (pr base.ProposalSignFact, found bool, _ error)

func (*BaseClient) SendBallots

func (c *BaseClient) SendBallots(
	ctx context.Context,
	ci quicstream.ConnInfo,
	ballots []base.BallotSignFact,
) error

func (*BaseClient) SendOperation

func (c *BaseClient) SendOperation(ctx context.Context, ci quicstream.ConnInfo, op base.Operation) (bool, error)

func (*BaseClient) SetAllowConsensus

func (c *BaseClient) SetAllowConsensus(
	ctx context.Context, ci quicstream.ConnInfo,
	priv base.Privatekey, networkID base.NetworkID, allow bool,
) (bool, error)

func (*BaseClient) SetClientID

func (c *BaseClient) SetClientID(id string) *BaseClient

func (*BaseClient) StartHandover

func (c *BaseClient) StartHandover(
	ctx context.Context,
	yci quicstream.ConnInfo,
	priv base.Privatekey,
	networkID base.NetworkID,
	address base.Address,
	xci quicstream.ConnInfo,
) (bool, error)

func (*BaseClient) State

func (c *BaseClient) State(
	ctx context.Context, ci quicstream.ConnInfo, key string, sth util.Hash,
) (st base.State, found bool, _ error)

func (*BaseClient) StreamOperations

func (c *BaseClient) StreamOperations(
	ctx context.Context, ci quicstream.ConnInfo,
	priv base.Privatekey, networkID base.NetworkID, offset []byte,
	f func(_ base.Operation, offset []byte) error,
) error

func (*BaseClient) StreamOperationsBytes

func (c *BaseClient) StreamOperationsBytes(
	ctx context.Context, ci quicstream.ConnInfo,
	priv base.Privatekey, networkID base.NetworkID, offset []byte,
	f func(enchint string, body, offset []byte) error,
) error

func (*BaseClient) SuffrageNodeConnInfo

func (c *BaseClient) SuffrageNodeConnInfo(
	ctx context.Context, ci quicstream.ConnInfo,
) ([]isaac.NodeConnInfo, error)

func (*BaseClient) SuffrageProof

func (c *BaseClient) SuffrageProof(
	ctx context.Context, ci quicstream.ConnInfo, suffrageheight base.Height,
) (proof base.SuffrageProof, ok bool, _ error)

func (*BaseClient) SyncSourceConnInfo

func (c *BaseClient) SyncSourceConnInfo(ctx context.Context, ci quicstream.ConnInfo) ([]isaac.NodeConnInfo, error)

type BaseHeader

type BaseHeader struct {
	quicstreamheader.BaseRequestHeader
	// contains filtered or unexported fields
}

func NewBaseHeader

func NewBaseHeader(ht hint.Hint) BaseHeader

func (BaseHeader) ClientID

func (h BaseHeader) ClientID() string

func (BaseHeader) JSONMarshaler

func (h BaseHeader) JSONMarshaler() BaseHeaderJSONMarshaler

func (*BaseHeader) SetClientID

func (h *BaseHeader) SetClientID(id string)

func (*BaseHeader) UnmarshalJSON

func (h *BaseHeader) UnmarshalJSON(b []byte) error

type BaseHeaderJSONMarshaler

type BaseHeaderJSONMarshaler struct {
	ClientID string `json:"client_id,omitempty"`
	quicstreamheader.BaseHeaderJSONMarshaler
}

type BaseHeaderJSONUnmarshaler

type BaseHeaderJSONUnmarshaler struct {
	ClientID string `json:"client_id,omitempty"`
}

type BlockItemFilesRequestHeader

type BlockItemFilesRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewBlockItemFilesRequestHeader

func NewBlockItemFilesRequestHeader(height base.Height, acluser base.Publickey) BlockItemFilesRequestHeader

func (BlockItemFilesRequestHeader) ACLUser

func (h BlockItemFilesRequestHeader) ACLUser() base.Publickey

func (*BlockItemFilesRequestHeader) DecodeJSON

func (h *BlockItemFilesRequestHeader) DecodeJSON(b []byte, enc encoder.Encoder) error

func (BlockItemFilesRequestHeader) Height

func (BlockItemFilesRequestHeader) IsValid

func (h BlockItemFilesRequestHeader) IsValid([]byte) error

func (BlockItemFilesRequestHeader) MarshalJSON

func (h BlockItemFilesRequestHeader) MarshalJSON() ([]byte, error)

type BlockItemRequestHeader

type BlockItemRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewBlockItemRequestHeader

func NewBlockItemRequestHeader(height base.Height, item base.BlockItemType) BlockItemRequestHeader

func (BlockItemRequestHeader) Height

func (h BlockItemRequestHeader) Height() base.Height

func (BlockItemRequestHeader) IsValid

func (h BlockItemRequestHeader) IsValid([]byte) error

func (BlockItemRequestHeader) Item

func (BlockItemRequestHeader) MarshalJSON

func (h BlockItemRequestHeader) MarshalJSON() ([]byte, error)

func (*BlockItemRequestHeader) UnmarshalJSON

func (h *BlockItemRequestHeader) UnmarshalJSON(b []byte) error

type BlockItemResponseHeader

type BlockItemResponseHeader struct {
	quicstreamheader.BaseResponseHeader
	// contains filtered or unexported fields
}

func NewBlockItemResponseHeader

func NewBlockItemResponseHeader(ok bool, err error, uri url.URL, compressFormat string) BlockItemResponseHeader

func (BlockItemResponseHeader) CompressFormat

func (h BlockItemResponseHeader) CompressFormat() string

func (BlockItemResponseHeader) IsValid

func (h BlockItemResponseHeader) IsValid([]byte) error

func (BlockItemResponseHeader) MarshalJSON

func (h BlockItemResponseHeader) MarshalJSON() ([]byte, error)

func (BlockItemResponseHeader) URI

func (*BlockItemResponseHeader) UnmarshalJSON

func (h *BlockItemResponseHeader) UnmarshalJSON(b []byte) error

type BlockMapRequestHeader

type BlockMapRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewBlockMapRequestHeader

func NewBlockMapRequestHeader(height base.Height) BlockMapRequestHeader

func (BlockMapRequestHeader) Height

func (h BlockMapRequestHeader) Height() base.Height

func (BlockMapRequestHeader) IsValid

func (h BlockMapRequestHeader) IsValid([]byte) error

func (BlockMapRequestHeader) MarshalJSON

func (h BlockMapRequestHeader) MarshalJSON() ([]byte, error)

func (*BlockMapRequestHeader) UnmarshalJSON

func (h *BlockMapRequestHeader) UnmarshalJSON(b []byte) error

type BlockMapRequestHeaderJSONMarshaler

type BlockMapRequestHeaderJSONMarshaler struct {
	Height base.Height `json:"height"`
}

type BlockMapRequestHeaderJSONUnmarshaler

type BlockMapRequestHeaderJSONUnmarshaler struct {
	Height base.Height `json:"height"`
}

type CancelHandoverHeader

type CancelHandoverHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewCancelHandoverHeader

func NewCancelHandoverHeader(acluser base.Publickey) CancelHandoverHeader

func (CancelHandoverHeader) ACLUser

func (h CancelHandoverHeader) ACLUser() base.Publickey

func (*CancelHandoverHeader) DecodeJSON

func (h *CancelHandoverHeader) DecodeJSON(b []byte, enc encoder.Encoder) error

func (CancelHandoverHeader) IsValid

func (h CancelHandoverHeader) IsValid([]byte) error

func (CancelHandoverHeader) MarshalJSON

func (h CancelHandoverHeader) MarshalJSON() ([]byte, error)

type CheckHandoverHeader

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

func NewCheckHandoverHeader

func NewCheckHandoverHeader(
	connInfo quicstream.ConnInfo,
	address base.Address,
	acluser base.Publickey,
) CheckHandoverHeader

func (CheckHandoverHeader) ACLUser

func (h CheckHandoverHeader) ACLUser() base.Publickey

func (CheckHandoverHeader) Address

func (h CheckHandoverHeader) Address() base.Address

func (CheckHandoverHeader) ConnInfo

func (h CheckHandoverHeader) ConnInfo() quicstream.ConnInfo

func (*CheckHandoverHeader) DecodeJSON

func (h *CheckHandoverHeader) DecodeJSON(b []byte, enc encoder.Encoder) error

func (CheckHandoverHeader) IsValid

func (h CheckHandoverHeader) IsValid([]byte) error

func (CheckHandoverHeader) MarshalJSON

func (h CheckHandoverHeader) MarshalJSON() ([]byte, error)

type CheckHandoverXHeader

type CheckHandoverXHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

CheckHandoverXHeader checks only x node.

func NewCheckHandoverXHeader

func NewCheckHandoverXHeader(address base.Address) CheckHandoverXHeader

func (CheckHandoverXHeader) Address

func (h CheckHandoverXHeader) Address() base.Address

func (*CheckHandoverXHeader) DecodeJSON

func (h *CheckHandoverXHeader) DecodeJSON(b []byte, enc encoder.Encoder) error

func (CheckHandoverXHeader) IsValid

func (h CheckHandoverXHeader) IsValid([]byte) error

func (CheckHandoverXHeader) MarshalJSON

func (h CheckHandoverXHeader) MarshalJSON() ([]byte, error)

type ExistsInStateOperationRequestHeader

type ExistsInStateOperationRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewExistsInStateOperationRequestHeader

func NewExistsInStateOperationRequestHeader(facthash util.Hash) ExistsInStateOperationRequestHeader

func (ExistsInStateOperationRequestHeader) FactHash

func (ExistsInStateOperationRequestHeader) IsValid

func (ExistsInStateOperationRequestHeader) MarshalJSON

func (h ExistsInStateOperationRequestHeader) MarshalJSON() ([]byte, error)

func (*ExistsInStateOperationRequestHeader) UnmarshalJSON

func (h *ExistsInStateOperationRequestHeader) UnmarshalJSON(b []byte) error

type HandoverMessageHeader

type HandoverMessageHeader struct {
	BaseHeader
}

func NewHandoverMessageHeader

func NewHandoverMessageHeader() HandoverMessageHeader

func (HandoverMessageHeader) IsValid

func (h HandoverMessageHeader) IsValid([]byte) error

type LastBlockMapRequestHeader

type LastBlockMapRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewLastBlockMapRequestHeader

func NewLastBlockMapRequestHeader(manifest util.Hash) LastBlockMapRequestHeader

func (LastBlockMapRequestHeader) IsValid

func (h LastBlockMapRequestHeader) IsValid([]byte) error

func (LastBlockMapRequestHeader) Manifest

func (h LastBlockMapRequestHeader) Manifest() util.Hash

func (LastBlockMapRequestHeader) MarshalJSON

func (h LastBlockMapRequestHeader) MarshalJSON() ([]byte, error)

func (*LastBlockMapRequestHeader) UnmarshalJSON

func (h *LastBlockMapRequestHeader) UnmarshalJSON(b []byte) error

type LastSuffrageProofRequestHeader

type LastSuffrageProofRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewLastSuffrageProofRequestHeader

func NewLastSuffrageProofRequestHeader(state util.Hash) LastSuffrageProofRequestHeader

func (LastSuffrageProofRequestHeader) IsValid

func (LastSuffrageProofRequestHeader) MarshalJSON

func (h LastSuffrageProofRequestHeader) MarshalJSON() ([]byte, error)

func (LastSuffrageProofRequestHeader) State

func (*LastSuffrageProofRequestHeader) UnmarshalJSON

func (h *LastSuffrageProofRequestHeader) UnmarshalJSON(b []byte) error

type NodeChallengeRequestHeader

type NodeChallengeRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewNodeChallengeRequestHeader

func NewNodeChallengeRequestHeader(
	input []byte,
	me base.Address,
	mePub base.Publickey,
) NodeChallengeRequestHeader

func (*NodeChallengeRequestHeader) DecodeJSON

func (h *NodeChallengeRequestHeader) DecodeJSON(b []byte, enc encoder.Encoder) error

func (NodeChallengeRequestHeader) Input

func (h NodeChallengeRequestHeader) Input() []byte

func (NodeChallengeRequestHeader) IsValid

func (h NodeChallengeRequestHeader) IsValid([]byte) error

func (NodeChallengeRequestHeader) MarshalJSON

func (h NodeChallengeRequestHeader) MarshalJSON() ([]byte, error)

func (NodeChallengeRequestHeader) Me

func (NodeChallengeRequestHeader) MePublickey

func (h NodeChallengeRequestHeader) MePublickey() base.Publickey

type NodeChallengeRequestHeaderJSONMarshaler

type NodeChallengeRequestHeaderJSONMarshaler struct {
	Me          base.Address   `json:"me,omitempty"`
	MePublickey base.Publickey `json:"me_publickey,omitempty"`
	Input       []byte         `json:"input"`
}

type NodeChallengeRequestHeaderJSONUnmarshaler

type NodeChallengeRequestHeaderJSONUnmarshaler struct {
	Me          string `json:"me,omitempty"`
	MePublickey string `json:"me_publickey,omitempty"`
	Input       []byte `json:"input"`
}

type NodeConnInfo

type NodeConnInfo struct {
	quicmemberlist.NamedConnInfo
	base.BaseNode
}

func MustNodeConnInfo

func MustNodeConnInfo(node base.BaseNode, addr string, tlsinsecure bool) NodeConnInfo

func NewNodeConnInfo

func NewNodeConnInfo(node base.BaseNode, addr string, tlsinsecure bool) (nci NodeConnInfo, _ error)

func NewNodeConnInfoFromConnInfo

func NewNodeConnInfoFromConnInfo(node base.BaseNode, ci quicstream.ConnInfo) NodeConnInfo

func NewNodeConnInfoFromMemberlistNode

func NewNodeConnInfoFromMemberlistNode(member quicmemberlist.Member) NodeConnInfo

func (*NodeConnInfo) DecodeJSON

func (n *NodeConnInfo) DecodeJSON(b []byte, enc encoder.Encoder) error

func (NodeConnInfo) IsValid

func (n NodeConnInfo) IsValid([]byte) error

func (NodeConnInfo) MarshalJSON

func (n NodeConnInfo) MarshalJSON() ([]byte, error)

type NodeInfo

type NodeInfo struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func (NodeInfo) Address

func (info NodeInfo) Address() base.Address

func (NodeInfo) ConnInfo

func (info NodeInfo) ConnInfo() string

func (NodeInfo) ConsensusNodes

func (info NodeInfo) ConsensusNodes() []base.Node

func (NodeInfo) ConsensusState

func (info NodeInfo) ConsensusState() string

func (*NodeInfo) DecodeJSON

func (info *NodeInfo) DecodeJSON(b []byte, enc encoder.Encoder) error

func (NodeInfo) IsValid

func (info NodeInfo) IsValid(networkID base.NetworkID) error

func (NodeInfo) JSONMarshaler

func (info NodeInfo) JSONMarshaler() NodeInfoJSONMarshaler

func (NodeInfo) LastManifest

func (info NodeInfo) LastManifest() base.Manifest

func (NodeInfo) LastVote

func (info NodeInfo) LastVote() NodeInfoLastVote

func (NodeInfo) LocalParams

func (info NodeInfo) LocalParams() *isaac.Params

func (NodeInfo) MarshalJSON

func (info NodeInfo) MarshalJSON() ([]byte, error)

func (NodeInfo) NetworkPolicy

func (info NodeInfo) NetworkPolicy() base.NetworkPolicy

func (NodeInfo) Publickey

func (info NodeInfo) Publickey() base.Publickey

func (NodeInfo) StartedAt

func (info NodeInfo) StartedAt() time.Time

func (NodeInfo) SuffrageHeight

func (info NodeInfo) SuffrageHeight() base.Height

func (NodeInfo) Version

func (info NodeInfo) Version() util.Version

type NodeInfoConsensusJSONMarshaler

type NodeInfoConsensusJSONMarshaler struct {
	LastVote NodeInfoLastVote              `json:"last_vote"`
	State    isaacstates.StateType         `json:"state"`
	Suffrage NodeInfoSuffrageJSONMarshaler `json:"suffrage"`
}

type NodeInfoJSONMarshaler

type NodeInfoJSONMarshaler struct {
	NetworkID     base.NetworkID                 `json:"network_id"`
	LastManifest  base.Manifest                  `json:"last_manifest"`
	NetworkPolicy base.NetworkPolicy             `json:"network_policy"`
	Local         NodeInfoLocalJSONMarshaler     `json:"local"`
	Consensus     NodeInfoConsensusJSONMarshaler `json:"consensus"`
	hint.BaseHinter
}

type NodeInfoLastVote

type NodeInfoLastVote struct {
	Result base.VoteResult `json:"result"`
	Point  base.StagePoint `json:"point"`
}

func EmptyNodeInfoLastVote

func EmptyNodeInfoLastVote() NodeInfoLastVote

type NodeInfoLocalJSONMarshaler

type NodeInfoLocalJSONMarshaler struct {
	Address     base.Address   `json:"address"`
	Publickey   base.Publickey `json:"publickey"`
	LocalParams *isaac.Params  `json:"parameters"` //nolint:tagliatelle //...
	ConnInfo    string         `json:"conn_info"`
	StartedAt   localtime.Time `json:"started_at"`
	Version     util.Version   `json:"version"`
}

type NodeInfoRequestHeader

type NodeInfoRequestHeader struct {
	BaseHeader
}

func NewNodeInfoRequestHeader

func NewNodeInfoRequestHeader() NodeInfoRequestHeader

func (NodeInfoRequestHeader) IsValid

func (h NodeInfoRequestHeader) IsValid([]byte) error

func (NodeInfoRequestHeader) MarshalJSON

func (h NodeInfoRequestHeader) MarshalJSON() ([]byte, error)

func (*NodeInfoRequestHeader) UnmarshalJSON

func (h *NodeInfoRequestHeader) UnmarshalJSON(b []byte) error

type NodeInfoSuffrageJSONMarshaler

type NodeInfoSuffrageJSONMarshaler struct {
	Nodes  []base.Node `json:"nodes"`
	Height base.Height `json:"height"`
}

type NodeInfoUpdater

type NodeInfoUpdater struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewNodeInfoUpdater

func NewNodeInfoUpdater(networkID base.NetworkID, local base.Node, version util.Version) *NodeInfoUpdater

func (*NodeInfoUpdater) ID

func (info *NodeInfoUpdater) ID() string

func (*NodeInfoUpdater) NodeInfo

func (info *NodeInfoUpdater) NodeInfo() NodeInfo

func (*NodeInfoUpdater) SetConnInfo

func (info *NodeInfoUpdater) SetConnInfo(c string) bool

func (*NodeInfoUpdater) SetConsensusNodes

func (info *NodeInfoUpdater) SetConsensusNodes(nodes []base.Node) bool

func (*NodeInfoUpdater) SetConsensusState

func (info *NodeInfoUpdater) SetConsensusState(s isaacstates.StateType) bool

func (*NodeInfoUpdater) SetLastManifest

func (info *NodeInfoUpdater) SetLastManifest(m base.Manifest) bool

func (*NodeInfoUpdater) SetLastVote

func (info *NodeInfoUpdater) SetLastVote(point base.StagePoint, result base.VoteResult) bool

func (*NodeInfoUpdater) SetLocalParams

func (info *NodeInfoUpdater) SetLocalParams(p *isaac.Params) bool

func (*NodeInfoUpdater) SetNetworkPolicy

func (info *NodeInfoUpdater) SetNetworkPolicy(p base.NetworkPolicy) bool

func (*NodeInfoUpdater) SetSuffrageHeight

func (info *NodeInfoUpdater) SetSuffrageHeight(h base.Height) bool

type OperationRequestHeader

type OperationRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewOperationRequestHeader

func NewOperationRequestHeader(operationhash util.Hash) OperationRequestHeader

func (*OperationRequestHeader) DecodeJSON

func (h *OperationRequestHeader) DecodeJSON(b []byte, _ encoder.Encoder) error

func (OperationRequestHeader) IsValid

func (h OperationRequestHeader) IsValid([]byte) error

func (OperationRequestHeader) MarshalJSON

func (h OperationRequestHeader) MarshalJSON() ([]byte, error)

func (OperationRequestHeader) Operation

func (h OperationRequestHeader) Operation() util.Hash

type ProposalRequestHeader

type ProposalRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewProposalRequestHeader

func NewProposalRequestHeader(proposal util.Hash) ProposalRequestHeader

func (ProposalRequestHeader) IsValid

func (h ProposalRequestHeader) IsValid([]byte) error

func (ProposalRequestHeader) MarshalJSON

func (h ProposalRequestHeader) MarshalJSON() ([]byte, error)

func (ProposalRequestHeader) Proposal

func (h ProposalRequestHeader) Proposal() util.Hash

func (*ProposalRequestHeader) UnmarshalJSON

func (h *ProposalRequestHeader) UnmarshalJSON(b []byte) error

type RequestProposalRequestHeader

type RequestProposalRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewRequestProposalRequestHeader

func NewRequestProposalRequestHeader(
	point base.Point,
	proposer base.Address,
	previousBlock util.Hash,
) RequestProposalRequestHeader

func (*RequestProposalRequestHeader) DecodeJSON

func (h *RequestProposalRequestHeader) DecodeJSON(b []byte, enc encoder.Encoder) error

func (RequestProposalRequestHeader) IsValid

func (RequestProposalRequestHeader) MarshalJSON

func (h RequestProposalRequestHeader) MarshalJSON() ([]byte, error)

func (RequestProposalRequestHeader) Point

func (RequestProposalRequestHeader) PreviousBlock

func (h RequestProposalRequestHeader) PreviousBlock() util.Hash

func (RequestProposalRequestHeader) Proposer

type SendBallotsHeader

type SendBallotsHeader struct {
	BaseHeader
}

func NewSendBallotsHeader

func NewSendBallotsHeader() SendBallotsHeader

func (SendBallotsHeader) IsValid

func (h SendBallotsHeader) IsValid([]byte) error

func (SendBallotsHeader) MarshalJSON

func (h SendBallotsHeader) MarshalJSON() ([]byte, error)

func (*SendBallotsHeader) UnmarshalJSON

func (h *SendBallotsHeader) UnmarshalJSON(b []byte) error

type SendOperationRequestHeader

type SendOperationRequestHeader struct {
	BaseHeader
}

func NewSendOperationRequestHeader

func NewSendOperationRequestHeader() SendOperationRequestHeader

func (SendOperationRequestHeader) IsValid

func (h SendOperationRequestHeader) IsValid([]byte) error

func (SendOperationRequestHeader) MarshalJSON

func (h SendOperationRequestHeader) MarshalJSON() ([]byte, error)

func (*SendOperationRequestHeader) UnmarshalJSON

func (h *SendOperationRequestHeader) UnmarshalJSON(b []byte) error

type SetAllowConsensusHeader

type SetAllowConsensusHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewSetAllowConsensusHeader

func NewSetAllowConsensusHeader(allow bool) SetAllowConsensusHeader

func (SetAllowConsensusHeader) Allow

func (h SetAllowConsensusHeader) Allow() bool

func (SetAllowConsensusHeader) IsValid

func (h SetAllowConsensusHeader) IsValid([]byte) error

func (SetAllowConsensusHeader) MarshalJSON

func (h SetAllowConsensusHeader) MarshalJSON() ([]byte, error)

func (*SetAllowConsensusHeader) UnmarshalJSON

func (h *SetAllowConsensusHeader) UnmarshalJSON(b []byte) error

type StartHandoverHeader

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

func NewStartHandoverHeader

func NewStartHandoverHeader(
	connInfo quicstream.ConnInfo,
	address base.Address,
	acluser base.Publickey,
) StartHandoverHeader

func (StartHandoverHeader) ACLUser

func (h StartHandoverHeader) ACLUser() base.Publickey

func (StartHandoverHeader) Address

func (h StartHandoverHeader) Address() base.Address

func (StartHandoverHeader) ConnInfo

func (h StartHandoverHeader) ConnInfo() quicstream.ConnInfo

func (*StartHandoverHeader) DecodeJSON

func (h *StartHandoverHeader) DecodeJSON(b []byte, enc encoder.Encoder) error

func (StartHandoverHeader) IsValid

func (h StartHandoverHeader) IsValid([]byte) error

func (StartHandoverHeader) MarshalJSON

func (h StartHandoverHeader) MarshalJSON() ([]byte, error)

type StateRequestHeader

type StateRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewStateRequestHeader

func NewStateRequestHeader(key string, h util.Hash) StateRequestHeader

func (StateRequestHeader) Hash

func (h StateRequestHeader) Hash() util.Hash

func (StateRequestHeader) IsValid

func (h StateRequestHeader) IsValid([]byte) error

func (StateRequestHeader) Key

func (h StateRequestHeader) Key() string

func (StateRequestHeader) MarshalJSON

func (h StateRequestHeader) MarshalJSON() ([]byte, error)

func (*StateRequestHeader) UnmarshalJSON

func (h *StateRequestHeader) UnmarshalJSON(b []byte) error

type StreamOperationsHeader

type StreamOperationsHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewStreamOperationsHeader

func NewStreamOperationsHeader(offset []byte) StreamOperationsHeader

func (StreamOperationsHeader) IsValid

func (h StreamOperationsHeader) IsValid([]byte) error

func (StreamOperationsHeader) MarshalJSON

func (h StreamOperationsHeader) MarshalJSON() ([]byte, error)

func (StreamOperationsHeader) Offset

func (h StreamOperationsHeader) Offset() []byte

func (*StreamOperationsHeader) UnmarshalJSON

func (h *StreamOperationsHeader) UnmarshalJSON(b []byte) error

type SuffrageNodeConnInfoRequestHeader

type SuffrageNodeConnInfoRequestHeader struct {
	BaseHeader
}

func NewSuffrageNodeConnInfoRequestHeader

func NewSuffrageNodeConnInfoRequestHeader() SuffrageNodeConnInfoRequestHeader

func (SuffrageNodeConnInfoRequestHeader) IsValid

func (SuffrageNodeConnInfoRequestHeader) MarshalJSON

func (h SuffrageNodeConnInfoRequestHeader) MarshalJSON() ([]byte, error)

func (*SuffrageNodeConnInfoRequestHeader) UnmarshalJSON

func (h *SuffrageNodeConnInfoRequestHeader) UnmarshalJSON(b []byte) error

type SuffrageProofRequestHeader

type SuffrageProofRequestHeader struct {
	BaseHeader
	// contains filtered or unexported fields
}

func NewSuffrageProofRequestHeader

func NewSuffrageProofRequestHeader(suffrageheight base.Height) SuffrageProofRequestHeader

func (SuffrageProofRequestHeader) Height

func (SuffrageProofRequestHeader) IsValid

func (h SuffrageProofRequestHeader) IsValid([]byte) error

func (SuffrageProofRequestHeader) MarshalJSON

func (h SuffrageProofRequestHeader) MarshalJSON() ([]byte, error)

func (*SuffrageProofRequestHeader) UnmarshalJSON

func (h *SuffrageProofRequestHeader) UnmarshalJSON(b []byte) error

type SyncSource

type SyncSource struct {
	Source interface{}
	Type   SyncSourceType
}

func (*SyncSource) DecodeYAML

func (d *SyncSource) DecodeYAML(b []byte, jsonencoder encoder.Encoder) error

func (SyncSource) IsValid

func (s SyncSource) IsValid([]byte) error

type SyncSourceChecker

type SyncSourceChecker struct {
	*logging.Logging
	*util.ContextDaemon

	sync.Mutex
	// contains filtered or unexported fields
}

func NewSyncSourceChecker

func NewSyncSourceChecker(
	local base.LocalNode,
	networkID base.NetworkID,
	client isaac.NetworkClient,
	interval time.Duration,
	enc encoder.Encoder,
	sources []SyncSource,
	callback func([]isaac.NodeConnInfo, error),
	requestTimeoutf func() time.Duration,
) *SyncSourceChecker

func (*SyncSourceChecker) Sources

func (c *SyncSourceChecker) Sources() []SyncSource

func (*SyncSourceChecker) UpdateSources

func (c *SyncSourceChecker) UpdateSources(ctx context.Context, cis []SyncSource) error

type SyncSourceConnInfoRequestHeader

type SyncSourceConnInfoRequestHeader struct {
	BaseHeader
}

func NewSyncSourceConnInfoRequestHeader

func NewSyncSourceConnInfoRequestHeader() SyncSourceConnInfoRequestHeader

func (SyncSourceConnInfoRequestHeader) IsValid

func (SyncSourceConnInfoRequestHeader) MarshalJSON

func (h SyncSourceConnInfoRequestHeader) MarshalJSON() ([]byte, error)

func (*SyncSourceConnInfoRequestHeader) UnmarshalJSON

func (h *SyncSourceConnInfoRequestHeader) UnmarshalJSON(b []byte) error

type SyncSourceType

type SyncSourceType string
var (
	SyncSourceTypeNode          SyncSourceType = "sync-source-node"
	SyncSourceTypeSuffrageNodes SyncSourceType = "sync-source-suffrage-nodes"
	SyncSourceTypeSyncSources   SyncSourceType = "sync-source-sync-sources"
	SyncSourceTypeURL           SyncSourceType = "sync-source-url"
)

Jump to

Keyboard shortcuts

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