Documentation
¶
Index ¶
Constants ¶
const CodecVersion = warp.CodecVersion + 1
Variables ¶
var Codec codec.Manager
Functions ¶
func NewBLSAuth ¶
func NewBLSAuth(config *Config) (BLSSigner, BLSVerifier, error)
Types ¶
type BLSSigner ¶
type BLSSigner struct {
// contains filtered or unexported fields
}
BLSSigner signs messages encoded with the provided ChainID and NetworkID. using the SignBLS function.
type BLSVerifier ¶
type BLSVerifier struct {
// contains filtered or unexported fields
}
type Block ¶ added in v1.13.3
type Block struct {
// contains filtered or unexported fields
}
func (*Block) BlockHeader ¶ added in v1.13.3
func (b *Block) BlockHeader() simplex.BlockHeader
BlockHeader returns the block header for the block.
type BlockBuilder ¶ added in v1.14.0
type BlockBuilder struct {
// contains filtered or unexported fields
}
func (*BlockBuilder) BuildBlock ¶ added in v1.14.0
func (b *BlockBuilder) BuildBlock(ctx context.Context, metadata simplex.ProtocolMetadata) (simplex.VerifiedBlock, bool)
BuildBlock continuously tries to build a block until the context is cancelled. If there are no blocks to be built, it will wait for an event from the VM. It returns false if the context was cancelled, otherwise it returns the built block and true.
func (*BlockBuilder) WaitForPendingBlock ¶ added in v1.14.0
func (b *BlockBuilder) WaitForPendingBlock(ctx context.Context)
WaitForPendingBlock blocks until a new block is ready to be built from the VM, or until the context is cancelled.
type Config ¶
type Config struct {
Ctx SimplexChainContext
Log logging.Logger
Sender sender.ExternalSender
OutboundMsgBuilder message.OutboundMsgBuilder
VM block.ChainVM
DB database.KeyValueReaderWriter
// In the case of a crash, Simplex uses the WAL to recover its state and resume consensus.
WAL simplex.WriteAheadLog
// SignBLS is the signing function used for this node to sign messages.
SignBLS SignFunc
// Parameters passed in by the subnet configuration
Params *simplexparams.Parameters
}
Config wraps all the parameters needed for a simplex engine
type Engine ¶ added in v1.14.2
type Engine struct {
// contains filtered or unexported fields
}
type QC ¶ added in v1.13.4
type QC struct {
// contains filtered or unexported fields
}
QC represents a quorum certificate in the Simplex consensus protocol.
type QCDeserializer ¶ added in v1.13.4
type QCDeserializer struct {
// contains filtered or unexported fields
}
func (*QCDeserializer) DeserializeQuorumCertificate ¶ added in v1.13.4
func (d *QCDeserializer) DeserializeQuorumCertificate(bytes []byte) (simplex.QuorumCertificate, error)
DeserializeQuorumCertificate deserializes a quorum certificate from bytes.
type SignatureAggregator ¶ added in v1.13.4
type SignatureAggregator struct {
// contains filtered or unexported fields
}
SignatureAggregator aggregates signatures into a quorum certificate.
func (*SignatureAggregator) Aggregate ¶ added in v1.13.4
func (a *SignatureAggregator) Aggregate(signatures []simplex.Signature) (simplex.QuorumCertificate, error)
Aggregate aggregates the provided signatures into a quorum certificate. It requires at least a quorum of signatures to succeed. If any signature is from a signer not in the membership set, it returns an error.
type SimplexChainContext ¶
type SimplexChainContext struct {
// NodeID is the ID of this node
NodeID ids.NodeID
// ChainID is the ID of the chain this context exists within.
ChainID ids.ID
// SubnetID is the ID of the subnet this context exists within.
SubnetID ids.ID
// Network is the ID of the network this context exists within.
NetworkID uint32
}
Context is information about the current execution.
type Storage ¶ added in v1.13.5
type Storage struct {
// contains filtered or unexported fields
}
func (*Storage) Index ¶ added in v1.13.5
func (s *Storage) Index(ctx context.Context, block simplex.VerifiedBlock, finalization simplex.Finalization) error
Index indexes the finalization in the storage. It stores the finalization bytes and increments numBlocks.
func (*Storage) Retrieve ¶ added in v1.13.5
func (s *Storage) Retrieve(seq uint64) (simplex.VerifiedBlock, simplex.Finalization, error)
Retrieve returns the block and finalization at [seq]. If [seq] is not found, returns simplex.ErrBlockNotFound.