global

package
v0.4.4-testnet Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2025 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MultiStateDBName     = "proximadb"
	TxStoreDBName        = "proximadb.txstore"
	ConfigKeyTxStoreType = "txstore.type"

	// MaxSyncPortionSlots max number of slots in the sync portion
	MaxSyncPortionSlots = 100
)
View Source
const (
	PullRepeatPeriodDefault = 2 * time.Second
	PullMaxAttemptsDefault  = 30
	PullFromNumPeersDefault = 3
)

PullTimeout maximum time allowed for the virtual txid become transaction (full vertex)

View Source
const TimeLayoutDefault = "01-02 15:04:05.000"
View Source
const TraceTag = "global"
View Source
const (
	// Version has the following structure: vA.B.C[-<label>]
	// A is major version. It is 0 until beta. All alpha testnets are 'v0.n...'. Beta starts at 1
	// B is minor version. Change of the version means breaking change
	// C is subversion. Change usually means non-breaking change
	// <label is arbitrary label>
	Version = "v0.4.4-testnet"
)

Variables

View Source
var (
	FractionHalf = Fraction{
		Numerator:   1,
		Denominator: 2,
	}

	Fraction23 = Fraction{
		Numerator:   2,
		Denominator: 3,
	}

	FractionHealthyBranch = FractionHalf

	ErrInterrupted = errors.New("interrupted by global stop")
)
View Source
var (
	CommitHash = "N/A"
	CommitTime = "N/A"
)

Functions

func BannerString

func BannerString() string

func IsHealthyCoverage

func IsHealthyCoverage(coverage, supply uint64, fraction Fraction) bool

IsHealthyCoverage coverage is healthy if it is bigger than 2 times the fraction of supply

func NewLogger

func NewLogger(name string, level zapcore.Level, outputs []string, timeLayout string) *zap.SugaredLogger

Types

type Fraction

type Fraction struct {
	Numerator   int
	Denominator int
}

func (*Fraction) String

func (f *Fraction) String() string

type Global

type Global struct {
	*zap.SugaredLogger
	// contains filtered or unexported fields
}

func NewDefault

func NewDefault(bootstrap ...bool) *Global

func NewFromConfig

func NewFromConfig() *Global

func (*Global) AssertMustError

func (l *Global) AssertMustError(err error)

func (*Global) AssertNoError

func (l *Global) AssertNoError(err error, prefix ...string)

func (*Global) Assertf

func (l *Global) Assertf(cond bool, format string, args ...any)

func (*Global) AttachmentFinished

func (l *Global) AttachmentFinished(started ...time.Time)

func (*Global) ClockCatchUpWithLedgerTime

func (l *Global) ClockCatchUpWithLedgerTime(ts ledger.Time)

func (*Global) Counter

func (l *Global) Counter(name string) int

func (*Global) CounterLines

func (l *Global) CounterLines(prefix ...string) *lines.Lines

func (*Global) Ctx

func (l *Global) Ctx() context.Context

func (*Global) DeadlockCatchingDisabled

func (l *Global) DeadlockCatchingDisabled() bool

func (*Global) DecCounter

func (l *Global) DecCounter(name string)

func (*Global) IncCounter

func (l *Global) IncCounter(name string)

func (*Global) Infof0

func (l *Global) Infof0(template string, args ...any)

func (*Global) Infof1

func (l *Global) Infof1(template string, args ...any)

func (*Global) Infof2

func (l *Global) Infof2(template string, args ...any)

func (*Global) InfofAtLevel

func (l *Global) InfofAtLevel(level int, template string, args ...any)

func (*Global) IsBootstrapMode

func (l *Global) IsBootstrapMode() bool

func (*Global) IsShuttingDown

func (l *Global) IsShuttingDown() bool

func (*Global) Log

func (l *Global) Log() *zap.SugaredLogger

func (*Global) MarkWorkProcessStarted

func (l *Global) MarkWorkProcessStarted(name string)

func (*Global) MarkWorkProcessStopped

func (l *Global) MarkWorkProcessStopped(name string)

func (*Global) MetricsRegistry

func (l *Global) MetricsRegistry() *prometheus.Registry

func (*Global) RepeatInBackground

func (l *Global) RepeatInBackground(name string, period time.Duration, fun func() bool, skipFirst ...bool)

func (*Global) StartTracingTags

func (l *Global) StartTracingTags(tags ...string)

func (*Global) Stop

func (l *Global) Stop()

func (*Global) StopTracingTag

func (l *Global) StopTracingTag(tag string)

func (*Global) Tracef

func (l *Global) Tracef(tag string, format string, args ...any)

func (*Global) TxPullParameters

func (l *Global) TxPullParameters() (repeatPeriod time.Duration, maxAttempts int, numPeers int)

func (*Global) VerbosityLevel

func (l *Global) VerbosityLevel() int

func (*Global) WaitAllWorkProcessesStop

func (l *Global) WaitAllWorkProcessesStop(timeout ...time.Duration) bool

type Logging

type Logging interface {
	Log() *zap.SugaredLogger
	Tracef(tag string, format string, args ...any)
	StartTracingTags(tags ...string)
	// Assertf asserts only if global shutdown wasn't issued
	Assertf(cond bool, format string, args ...any)
	AssertNoError(err error, prefix ...string)
	VerbosityLevel() int
	Infof0(template string, args ...any)
	Infof1(template string, args ...any)
	Infof2(template string, args ...any)

	IncCounter(name string)
	DecCounter(nane string)
	Counter(name string) int
	CounterLines(prefix ...string) *lines.Lines
	AttachmentFinished(started ...time.Time)

	// TxPullParameters repeat after period, max attempts, num peers
	TxPullParameters() (repeatPeriod time.Duration, maxAttempts int, numPeers int)
	// DeadlockCatchingDisabled config parameter to disdable deadlock catching
	DeadlockCatchingDisabled() bool
}

type Metrics

type Metrics interface {
	MetricsRegistry() *prometheus.Registry
}

type NodeGlobal

type NodeGlobal interface {
	Logging
	StartStop
	Metrics
	IsBootstrapMode() bool
}

type NodeInfo

type NodeInfo struct {
	ID              peer.ID         `json:"id"`
	Version         string          `json:"version"`
	CommitHash      string          `json:"commit_hash"`
	CommitTime      string          `json:"commit_time"`
	NumStaticAlive  uint16          `json:"num_static_peers"`
	NumDynamicAlive uint16          `json:"num_dynamic_alive"`
	Sequencer       *ledger.ChainID `json:"sequencers,omitempty"`
}

func NodeInfoFromBytes

func NodeInfoFromBytes(data []byte) (*NodeInfo, error)

func (*NodeInfo) Bytes

func (ni *NodeInfo) Bytes() []byte

func (*NodeInfo) Lines

func (ni *NodeInfo) Lines(prefix ...string) *lines.Lines

type StartStop

type StartStop interface {
	Ctx() context.Context // global context of the node. Canceling means stopping the node
	Stop()
	IsShuttingDown() bool
	ClockCatchUpWithLedgerTime(ts ledger.Time)
	MarkWorkProcessStarted(name string)
	MarkWorkProcessStopped(name string)
	RepeatInBackground(name string, period time.Duration, fun func() bool, skipFirst ...bool) // runs background goroutine
}

StartStop interface of the global objects which coordinates graceful shutdown

type TxBytesGet

type TxBytesGet interface {
	// GetTxBytesWithMetadata return empty slice on absence, otherwise returns concatenated metadata bytes and transaction bytes
	GetTxBytesWithMetadata(id *ledger.TransactionID) []byte
	HasTxBytes(txid *ledger.TransactionID) bool
}

type TxBytesPersist

type TxBytesPersist interface {
	// PersistTxBytesWithMetadata saves txBytes prefixed with metadata bytes.
	// metadata == nil is interpreted as empty metadata (one 0 byte as prefix)
	PersistTxBytesWithMetadata(txBytes []byte, metadata *txmetadata.TransactionMetadata) (ledger.TransactionID, error)
}

type TxBytesStore

type TxBytesStore interface {
	TxBytesGet
	TxBytesPersist
}

Jump to

Keyboard shortcuts

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