abci

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2024 License: MIT Imports: 37 Imported by: 0

Documentation

Overview

Package abci implements the Accumulate ABCI applications.

Transaction Processing

Tendermint processes transactions in the following phases:

  • BeginBlock
  • [CheckTx]
  • [DeliverTx]
  • EndBlock
  • Commit

Index

Constants

View Source
const Version uint64 = 0x2

Version is the version of the ABCI applications.

Variables

This section is empty.

Functions

func AdjustStatusIDs added in v1.3.0

func AdjustStatusIDs(messages []messaging.Message, st []*protocol.TransactionStatus)

AdjustStatusIDs corrects for the fact that the block anchor's ID method was bad and has been changed.

func ListSnapshots

func ListSnapshots(cfg *config.Config) ([]*snapshot.Header, error)

ListSnapshots queries the node for available snapshots.

func ListSnapshots2 added in v1.4.0

func ListSnapshots2(snapDir string) ([]*snapshot.Header, error)

Types

type Accumulator

type Accumulator struct {
	abci.BaseApplication
	AccumulatorOptions

	// DisableLateCommit - DO NOT USE IN PRODUCTION - disables the late-commit
	// logic that prevents consensus failures from being committed.
	DisableLateCommit bool
	// contains filtered or unexported fields
}

Accumulator is an ABCI application that accumulates validated transactions in a hash tree.

func NewAccumulator

func NewAccumulator(opts AccumulatorOptions) *Accumulator

NewAccumulator returns a new Accumulator.

func (*Accumulator) ApplySnapshotChunk

ApplySnapshotChunk applies a snapshot to this node. This is called for each chunk of the snapshot. The receiver is responsible for assembling the chunks and determining when they have all been received.

This is one of four ABCI functions we have to implement for Tendermint/CometBFT.

func (*Accumulator) CheckTx

func (app *Accumulator) CheckTx(_ context.Context, req *abci.RequestCheckTx) (rct *abci.ResponseCheckTx, err error)

CheckTx implements github.com/cometbft/cometbft/abci/types.Application.

Verifies the transaction is sane.

func (*Accumulator) Commit

Commit implements github.com/cometbft/cometbft/abci/types.Application.

Commits the transaction block to the chains.

func (*Accumulator) CurrentBlock added in v1.1.1

func (app *Accumulator) CurrentBlock() execute.Block

func (*Accumulator) CurrentBlockState added in v1.1.1

func (app *Accumulator) CurrentBlockState() execute.BlockState

func (*Accumulator) FinalizeBlock added in v1.2.5

func (*Accumulator) Info

Info implements github.com/cometbft/cometbft/abci/types.Application.

func (*Accumulator) InitChain

InitChain implements github.com/cometbft/cometbft/abci/types.Application.

Called when a chain is created.

func (*Accumulator) LastBlock added in v1.1.1

func (app *Accumulator) LastBlock() (*execute.BlockParams, [32]byte, error)

func (*Accumulator) ListSnapshots

ListSnapshots returns a list of snapshot metadata objects.

This is one of four ABCI functions we have to implement for Tendermint/CometBFT.

func (*Accumulator) LoadSnapshotChunk

LoadSnapshotChunk queries the node for the body of a snapshot, to be offered to another node.

This is one of four ABCI functions we have to implement for Tendermint/CometBFT.

func (*Accumulator) OfferSnapshot

OfferSnapshot offers a snapshot to this node. This initiates the snapshot sync process on the receiver.

This is one of four ABCI functions we have to implement for Tendermint/CometBFT.

func (*Accumulator) OnFatal

func (app *Accumulator) OnFatal(f func(error))

FOR TESTING ONLY

func (*Accumulator) PrepareProposal added in v1.2.12

func (*Accumulator) ProcessProposal added in v1.2.12

func (*Accumulator) Query

func (app *Accumulator) Query(_ context.Context, reqQuery *abci.RequestQuery) (*abci.ResponseQuery, error)

Query implements github.com/cometbft/cometbft/abci/types.Application.

Exposed as Tendermint RPC /abci_query.

type AccumulatorOptions

type AccumulatorOptions struct {
	ID                   string // For debugging
	Tracer               trace.Tracer
	Executor             execute.Executor
	EventBus             *events.Bus
	Logger               log.Logger
	Snapshots            *config.Snapshots
	Database             coredb.Beginner
	Address              crypto.Address // This is the address of this node, and is used to determine if the node is the leader
	Genesis              node.GenesisDocProvider
	Partition            string
	RootDir              string
	AnalysisLog          config.AnalysisLog
	MaxEnvelopesPerBlock int
}

type RequestBeginBlock added in v1.2.5

type RequestBeginBlock struct {
	Header              *abci.RequestFinalizeBlock
	LastCommitInfo      abci.CommitInfo
	ByzantineValidators []abci.Misbehavior
}

type ResponseEndBlock added in v1.2.5

type ResponseEndBlock struct {
	ValidatorUpdates []abci.ValidatorUpdate
}

Jump to

Keyboard shortcuts

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