Documentation
¶
Index ¶
- Constants
- Variables
- func BannerString() string
- func IsHealthyCoverageDelta(coverageDelta, supply uint64, fraction Fraction) bool
- func MaintainLogs(logFilename string, prevMode string, keepLatest int) (erasedPrev bool, savedPrev string)
- func NewLogger(name string, level zapcore.Level, outputs []string, timeLayout string) *zap.SugaredLogger
- type Fraction
- type Global
- func (l *Global) AssertMustError(err error)
- func (l *Global) AssertNoError(err error, prefix ...string)
- func (l *Global) Assertf(cond bool, format string, args ...any)
- func (l *Global) AttachmentFinished(started ...time.Time)
- func (l *Global) ClockCatchUpWithLedgerTime(ts base.LedgerTime)
- func (l *Global) Counter(name string) int
- func (l *Global) CounterLines(prefix ...string) *lines.Lines
- func (l *Global) Ctx() context.Context
- func (l *Global) DeadlockCatchingDisabled() bool
- func (l *Global) DecCounter(name string)
- func (l *Global) IncCounter(name string)
- func (l *Global) Infof0(template string, args ...any)
- func (l *Global) Infof1(template string, args ...any)
- func (l *Global) Infof2(template string, args ...any)
- func (l *Global) InfofAtLevel(level int, template string, args ...any)
- func (l *Global) IsShuttingDown() bool
- func (l *Global) Log() *zap.SugaredLogger
- func (l *Global) MarkWorkProcessStarted(name string)
- func (l *Global) MarkWorkProcessStopped(name string)
- func (l *Global) MetricsRegistry() *prometheus.Registry
- func (l *Global) Outputs() []string
- func (l *Global) RepeatInBackground(name string, period time.Duration, fun func() bool, skipFirst ...bool)
- func (l *Global) RepeatSync(period time.Duration, fun func() bool) bool
- func (l *Global) StartTracingTags(tags ...string)
- func (l *Global) Stop()
- func (l *Global) StopTracingTag(tag string)
- func (l *Global) Tracef(tag string, format string, args ...any)
- func (l *Global) TracefLog(log *zap.SugaredLogger, tag string, format string, args ...any)
- func (l *Global) TxPullParameters() (repeatPeriod time.Duration, maxAttempts int, numPeers int)
- func (l *Global) VerbosityLevel() int
- func (l *Global) WaitAllWorkProcessesStop(timeout ...time.Duration) bool
- type Logging
- type Metrics
- type NodeGlobal
- type NodeInfo
- type StartStop
- type TxBytesGet
- type TxBytesPersist
- type TxBytesStore
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 ( BaseTokenName = "Proxi" BaseTokenNameTicker = "PRXI" DustTokenName = "dust" )
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 the major version. It is 0 until beta. All alpha testnets are 'v0.n...'. Beta starts at 1 // B is the minor version. Change of the version means breaking change // C is the subversion. Change of it means non-breaking change // <label> is an arbitrary label Version = "v0.6.2-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" CommitTimeParsed time.Time )
Functions ¶
func BannerString ¶
func BannerString() string
func IsHealthyCoverageDelta ¶
IsHealthyCoverageDelta coverage delta is healthy if it is bigger than the fraction of supply
func MaintainLogs ¶
Types ¶
type Global ¶
type Global struct {
*zap.SugaredLogger
// contains filtered or unexported fields
}
func NewDefault ¶
func NewDefault() *Global
func NewFromConfig ¶
func NewFromConfig() *Global
func (*Global) AssertMustError ¶
func (*Global) AssertNoError ¶
func (*Global) AttachmentFinished ¶
func (*Global) ClockCatchUpWithLedgerTime ¶
func (l *Global) ClockCatchUpWithLedgerTime(ts base.LedgerTime)
func (*Global) DeadlockCatchingDisabled ¶
func (*Global) DecCounter ¶
func (*Global) IncCounter ¶
func (*Global) InfofAtLevel ¶
func (*Global) IsShuttingDown ¶
func (*Global) Log ¶
func (l *Global) Log() *zap.SugaredLogger
func (*Global) MarkWorkProcessStarted ¶
func (*Global) MarkWorkProcessStopped ¶
func (*Global) MetricsRegistry ¶
func (l *Global) MetricsRegistry() *prometheus.Registry
func (*Global) RepeatInBackground ¶
func (*Global) StartTracingTags ¶
func (*Global) StopTracingTag ¶
func (*Global) TxPullParameters ¶
func (*Global) VerbosityLevel ¶
type Logging ¶
type Logging interface {
Log() *zap.SugaredLogger
Outputs() []string
Tracef(tag string, format string, args ...any)
TracefLog(log *zap.SugaredLogger, 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 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 *base.ChainID `json:"sequencers,omitempty"`
}
func NodeInfoFromBytes ¶
type StartStop ¶
type StartStop interface {
Ctx() context.Context // global context of the node. Canceling means stopping the node
Stop()
IsShuttingDown() bool
ClockCatchUpWithLedgerTime(ts base.LedgerTime)
MarkWorkProcessStarted(name string)
MarkWorkProcessStopped(name string)
RepeatInBackground(name string, period time.Duration, fun func() bool, skipFirst ...bool) // runs background goroutine
RepeatSync(period time.Duration, fun func() bool) bool // repeats synchronously. Returns false if was interrupted, true otherwise
}
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 *base.TransactionID) []byte
HasTxBytes(txid *base.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)
// optionally, transaction ChainID can be provided to avoid the need to parse the transaction bytes. In the latter case txid is used as DB key as is
PersistTxBytesWithMetadata(txBytes []byte, metadata *txmetadata.TransactionMetadata, txid ...base.TransactionID) (base.TransactionID, error)
}
type TxBytesStore ¶
type TxBytesStore interface {
TxBytesGet
TxBytesPersist
}
Click to show internal directories.
Click to hide internal directories.