chainexchange

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2025 License: Apache-2.0, MIT Imports: 23 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChainExchange

type ChainExchange interface {
	Broadcast(context.Context, Message) error
	GetChainByInstance(context.Context, uint64, gpbft.ECChainKey) (*gpbft.ECChain, bool)
	RemoveChainsByInstance(context.Context, uint64) error
}

type Listener

type Listener interface {
	NotifyChainDiscovered(ctx context.Context, instance uint64, chain *gpbft.ECChain)
}

type Message

type Message struct {
	Instance  uint64
	Chain     *gpbft.ECChain
	Timestamp int64
}

func (*Message) MarshalCBOR

func (t *Message) MarshalCBOR(w io.Writer) error

func (*Message) UnmarshalCBOR

func (t *Message) UnmarshalCBOR(r io.Reader) (err error)

type Option

type Option func(*options) error

func WithListener

func WithListener(listener Listener) Option

func WithMaxChainLength

func WithMaxChainLength(length int) Option

func WithMaxDiscoveredChainsPerInstance

func WithMaxDiscoveredChainsPerInstance(max int) Option

func WithMaxInstanceLookahead

func WithMaxInstanceLookahead(lookahead uint64) Option

func WithMaxTimestampAge

func WithMaxTimestampAge(max time.Duration) Option

func WithMaxWantedChainsPerInstance

func WithMaxWantedChainsPerInstance(max int) Option

func WithProgress

func WithProgress(progress gpbft.Progress) Option

func WithPubSub

func WithPubSub(pubsub *pubsub.PubSub) Option

func WithSubscriptionBufferSize

func WithSubscriptionBufferSize(size int) Option

func WithTopicName

func WithTopicName(name string) Option

func WithTopicScoreParams

func WithTopicScoreParams(params *pubsub.TopicScoreParams) Option

type PubSubChainExchange

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

func NewPubSubChainExchange

func NewPubSubChainExchange(o ...Option) (*PubSubChainExchange, error)

func (*PubSubChainExchange) Broadcast

func (p *PubSubChainExchange) Broadcast(ctx context.Context, msg Message) (_err error)

func (*PubSubChainExchange) GetChainByInstance

func (p *PubSubChainExchange) GetChainByInstance(ctx context.Context, instance uint64, key gpbft.ECChainKey) (*gpbft.ECChain, bool)

func (*PubSubChainExchange) RemoveChainsByInstance

func (p *PubSubChainExchange) RemoveChainsByInstance(ctx context.Context, instance uint64) error

func (*PubSubChainExchange) Shutdown

func (*PubSubChainExchange) Start

func (p *PubSubChainExchange) Start(ctx context.Context) error

Jump to

Keyboard shortcuts

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