chain

package
v0.17.0 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ChainUpdateEventType = "chain.update"
)

Variables

View Source
var (
	ErrBlockNotFound                = errors.New("block not found")
	ErrIntersectNotFound            = errors.New("chain intersect not found")
	ErrRollbackBeyondEphemeralChain = errors.New(
		"cannot rollback ephemeral chain beyond memory buffer",
	)
	ErrIteratorChainTip = errors.New(
		"chain iterator is at chain tip",
	)
)

Functions

This section is empty.

Types

type BlockNotFitChainTipError added in v0.4.6

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

func NewBlockNotFitChainTipError added in v0.4.6

func NewBlockNotFitChainTipError(
	blockHash string,
	blockPrevHash string,
	tipHash string,
) BlockNotFitChainTipError

func (BlockNotFitChainTipError) Error added in v0.4.6

func (e BlockNotFitChainTipError) Error() string

type BlockNotMatchHeaderError added in v0.4.6

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

func NewBlockNotMatchHeaderError added in v0.4.6

func NewBlockNotMatchHeaderError(
	blockHash string,
	headerHash string,
) BlockNotMatchHeaderError

func (BlockNotMatchHeaderError) Error added in v0.4.6

func (e BlockNotMatchHeaderError) Error() string

type Chain

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

func (*Chain) AddBlock

func (c *Chain) AddBlock(
	block ledger.Block,
	txn *database.Txn,
) error

func (*Chain) AddBlockHeader added in v0.4.6

func (c *Chain) AddBlockHeader(header ledger.BlockHeader) error

func (*Chain) AddBlocks added in v0.5.0

func (c *Chain) AddBlocks(blocks []ledger.Block) error

func (*Chain) BlockByPoint added in v0.4.6

func (c *Chain) BlockByPoint(
	point ocommon.Point,
	txn *database.Txn,
) (database.Block, error)

func (*Chain) FromPoint

func (c *Chain) FromPoint(
	point ocommon.Point,
	inclusive bool,
) (*ChainIterator, error)

FromPoint returns a ChainIterator starting at the specified point. If inclusive is true, the iterator will start at the specified point. Otherwise it will start at the point following the specified point

func (*Chain) HeaderCount added in v0.4.6

func (c *Chain) HeaderCount() int

func (*Chain) HeaderRange added in v0.4.6

func (c *Chain) HeaderRange(count int) (ocommon.Point, ocommon.Point)

func (*Chain) HeaderTip added in v0.4.6

func (c *Chain) HeaderTip() ochainsync.Tip

func (*Chain) Rollback

func (c *Chain) Rollback(point ocommon.Point) error

func (*Chain) Tip

func (c *Chain) Tip() ochainsync.Tip

type ChainBlockEvent

type ChainBlockEvent struct {
	Point ocommon.Point
	Block database.Block
}

type ChainId added in v0.11.0

type ChainId uint64

type ChainIterator

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

func (*ChainIterator) Next

func (ci *ChainIterator) Next(blocking bool) (*ChainIteratorResult, error)

type ChainIteratorResult

type ChainIteratorResult struct {
	Point    ocommon.Point
	Block    database.Block
	Rollback bool
}

type ChainManager added in v0.11.0

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

func NewManager added in v0.11.0

func NewManager(
	db *database.Database,
	eventBus *event.EventBus,
) (*ChainManager, error)

func (*ChainManager) BlockByPoint added in v0.11.0

func (cm *ChainManager) BlockByPoint(
	point ocommon.Point,
	txn *database.Txn,
) (database.Block, error)

func (*ChainManager) Chain added in v0.11.0

func (cm *ChainManager) Chain(id ChainId) *Chain

func (*ChainManager) NewChain added in v0.11.0

func (cm *ChainManager) NewChain(point ocommon.Point) (*Chain, error)

NewChain creates a new Chain that forks from the primary chain at the specified point. This is useful for managing outbound ChainSync clients

func (*ChainManager) NewChainFromIntersect added in v0.11.0

func (cm *ChainManager) NewChainFromIntersect(
	points []ocommon.Point,
) (*Chain, error)

NewChainFromIntersect creates a new Chain that forks the primary chain at the latest common point.

func (*ChainManager) PrimaryChain added in v0.11.0

func (cm *ChainManager) PrimaryChain() *Chain

type ChainRollbackEvent

type ChainRollbackEvent struct {
	Point ocommon.Point
}

Jump to

Keyboard shortcuts

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