Documentation ¶
Index ¶
- type AuthoritySignature
- type Block
- type BlockAnchor
- type BlockAnchorState
- type BlockMeta
- type BlockState
- type BlockStateV2
- type BlockTimerType
- type BlockV2
- type CreditPayment
- type Dispatcher
- type Executor
- func (m *Executor) ActiveGlobals_TESTONLY() *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) GetAccountAuthoritySet(batch *database.Batch, account protocol.Account) (*protocol.AccountAuth, error)
- func (x *Executor) InitChainValidators(initVal []abci.ValidatorUpdate) (additional [][]byte, err error)
- func (m *Executor) LoadStateRoot(batch *database.Batch) ([]byte, error)
- func (x *Executor) ProcessTransaction(batch *database.Batch, delivery *chain.Delivery) (*protocol.TransactionStatus, *chain.ProcessTransactionState, error)
- func (x *Executor) ProduceSynthetic(batch *database.Batch, produced []*ProducedMessage) 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)
- type ExecutorFor
- type ExecutorOptions
- type ExecutorV2
- func (x *ExecutorV2) Begin(params execute.BlockParams) (execute.Block, error)
- func (x *ExecutorV2) EnableTimers()
- func (x *ExecutorV2) InitChainValidators(initVal []abcitypes.ValidatorUpdate) (additional [][]byte, err error)
- func (x *ExecutorV2) LoadStateRoot(batch *database.Batch) ([]byte, error)
- func (x *ExecutorV2) RestoreSnapshot(batch database.Beginner, snapshot ioutil2.SectionReader) error
- func (x *ExecutorV2) StoreBlockTimers(ds *logging.DataSet)
- func (x *ExecutorV2) Validate(batch *database.Batch, messages []messaging.Message) ([]*protocol.TransactionStatus, error)
- type Globals
- type KeySignature
- type MessageContext
- type MessageExecutor
- type MessageIsReady
- type NetworkUpdate
- type ProcessSignatureState
- type ProducedMessage
- type SequencedMessage
- type SignatureContext
- type SignatureExecutor
- type SignatureRequest
- type SyntheticMessage
- type TimerRecord
- type TimerSet
- type TransactionContext
- type UserSignature
- type UserTransaction
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthoritySignature ¶
type AuthoritySignature struct{}
AuthoritySignature processes delegated signatures.
func (AuthoritySignature) Process ¶
func (x AuthoritySignature) Process(batch *database.Batch, ctx *SignatureContext) (*protocol.TransactionStatus, error)
func (AuthoritySignature) Validate ¶
func (x AuthoritySignature) Validate(batch *database.Batch, ctx *SignatureContext) (*protocol.TransactionStatus, error)
type BlockAnchor ¶
type BlockAnchor struct{}
BlockAnchor executes the signature, queuing the transaction for processing when appropriate.
func (BlockAnchor) Process ¶
func (x BlockAnchor) Process(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
func (BlockAnchor) Validate ¶
func (x BlockAnchor) Validate(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
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 Produced int 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 BlockStateV2 ¶
type BlockStateV2 Block
BlockStateV2 translates execute.BlockState calls for a v1 executor
func (*BlockStateV2) Commit ¶
func (s *BlockStateV2) Commit() error
func (*BlockStateV2) DidCompleteMajorBlock ¶
func (s *BlockStateV2) DidCompleteMajorBlock() (uint64, time.Time, bool)
func (*BlockStateV2) Discard ¶
func (s *BlockStateV2) Discard()
func (*BlockStateV2) IsEmpty ¶
func (s *BlockStateV2) IsEmpty() bool
func (*BlockStateV2) Params ¶
func (b *BlockStateV2) Params() execute.BlockParams
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 BlockV2 ¶
BlockV2 translates execute.Block calls for a v1 executor/
func (*BlockV2) Close ¶
func (b *BlockV2) Close() (execute.BlockState, error)
Close ends the block and returns the block state.
func (*BlockV2) Params ¶
func (b *BlockV2) Params() execute.BlockParams
type CreditPayment ¶
type CreditPayment struct{}
CreditPayment processes a credit payment
func (CreditPayment) Process ¶
func (x CreditPayment) Process(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
func (CreditPayment) Validate ¶
func (x CreditPayment) Validate(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
type Dispatcher ¶
type Dispatcher = execute.Dispatcher
type Executor ¶
type Executor struct { ExecutorOptions BlockTimers TimerSet // contains filtered or unexported fields }
func NewExecutor ¶
func NewExecutor(opts ExecutorOptions) (*Executor, error)
NewExecutor creates a new Executor.
func (*Executor) ActiveGlobals_TESTONLY ¶
func (m *Executor) ActiveGlobals_TESTONLY() *core.GlobalValues
func (*Executor) AuthorityIsSatisfied ¶
func (*Executor) BeginBlock ¶
BeginBlock implements ./Chain
func (*Executor) EnableTimers ¶
func (m *Executor) EnableTimers()
func (*Executor) GetAccountAuthoritySet ¶
func (*Executor) InitChainValidators ¶
func (x *Executor) InitChainValidators(initVal []abci.ValidatorUpdate) (additional [][]byte, err error)
func (*Executor) LoadStateRoot ¶
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, produced []*ProducedMessage) 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 ¶
type ExecutorFor ¶
type ExecutorOptions ¶
type ExecutorV2 ¶
type ExecutorV2 Executor
ExecutorV2 implements execute.Executor calls for a v1 executor.
func (*ExecutorV2) Begin ¶
func (x *ExecutorV2) Begin(params execute.BlockParams) (execute.Block, error)
Begin constructs a BlockV2 and calls Executor.BeginBlock.
func (*ExecutorV2) EnableTimers ¶
func (x *ExecutorV2) EnableTimers()
func (*ExecutorV2) InitChainValidators ¶
func (x *ExecutorV2) InitChainValidators(initVal []abcitypes.ValidatorUpdate) (additional [][]byte, err error)
func (*ExecutorV2) LoadStateRoot ¶
func (x *ExecutorV2) LoadStateRoot(batch *database.Batch) ([]byte, error)
func (*ExecutorV2) RestoreSnapshot ¶
func (x *ExecutorV2) RestoreSnapshot(batch database.Beginner, snapshot ioutil2.SectionReader) error
func (*ExecutorV2) StoreBlockTimers ¶
func (x *ExecutorV2) StoreBlockTimers(ds *logging.DataSet)
func (*ExecutorV2) Validate ¶
func (x *ExecutorV2) Validate(batch *database.Batch, messages []messaging.Message) ([]*protocol.TransactionStatus, error)
Validate converts the message to a delivery and validates it. Validate returns an error if the message is not a [message.LegacyMessage].
type Globals ¶
type Globals struct {
Active, Pending core.GlobalValues
}
type KeySignature ¶
type KeySignature struct{}
KeySignature processes key signatures.
func (KeySignature) Process ¶
func (x KeySignature) Process(batch *database.Batch, ctx *SignatureContext) (*protocol.TransactionStatus, error)
func (KeySignature) Validate ¶
func (KeySignature) Validate(batch *database.Batch, ctx *SignatureContext) (*protocol.TransactionStatus, error)
type MessageContext ¶
type MessageContext struct {
// contains filtered or unexported fields
}
MessageContext is the context in which a message is processed.
func (*MessageContext) Type ¶
func (m *MessageContext) Type() messaging.MessageType
type MessageExecutor ¶
type MessageExecutor = ExecutorFor[messaging.MessageType, *MessageContext]
type MessageIsReady ¶
type MessageIsReady struct{}
MessageIsReady executes a message.
func (MessageIsReady) Process ¶
func (MessageIsReady) Process(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
func (MessageIsReady) Validate ¶
func (MessageIsReady) Validate(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
type NetworkUpdate ¶
type NetworkUpdate struct{}
NetworkUpdate constructs a transaction for the network update and queues it for processing.
func (NetworkUpdate) Process ¶
func (NetworkUpdate) Process(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
func (NetworkUpdate) Validate ¶
func (NetworkUpdate) Validate(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
type ProcessSignatureState ¶
type ProcessSignatureState struct { }
func (*ProcessSignatureState) Merge ¶
func (s *ProcessSignatureState) Merge(r *ProcessSignatureState)
type ProducedMessage ¶
type ProducedMessage struct { // Producer is the ID of the producer. Producer *url.TxID // Destination is the account that the message should be routed to. Destination *url.URL // Message is the produced message. Message messaging.Message }
ProducedMessage is a message produced by another message.
type SequencedMessage ¶
type SequencedMessage struct{ UserTransaction }
SequencedMessage records the sequence metadata and executes the message inside.
func (SequencedMessage) Process ¶
func (x SequencedMessage) Process(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
func (SequencedMessage) Validate ¶
func (x SequencedMessage) Validate(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
type SignatureContext ¶
type SignatureContext struct { *MessageContext // contains filtered or unexported fields }
SignatureContext is the context in which a message is executed.
func (*SignatureContext) Type ¶
func (s *SignatureContext) Type() protocol.SignatureType
type SignatureExecutor ¶
type SignatureExecutor = ExecutorFor[protocol.SignatureType, *SignatureContext]
type SignatureRequest ¶
type SignatureRequest struct{}
SignatureRequest lists a transaction as pending on an authority.
func (SignatureRequest) Process ¶
func (x SignatureRequest) Process(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
func (SignatureRequest) Validate ¶
func (x SignatureRequest) Validate(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
type SyntheticMessage ¶
type SyntheticMessage struct{}
SyntheticMessage records the synthetic transaction but does not execute it.
func (SyntheticMessage) Process ¶
func (x SyntheticMessage) Process(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
func (SyntheticMessage) Validate ¶
func (x SyntheticMessage) Validate(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
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)
type TransactionContext ¶
type TransactionContext struct { *MessageContext // contains filtered or unexported fields }
TransactionContext is the context in which a transaction is executed.
type UserSignature ¶
type UserSignature struct{}
UserSignature executes the signature, queuing the transaction for processing when appropriate.
func (UserSignature) Process ¶
func (x UserSignature) Process(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
func (UserSignature) Validate ¶
func (x UserSignature) Validate(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
type UserTransaction ¶
type UserTransaction struct{}
UserTransaction records the transaction but does not execute it. Transactions are executed in response to _authority signature_ messages, not user transaction messages.
func (UserTransaction) Process ¶
func (x UserTransaction) Process(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
func (UserTransaction) Validate ¶
func (x UserTransaction) Validate(batch *database.Batch, ctx *MessageContext) (*protocol.TransactionStatus, error)
Source Files ¶
- block_begin.go
- block_end.go
- block_timers.go
- compat.go
- enums_gen.go
- exec_common.go
- exec_process.go
- exec_validate.go
- executor.go
- executor_testnet.go
- globals.go
- msg_block_anchor.go
- msg_common.go
- msg_credit_payment.go
- msg_is_ready.go
- msg_network_update.go
- msg_sequenced.go
- msg_signature_request.go
- msg_synthetic.go
- msg_user_signature.go
- msg_user_transaction.go
- network_accounts.go
- sig_authority.go
- sig_common.go
- sig_key.go
- signature.go
- state.go
- synthetic.go
- transaction.go
- txn_common.go
- utils.go
- validate.go