Help us shape the future of Go! Take the 2026 Go Developer Survey

pool

package
v2.14.0 Latest Latest
Warning

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

Go to latest
Published: Sep 25, 2024 License: GPL-3.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DISCONNECT means that two branches are not connected
	DISCONNECT ChainState = 1
	// CONNECTED means that two branches are connected
	CONNECTED = 2
	// FORKED means that two branches are connected, but forked
	FORKED = 3
)

Variables

View Source
var ErrAllIn = errors.New("all in")
View Source
var ErrBlackList = errors.New("block in blacklist")
View Source
var ErrCurrentChainModify = errors.New("current chain modify")
View Source
var ErrEmptyMain = errors.New("empty chainpool")
View Source
var ErrMax = errors.New("arrived to max")
View Source
var ErrQuotaNotEnough = errors.New("block quota not enough")

Functions

This section is empty.

Types

type BCPool

type BCPool struct {
	ID string
	// contains filtered or unexported fields
}

BCPool is the basis for account pool and snapshot pool

func (*BCPool) CurrentChain

func (bcp *BCPool) CurrentChain() tree.Branch

CurrentChain returns the main branch

func (*BCPool) CurrentModifyToChain

func (bcp *BCPool) CurrentModifyToChain(target tree.Branch) error

CurrentModifyToChain switch target branch to main branch

func (*BCPool) CurrentModifyToEmpty

func (bcp *BCPool) CurrentModifyToEmpty() error

CurrentModifyToEmpty switch empty branch to main branch

func (*BCPool) LongerChain

func (bcp *BCPool) LongerChain(minHeight uint64) []tree.Branch

LongerChain looks for branches that are longer than insert new chainthe main branch

type Blacklist

type Blacklist interface {
	Add(key types.Hash)
	AddAddTimeout(key types.Hash, duration time.Duration)
	Exists(key types.Hash) bool
	Remove(key types.Hash)
}

Blacklist define a data set interface with a timeout

func NewBlacklist

func NewBlacklist() (Blacklist, error)

NewBlacklist returns timeout blacklist

type BlockPool

type BlockPool interface {
	Writer
	Reader
	SnapshotProducerWriter
	Debug
	Pipeline

	Start()
	Stop()
	Init(s syncer,
		accountV verifier.Verifier,
		sbpStatReader core.SBPStatReader)
}

BlockPool is responsible for organizing blocks and inserting it into the chain

func NewPool

func NewPool(bc chainDb) (BlockPool, error)

NewPool create a new BlockPool

type ByHeight

type ByHeight []commonBlock

ByHeight sorts commonBlock by height

func (ByHeight) Len

func (a ByHeight) Len() int

func (ByHeight) Less

func (a ByHeight) Less(i, j int) bool

func (ByHeight) Swap

func (a ByHeight) Swap(i, j int)

type ByTailHeight

type ByTailHeight []*snippetChain

ByTailHeight sorts snippetChain by tail height

func (ByTailHeight) Len

func (a ByTailHeight) Len() int

func (ByTailHeight) Less

func (a ByTailHeight) Less(i, j int) bool

func (ByTailHeight) Swap

func (a ByTailHeight) Swap(i, j int)

type ChainState

type ChainState uint8

ChainState represents the relationship between the two branches

type Debug

type Debug interface {
	Info() map[string]interface{}
	AccountBlockInfo(addr types.Address, hash types.Hash) interface{}
	SnapshotBlockInfo(hash types.Hash) interface{}
	Snapshot() map[string]interface{}
	SnapshotPendingNum() uint64
	AccountPendingNum() *big.Int
	Account(addr types.Address) map[string]interface{}
	SnapshotChainDetail(chainID string, height uint64) map[string]interface{}
	AccountChainDetail(addr types.Address, chainID string, height uint64) map[string]interface{}
}

Debug provide more detail info for BlockPool

type Pipeline

type Pipeline interface {
	AddPipeline(reader net.ChunkReader)
}

type Reader

type Reader interface {
	GetIrreversibleBlock() *ledger.SnapshotBlock
}

Reader is a reader of BlockPool

type SnapshotProducerWriter

type SnapshotProducerWriter interface {
	lock.ChainInsert
	lock.ChainRollback
	AddDirectSnapshotBlock(block *ledger.SnapshotBlock) error
}

SnapshotProducerWriter is a writer for snapshot producer

type Writer

type Writer interface {
	// for normal account
	AddDirectAccountBlock(address types.Address, vmAccountBlock *interfaces.VmAccountBlock) error
}

Writer is a writer of BlockPool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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