simplex

package
v1.13.4-rc.2 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2025 License: BSD-3-Clause Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const CodecVersion = warp.CodecVersion + 1

Variables

Functions

func NewBLSAuth

func NewBLSAuth(config *Config) (BLSSigner, BLSVerifier)

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.

func (*BLSSigner) Sign

func (s *BLSSigner) Sign(message []byte) ([]byte, error)

Sign returns a signature on the given message using BLS signature scheme. It encodes the message to sign with the chain ID, and network ID,

type BLSVerifier

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

func (BLSVerifier) Verify

func (v BLSVerifier) Verify(message []byte, signature []byte, signer simplex.NodeID) error

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.

func (*Block) Bytes added in v1.13.3

func (b *Block) Bytes() ([]byte, error)

Bytes returns the serialized bytes of the block.

func (*Block) Verify added in v1.13.3

func (b *Block) Verify(ctx context.Context) (simplex.VerifiedBlock, error)

Verify verifies the block.

type Comm added in v1.13.3

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

func NewComm added in v1.13.3

func NewComm(config *Config) (*Comm, error)

func (*Comm) Broadcast added in v1.13.3

func (c *Comm) Broadcast(msg *simplex.Message)

func (*Comm) Nodes added in v1.13.3

func (c *Comm) Nodes() []simplex.NodeID

func (*Comm) Send added in v1.13.3

func (c *Comm) Send(msg *simplex.Message, destination simplex.NodeID)

type Config

type Config struct {
	Ctx SimplexChainContext
	Log logging.Logger

	Sender             sender.ExternalSender
	OutboundMsgBuilder message.OutboundMsgBuilder

	// Validators is a map of node IDs to their validator information.
	// This tells the node about the current membership set, and should be consistent
	// across all nodes in the subnet.
	Validators map[ids.NodeID]*validators.GetValidatorOutput

	// SignBLS is the signing function used for this node to sign messages.
	SignBLS SignFunc
}

Config wraps all the parameters needed for a simplex engine

type QC added in v1.14.0

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

QC represents a quorum certificate in the Simplex consensus protocol.

func (*QC) Bytes added in v1.14.0

func (qc *QC) Bytes() []byte

Bytes serializes the quorum certificate into bytes.

func (*QC) Signers added in v1.14.0

func (qc *QC) Signers() []simplex.NodeID

Signers returns the list of signers for the quorum certificate.

func (*QC) Verify added in v1.14.0

func (qc *QC) Verify(msg []byte) error

Verify checks if the quorum certificate is valid by verifying the aggregated signature against the signers' public keys.

type QCDeserializer added in v1.14.0

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

func (*QCDeserializer) DeserializeQuorumCertificate added in v1.14.0

func (d *QCDeserializer) DeserializeQuorumCertificate(bytes []byte) (simplex.QuorumCertificate, error)

DeserializeQuorumCertificate deserializes a quorum certificate from bytes.

type SignFunc

type SignFunc func(msg []byte) (*bls.Signature, error)

type SignatureAggregator added in v1.14.0

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

SignatureAggregator aggregates signatures into a quorum certificate.

func (*SignatureAggregator) Aggregate added in v1.14.0

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 {
	// Network is the ID of the network this context exists within.
	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

	// NodeID is the ID of this node
	NetworkID uint32
}

Context is information about the current execution.

Jump to

Keyboard shortcuts

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