consensus

package
v0.11.2 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2022 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrIncorrectMessageType         = whoops.Errorf("underlying message type does not match: %T")
	ErrUnableToSaveMessageWithoutID = whoops.String("unable to save message without an ID")
	ErrMessageDoesNotExist          = whoops.Errorf("message id %d does not exist")
	ErrInvalidSignature             = whoops.String("signature is invalid")
	ErrAlreadySignedWithKey         = whoops.Errorf("message %d (%s) already signed with the key: %s")
	ErrValidatorAlreadySigned       = whoops.Errorf("validator already signed: %s")

	ErrAttestorNotSetForMessage = whoops.Errorf("attestator must be set for message: %T")
)

Variables

This section is empty.

Functions

func RemoveQueueCompletely

func RemoveQueueCompletely(ctx sdk.Context, cq Queuer)

Types

type BatchQueue

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

func NewBatchQueue

func NewBatchQueue(qo QueueOptions) BatchQueue

func (BatchQueue) AddEvidence

func (c BatchQueue) AddEvidence(ctx sdk.Context, id uint64, evidence *types.Evidence) error

func (BatchQueue) AddSignature

func (c BatchQueue) AddSignature(ctx sdk.Context, id uint64, signData *types.SignData) error

func (BatchQueue) ChainInfo

func (c BatchQueue) ChainInfo() (types.ChainType, string)

func (BatchQueue) GetAll

func (BatchQueue) GetMsgByID

func (c BatchQueue) GetMsgByID(ctx sdk.Context, id uint64) (types.QueuedSignedMessageI, error)

func (BatchQueue) GetPublicAccessData

func (c BatchQueue) GetPublicAccessData(ctx sdk.Context, id uint64) (*types.PublicAccessData, error)

func (BatchQueue) ProcessBatches

func (c BatchQueue) ProcessBatches(ctx sdk.Context) error

func (BatchQueue) Put

func (c BatchQueue) Put(ctx sdk.Context, msg ConsensusMsg, opts *PutOptions) (uint64, error)

func (BatchQueue) Remove

func (c BatchQueue) Remove(ctx sdk.Context, msgID uint64) error

func (BatchQueue) SetPublicAccessData

func (c BatchQueue) SetPublicAccessData(ctx sdk.Context, id uint64, data *types.PublicAccessData) error

type ConsensusMsg

type ConsensusMsg = types.ConsensusMsg

type OptFnc

type OptFnc func(*QueueOptions)

func WithAttestator

func WithAttestator(att types.Attestator) OptFnc

func WithBatch

func WithBatch(batch bool) OptFnc

func WithBytesToSignCalc

func WithBytesToSignCalc(val types.BytesToSignFunc) OptFnc

func WithChainInfo

func WithChainInfo(chainType, chainReferenceID string) OptFnc

func WithQueueTypeName

func WithQueueTypeName(val string) OptFnc

func WithStaticTypeCheck

func WithStaticTypeCheck(val any) OptFnc

func WithVerifySignature

func WithVerifySignature(val types.VerifySignatureFunc) OptFnc

type PutOptions added in v0.6.0

type PutOptions struct {
	RequireSignatures bool
	PublicAccessData  []byte
}

type Queue

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

Queue is a database storing messages that need to be signed.

func NewQueue

func NewQueue(qo QueueOptions) Queue

func (Queue) AddEvidence

func (c Queue) AddEvidence(ctx sdk.Context, msgID uint64, evidence *types.Evidence) error

func (Queue) AddSignature

func (c Queue) AddSignature(ctx sdk.Context, msgID uint64, signData *types.SignData) error

AddSignature adds a signature to the message and checks if the signature is valid.

func (Queue) ChainInfo

func (c Queue) ChainInfo() (types.ChainType, string)

func (Queue) GetAll

func (c Queue) GetAll(ctx sdk.Context) ([]types.QueuedSignedMessageI, error)

getAll returns all messages from a signing queu

func (Queue) GetMsgByID

func (c Queue) GetMsgByID(ctx sdk.Context, id uint64) (types.QueuedSignedMessageI, error)

getMsgByID given a message ID, it returns the message

func (Queue) GetPublicAccessData

func (c Queue) GetPublicAccessData(ctx sdk.Context, msgID uint64) (*types.PublicAccessData, error)

func (Queue) Put

func (c Queue) Put(ctx sdk.Context, msg ConsensusMsg, opts *PutOptions) (uint64, error)

Put puts raw message into a signing queue.

func (Queue) Remove

func (c Queue) Remove(ctx sdk.Context, msgID uint64) error

remove removes the message from the queue.

func (Queue) SetPublicAccessData

func (c Queue) SetPublicAccessData(ctx sdk.Context, msgID uint64, data *types.PublicAccessData) error

SetPublicAccessData sets data that should be visible publically so that other can provide proofs.

type QueueBatcher

type QueueBatcher interface {
	Queuer
	ProcessBatches(ctx sdk.Context) error
}

type QueueOptions

type QueueOptions struct {
	Batched               bool
	QueueTypeName         string
	Sg                    keeperutil.StoreGetter
	Ider                  keeperutil.IDGenerator
	Cdc                   codecMarshaler
	TypeCheck             types.TypeChecker
	BytesToSignCalculator types.BytesToSignFunc
	VerifySignature       types.VerifySignatureFunc
	ChainType             types.ChainType
	Attestator            types.Attestator
	ChainReferenceID      string
}

func ApplyOpts

func ApplyOpts(opts *QueueOptions, fncs ...OptFnc) *QueueOptions

type Queuer

type Queuer interface {
	Put(sdk.Context, ConsensusMsg, *PutOptions) (uint64, error)
	AddSignature(ctx sdk.Context, id uint64, signData *types.SignData) error
	AddEvidence(ctx sdk.Context, id uint64, evidence *types.Evidence) error
	SetPublicAccessData(ctx sdk.Context, id uint64, data *types.PublicAccessData) error
	GetPublicAccessData(ctx sdk.Context, id uint64) (*types.PublicAccessData, error)
	Remove(sdk.Context, uint64) error
	GetAll(sdk.Context) ([]types.QueuedSignedMessageI, error)
	GetMsgByID(ctx sdk.Context, id uint64) (types.QueuedSignedMessageI, error)
	ChainInfo() (types.ChainType, string)
}

type SupportsConsensusQueue

type SupportsConsensusQueue interface {
	SupportedQueues(ctx sdk.Context) ([]SupportsConsensusQueueAction, error)
}

type SupportsConsensusQueueAction

type SupportsConsensusQueueAction struct {
	QueueOptions
	ProcessMessageForAttestation func(ctx sdk.Context, q Queuer, msg types.QueuedSignedMessageI) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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