Documentation ¶
Index ¶
- type Block
- type BlockAnchorState
- type BlockMeta
- type BlockState
- type BlockTimerType
- type Dispatcher
- type Executor
- func (m *Executor) ActiveGlobals() *core.GlobalValues
- func (x *Executor) AuthorityIsSatisfied(batch *database.Batch, transaction *protocol.Transaction, ...) (bool, error)
- func (x *Executor) BeginBlock(block *Block) error
- func (m *Executor) EnableTimers()
- func (m *Executor) EndBlock(block *Block) error
- func (x *Executor) ExecuteEnvelope(block *Block, delivery *chain.Delivery) (*protocol.TransactionStatus, error)
- func (m *Executor) Genesis(block *Block, exec chain.TransactionExecutor) error
- func (x *Executor) GetAccountAuthoritySet(batch *database.Batch, account protocol.Account) (*protocol.AccountAuth, error)
- func (x *Executor) InitChainValidators(initVal []*execute.ValidatorUpdate) (additional []*execute.ValidatorUpdate, err error)
- func (m *Executor) LoadStateRoot(batch *database.Batch) ([]byte, error)
- func (x *Executor) ProcessRemoteSignatures(block *Block, delivery *chain.Delivery) error
- func (x *Executor) ProcessSignature(batch *database.Batch, delivery *chain.Delivery, signature protocol.Signature) (*ProcessSignatureState, error)
- func (x *Executor) ProcessTransaction(batch *database.Batch, delivery *chain.Delivery) (*protocol.TransactionStatus, *chain.ProcessTransactionState, error)
- func (x *Executor) ProduceSynthetic(batch *database.Batch, from *protocol.Transaction, ...) error
- func (m *Executor) RestoreSnapshot(db database.Beginner, file ioutil2.SectionReader) error
- func (x *Executor) SetExecutor_TESTONLY(y chain.TransactionExecutor)
- func (x *Executor) SignerIsAuthorized(batch *database.Batch, transaction *protocol.Transaction, ...) error
- func (x *Executor) SignerIsSatisfied(batch *database.Batch, transaction *protocol.Transaction, ...) (bool, error)
- func (m *Executor) StoreBlockTimers(ds *logging.DataSet)
- func (x *Executor) TransactionIsReady(batch *database.Batch, delivery *chain.Delivery, ...) (bool, error)
- func (x *Executor) ValidateEnvelope(batch *database.Batch, delivery *chain.Delivery) (protocol.TransactionResult, error)
- func (x *Executor) ValidateSignature(batch *database.Batch, delivery *chain.Delivery, ...) error
- type ExecutorOptions
- type Globals
- type ProcessSignatureState
- type TimerRecord
- type TimerSet
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlockAnchorState ¶
BlockAnchorState is used to construc the anchor for the block.
type BlockState ¶
type BlockState struct { OpenedMajorBlock bool MakeMajorBlock uint64 MakeMajorBlockTime time.Time Delivered uint64 Signed uint64 ProducedTxns []*protocol.Transaction ChainUpdates chain.ChainUpdates ReceivedAnchors []*chain.ReceivedAnchor Anchor *BlockAnchorState }
BlockState tracks various metrics of a block of transactions as they are executed.
func (*BlockState) Empty ¶
func (s *BlockState) Empty() bool
Empty returns true if nothing happened during the block.
func (*BlockState) MergeSignature ¶
func (s *BlockState) MergeSignature(r *ProcessSignatureState)
func (*BlockState) MergeTransaction ¶
func (s *BlockState) MergeTransaction(r *chain.ProcessTransactionState)
type BlockTimerType ¶
type BlockTimerType uint64
const BlockTimerTypeBeginBlock BlockTimerType = 2
BlockTimerTypeBeginBlock .
const BlockTimerTypeCheckTx BlockTimerType = 3
BlockTimerTypeCheckTx .
const BlockTimerTypeCommit BlockTimerType = 6
BlockTimerTypeCommit .
const BlockTimerTypeDeliverTx BlockTimerType = 4
BlockTimerTypeDeliverTx .
const BlockTimerTypeEndBlock BlockTimerType = 5
BlockTimerTypeEndBlock .
const BlockTimerTypeExecuteEnvelope BlockTimerType = 0
BlockTimerTypeExecuteEnvelope .
const BlockTimerTypeNetworkAccountUpdates BlockTimerType = 8
BlockTimerTypeNetworkAccountUpdates .
const BlockTimerTypeProcessRemoteSignatures BlockTimerType = 9
BlockTimerTypeProcessRemoteSignatures .
const BlockTimerTypeProcessSignature BlockTimerType = 1
BlockTimerTypeProcessSignature .
const BlockTimerTypeProcessTransaction BlockTimerType = 10
BlockTimerTypeProcessTransaction .
const BlockTimerTypeSigning BlockTimerType = 7
BlockTimerTypeSigning .
const BlockTimerTypeTransactionOffset BlockTimerType = 240
BlockTimerTypeTransactionOffset .
func BlockTimerTypeByName ¶
func BlockTimerTypeByName(name string) (BlockTimerType, bool)
BlockTimerTypeByName returns the named Block Timer Type.
func (BlockTimerType) GetEnumValue ¶
func (v BlockTimerType) GetEnumValue() uint64
GetEnumValue returns the value of the Block Timer Type
func (BlockTimerType) MarshalJSON ¶
func (v BlockTimerType) MarshalJSON() ([]byte, error)
MarshalJSON marshals the Block Timer Type to JSON as a string.
func (*BlockTimerType) SetEnumValue ¶
func (v *BlockTimerType) SetEnumValue(id uint64) bool
SetEnumValue sets the value. SetEnumValue returns false if the value is invalid.
func (BlockTimerType) String ¶
func (v BlockTimerType) String() string
String returns the name of the Block Timer Type.
func (*BlockTimerType) UnmarshalJSON ¶
func (v *BlockTimerType) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals the Block Timer Type from JSON as a string.
type Dispatcher ¶
type Dispatcher = execute.Dispatcher
type Executor ¶
type Executor struct { ExecutorOptions BlockTimers TimerSet CheckTxBatch *database.Batch // contains filtered or unexported fields }
func NewGenesisExecutor ¶
func NewGenesisExecutor(db *database.Database, logger log.Logger, network *config.Describe, globals *core.GlobalValues, router routing.Router) (*Executor, error)
NewGenesisExecutor creates a transaction executor that can be used to set up the genesis state.
func NewNodeExecutor ¶
func NewNodeExecutor(opts ExecutorOptions) (*Executor, error)
NewNodeExecutor creates a new Executor for a node.
func (*Executor) ActiveGlobals ¶
func (m *Executor) ActiveGlobals() *core.GlobalValues
func (*Executor) AuthorityIsSatisfied ¶
func (*Executor) BeginBlock ¶
BeginBlock implements ./Chain
func (*Executor) EnableTimers ¶
func (m *Executor) EnableTimers()
func (*Executor) ExecuteEnvelope ¶
func (*Executor) Genesis ¶
func (m *Executor) Genesis(block *Block, exec chain.TransactionExecutor) error
func (*Executor) GetAccountAuthoritySet ¶
func (*Executor) InitChainValidators ¶
func (x *Executor) InitChainValidators(initVal []*execute.ValidatorUpdate) (additional []*execute.ValidatorUpdate, err error)
func (*Executor) LoadStateRoot ¶
func (*Executor) ProcessRemoteSignatures ¶
func (*Executor) ProcessSignature ¶
func (*Executor) ProcessTransaction ¶
func (x *Executor) ProcessTransaction(batch *database.Batch, delivery *chain.Delivery) (*protocol.TransactionStatus, *chain.ProcessTransactionState, error)
ProcessTransaction processes a transaction. It will not return an error if the transaction fails - in that case the status code will be non zero. It only returns an error in cases like a database failure.
func (*Executor) ProduceSynthetic ¶
func (x *Executor) ProduceSynthetic(batch *database.Batch, from *protocol.Transaction, produced []*protocol.Transaction) error
func (*Executor) RestoreSnapshot ¶
func (*Executor) SetExecutor_TESTONLY ¶
func (x *Executor) SetExecutor_TESTONLY(y chain.TransactionExecutor)
func (*Executor) SignerIsAuthorized ¶
func (x *Executor) SignerIsAuthorized(batch *database.Batch, transaction *protocol.Transaction, signer protocol.Signer, checkAuthz bool) error
SignerIsAuthorized verifies that the signer is allowed to sign the transaction
func (*Executor) SignerIsSatisfied ¶
func (*Executor) StoreBlockTimers ¶
func (*Executor) TransactionIsReady ¶
func (*Executor) ValidateEnvelope ¶
func (x *Executor) ValidateEnvelope(batch *database.Batch, delivery *chain.Delivery) (protocol.TransactionResult, error)
ValidateEnvelope verifies that the envelope is valid. It checks the basics, like the envelope has signatures and a hash and/or a transaction. It validates signatures, ensuring they match the transaction hash, reference a signator, etc. And more.
ValidateEnvelope should not modify anything. Right now it updates signer timestamps and credits, but that will be moved to ProcessSignature.
type ExecutorOptions ¶
type Globals ¶
type Globals struct {
Active, Pending core.GlobalValues
}
type ProcessSignatureState ¶
type ProcessSignatureState struct { }
func (*ProcessSignatureState) Merge ¶
func (s *ProcessSignatureState) Merge(r *ProcessSignatureState)
type TimerRecord ¶
type TimerRecord struct {
// contains filtered or unexported fields
}
type TimerSet ¶
type TimerSet struct {
// contains filtered or unexported fields
}
func (*TimerSet) Initialize ¶
func (t *TimerSet) Initialize(executors *map[protocol.TransactionType]chain.TransactionExecutor)
func (*TimerSet) Start ¶
func (t *TimerSet) Start(record any) *TimerRecord
func (*TimerSet) Stop ¶
func (t *TimerSet) Stop(r *TimerRecord)