Documentation ¶
Index ¶
- Variables
- type App
- func (app *App) Abci() *abci.App
- func (app *App) ApplySnapshotChunk(ctx context.Context, req tmtypes.RequestApplySnapshotChunk) tmtypes.ResponseApplySnapshotChunk
- func (app *App) CheckBatchMarketInstructions(ctx context.Context, tx abci.Tx) error
- func (app *App) CheckBatchMarketInstructionsW(f func(context.Context, abci.Tx) error) func(context.Context, abci.Tx) error
- func (app *App) CheckPropose(ctx context.Context, tx abci.Tx) error
- func (app *App) CheckProposeW(f func(context.Context, abci.Tx) error) func(context.Context, abci.Tx) error
- func (app *App) CheckProtocolUpgradeProposal(ctx context.Context, tx abci.Tx) error
- func (app *App) CheckSubmitOracleData(_ context.Context, tx abci.Tx) error
- func (app *App) DeliverAmendLiquidityProvision(ctx context.Context, tx abci.Tx, deterministicID string) error
- func (app *App) DeliverAmendOrder(ctx context.Context, tx abci.Tx, deterministicID string) (errl error)
- func (app *App) DeliverAnnounceNode(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverBatchMarketInstructions(ctx context.Context, tx abci.Tx, deterministicID string) error
- func (app *App) DeliverCancelLiquidityProvision(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverCancelOrder(ctx context.Context, tx abci.Tx, deterministicID string) error
- func (app *App) DeliverCancelTransferFunds(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverChainEvent(ctx context.Context, tx abci.Tx, id string) error
- func (app *App) DeliverDelegate(ctx context.Context, tx abci.Tx) (err error)
- func (app *App) DeliverEthereumKeyRotateSubmission(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverIssueSignatures(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverKeyRotateSubmission(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverLiquidityProvision(ctx context.Context, tx abci.Tx, deterministicID string) error
- func (app *App) DeliverNodeSignature(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverNodeVote(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverPropose(ctx context.Context, tx abci.Tx, deterministicID string) error
- func (app *App) DeliverProtocolUpgradeCommand(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverStateVarProposal(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverSubmitOracleData(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverSubmitOrder(ctx context.Context, tx abci.Tx, deterministicID string) error
- func (app *App) DeliverTransferFunds(ctx context.Context, tx abci.Tx, id string) error
- func (app *App) DeliverUndelegate(ctx context.Context, tx abci.Tx) (err error)
- func (app *App) DeliverValidatorHeartbeat(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverVote(ctx context.Context, tx abci.Tx) error
- func (app *App) DeliverWithdraw(ctx context.Context, tx abci.Tx, id string) error
- func (app *App) Info(_ tmtypes.RequestInfo) tmtypes.ResponseInfo
- func (app *App) ListSnapshots(_ tmtypes.RequestListSnapshots) tmtypes.ResponseListSnapshots
- func (app *App) LoadSnapshotChunk(req tmtypes.RequestLoadSnapshotChunk) tmtypes.ResponseLoadSnapshotChunk
- func (app *App) OfferSnapshot(req tmtypes.RequestOfferSnapshot) tmtypes.ResponseOfferSnapshot
- func (app *App) OnBeginBlock(req tmtypes.RequestBeginBlock) (ctx context.Context, resp tmtypes.ResponseBeginBlock)
- func (app *App) OnCheckTx(ctx context.Context, _ tmtypes.RequestCheckTx, tx abci.Tx) (context.Context, tmtypes.ResponseCheckTx)
- func (app *App) OnCheckTxSpam(tx abci.Tx) tmtypes.ResponseCheckTx
- func (app *App) OnCommit() (resp tmtypes.ResponseCommit)
- func (app *App) OnDeliverTXSpam(ctx context.Context, tx abci.Tx) tmtypes.ResponseDeliverTx
- func (app *App) OnDeliverTx(ctx context.Context, req tmtypes.RequestDeliverTx, tx abci.Tx) (context.Context, tmtypes.ResponseDeliverTx)
- func (app *App) OnEndBlock(req tmtypes.RequestEndBlock) (ctx context.Context, resp tmtypes.ResponseEndBlock)
- func (app *App) OnInitChain(req tmtypes.RequestInitChain) tmtypes.ResponseInitChain
- func (app *App) OnSpamProtectionMaxBatchSizeUpdate(ctx context.Context, u *num.Uint) error
- func (app *App) ReloadConf(cfg Config)
- func (app *App) RequireValidatorMasterPubKey(ctx context.Context, tx abci.Tx) error
- func (app *App) RequireValidatorMasterPubKeyW(f func(context.Context, abci.Tx) error) func(context.Context, abci.Tx) error
- func (app *App) RequireValidatorPubKey(ctx context.Context, tx abci.Tx) error
- func (app *App) RequireValidatorPubKeyW(f func(context.Context, abci.Tx) error) func(context.Context, abci.Tx) error
- func (app *App) SendTransactionResult(f func(context.Context, abci.Tx) error) func(context.Context, abci.Tx) error
- type Assets
- type BMIProcessor
- type Banking
- type BlockchainClient
- type Broker
- type Checkpoint
- type Config
- type DelegationEngine
- type ERC20MultiSigTopology
- type EpochService
- type EvtForwarder
- type ExecutionEngine
- type GovernanceEngine
- type HasVegaAssetID
- type Limits
- type NetworkParameters
- type Notary
- type NullBlockchainTxCodec
- type Oracle
- type OracleAdaptors
- type OraclesEngine
- type PoWEngine
- type ProtocolUpgradeService
- type Snapshot
- type SpamEngine
- type StakeVerifier
- type StakingAccounts
- type StateVarEngine
- type Stats
- type TimeService
- type Tx
- func (t Tx) BlockHeight() uint64
- func (t Tx) Command() txn.Command
- func (t Tx) GetCmd() interface{}
- func (t Tx) GetPoWNonce() uint64
- func (t Tx) GetPoWTID() string
- func (t Tx) GetVersion() uint32
- func (t Tx) Hash() []byte
- func (t Tx) Party() string
- func (t Tx) PubKey() []byte
- func (t Tx) PubKeyHex() string
- func (t Tx) Signature() []byte
- func (t Tx) Unmarshal(i interface{}) error
- type TxCodec
- type ValidatorTopology
- type Witness
Constants ¶
This section is empty.
Variables ¶
var ( ErrPublicKeyCannotSubmitTransactionWithNoBalance = errors.New("public key cannot submit transaction without balance") ErrUnexpectedTxPubKey = errors.New("no one listens to the public keys that signed this oracle data") ErrTradingDisabled = errors.New("trading disabled") ErrNoTransactionAllowedDuringBootstrap = errors.New("no transaction allowed during the bootstraping period") ErrMarketProposalDisabled = errors.New("market proposal disabled") ErrAssetProposalDisabled = errors.New("asset proposal disabled") ErrNonValidatorTransactionDisabledDuringBootstrap = errors.New("non validator transaction disabled during bootstrap") ErrCheckpointRestoreDisabledDuringBootstrap = errors.New("checkpoint restore disabled during bootstrap") ErrAwaitingCheckpointRestore = errors.New("transactions not allowed while waiting for checkpoint restore") ErrOracleNoSubscribers = errors.New("there are no subscribes to the oracle data") ErrOracleDataNormalization = func(err error) error { return fmt.Errorf("error normalizing incoming oracle data: %w", err) } )
var ( ErrNotAnERC20Event = errors.New("not an erc20 event") ErrNotABuiltinAssetEvent = errors.New("not an builtin asset event") ErrUnsupportedEventAction = errors.New("unsupported event action") ErrChainEventAssetListERC20WithoutEnoughSignature = errors.New("chain event for erc20 asset list received with missing node signatures") )
var ( ErrInvalidSignature = errors.New("invalid signature") ErrChainEventFromNonValidator = errors.New("chain event emitted from a non-validator node") ErrUnsupportedChainEvent = errors.New("unsupported chain event") ErrNodeSignatureFromNonValidator = errors.New("node signature not sent by validator") ErrNodeSignatureWithNonValidatorMasterKey = errors.New("node signature not signed with validator master key") ErrMarketBatchInstructionTooBig = func(got, expected uint64) error { return fmt.Errorf("market batch instructions too big, got(%d), expected(%d)", got, expected) } )
var ErrMissingWithdrawERC20Ext = errors.New("missing withdraw submission erc20 ext")
Functions ¶
This section is empty.
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
func NewApp ¶
func NewApp( log *logging.Logger, vegaPaths paths.Paths, config Config, cancelFn func(), assets Assets, banking Banking, broker Broker, witness Witness, evtfwd EvtForwarder, exec ExecutionEngine, ghandler *genesis.Handler, gov GovernanceEngine, notary Notary, stats Stats, time TimeService, epoch EpochService, top ValidatorTopology, netp NetworkParameters, oracles *Oracle, delegation DelegationEngine, limits Limits, stake StakeVerifier, checkpoint Checkpoint, spam SpamEngine, pow PoWEngine, stakingAccounts StakingAccounts, snapshot Snapshot, stateVarEngine StateVarEngine, blockchainClient BlockchainClient, erc20MultiSigTopology ERC20MultiSigTopology, version string, protocolUpgradeService ProtocolUpgradeService, codec abci.Codec, ) *App
func (*App) ApplySnapshotChunk ¶
func (app *App) ApplySnapshotChunk(ctx context.Context, req tmtypes.RequestApplySnapshotChunk) tmtypes.ResponseApplySnapshotChunk
func (*App) CheckBatchMarketInstructions ¶ added in v0.55.0
func (*App) CheckBatchMarketInstructionsW ¶ added in v0.55.0
func (*App) CheckPropose ¶ added in v0.56.0
func (*App) CheckProposeW ¶ added in v0.56.0
func (*App) CheckProtocolUpgradeProposal ¶ added in v0.55.0
func (*App) CheckSubmitOracleData ¶
func (*App) DeliverAmendLiquidityProvision ¶
func (*App) DeliverAmendOrder ¶
func (*App) DeliverAnnounceNode ¶
func (*App) DeliverBatchMarketInstructions ¶ added in v0.55.0
func (*App) DeliverCancelLiquidityProvision ¶
func (*App) DeliverCancelOrder ¶
func (*App) DeliverCancelTransferFunds ¶
func (*App) DeliverChainEvent ¶
func (*App) DeliverDelegate ¶
func (*App) DeliverEthereumKeyRotateSubmission ¶
func (*App) DeliverIssueSignatures ¶ added in v0.55.0
func (*App) DeliverKeyRotateSubmission ¶
func (*App) DeliverLiquidityProvision ¶
func (*App) DeliverNodeSignature ¶
func (*App) DeliverNodeVote ¶
func (*App) DeliverPropose ¶
func (*App) DeliverProtocolUpgradeCommand ¶
func (*App) DeliverStateVarProposal ¶
func (*App) DeliverSubmitOracleData ¶
func (*App) DeliverSubmitOrder ¶
func (*App) DeliverTransferFunds ¶
func (*App) DeliverUndelegate ¶
func (*App) DeliverValidatorHeartbeat ¶
func (*App) DeliverWithdraw ¶
func (*App) Info ¶
func (app *App) Info(_ tmtypes.RequestInfo) tmtypes.ResponseInfo
func (*App) ListSnapshots ¶
func (app *App) ListSnapshots(_ tmtypes.RequestListSnapshots) tmtypes.ResponseListSnapshots
func (*App) LoadSnapshotChunk ¶
func (app *App) LoadSnapshotChunk(req tmtypes.RequestLoadSnapshotChunk) tmtypes.ResponseLoadSnapshotChunk
func (*App) OfferSnapshot ¶
func (app *App) OfferSnapshot(req tmtypes.RequestOfferSnapshot) tmtypes.ResponseOfferSnapshot
func (*App) OnBeginBlock ¶
func (app *App) OnBeginBlock( req tmtypes.RequestBeginBlock, ) (ctx context.Context, resp tmtypes.ResponseBeginBlock)
OnBeginBlock updates the internal lastBlockTime value with each new block.
func (*App) OnCheckTx ¶
func (app *App) OnCheckTx(ctx context.Context, _ tmtypes.RequestCheckTx, tx abci.Tx) (context.Context, tmtypes.ResponseCheckTx)
OnCheckTx performs soft validations.
func (*App) OnCheckTxSpam ¶
func (app *App) OnCheckTxSpam(tx abci.Tx) tmtypes.ResponseCheckTx
OnCheckTxSpam checks for spam and replay.
func (*App) OnCommit ¶
func (app *App) OnCommit() (resp tmtypes.ResponseCommit)
func (*App) OnDeliverTXSpam ¶
OnDeliverTXSpam checks spam and replay.
func (*App) OnDeliverTx ¶
func (app *App) OnDeliverTx(ctx context.Context, req tmtypes.RequestDeliverTx, tx abci.Tx) (context.Context, tmtypes.ResponseDeliverTx)
OnDeliverTx increments the internal tx counter and decorates the context with tracing information.
func (*App) OnEndBlock ¶
func (app *App) OnEndBlock(req tmtypes.RequestEndBlock) (ctx context.Context, resp tmtypes.ResponseEndBlock)
func (*App) OnInitChain ¶
func (app *App) OnInitChain(req tmtypes.RequestInitChain) tmtypes.ResponseInitChain
func (*App) OnSpamProtectionMaxBatchSizeUpdate ¶ added in v0.55.0
func (*App) ReloadConf ¶
ReloadConf updates the internal configuration.
func (*App) RequireValidatorMasterPubKey ¶
func (*App) RequireValidatorMasterPubKeyW ¶
func (*App) RequireValidatorPubKey ¶
func (*App) RequireValidatorPubKeyW ¶
type BMIProcessor ¶ added in v0.55.0
type BMIProcessor struct {
// contains filtered or unexported fields
}
func NewBMIProcessor ¶ added in v0.55.0
func NewBMIProcessor( log *logging.Logger, exec ExecutionEngine, ) *BMIProcessor
func (*BMIProcessor) ProcessBatch ¶ added in v0.55.0
func (p *BMIProcessor) ProcessBatch( ctx context.Context, batch *commandspb.BatchMarketInstructions, party, determinitisticID string, ) error
ProcessBatch will process a batch of market transaction. Transaction are always executed in the following order: cancellation, amendment then submissions. All errors are returned as a single error.
type Banking ¶
type Banking interface { EnableBuiltinAsset(context.Context, string) error DepositBuiltinAsset(context.Context, *types.BuiltinAssetDeposit, string, uint64) error WithdrawBuiltinAsset(context.Context, string, string, string, *num.Uint) error EnableERC20(context.Context, *types.ERC20AssetList, string, uint64, uint64, string) error UpdateERC20(context.Context, *types.ERC20AssetLimitsUpdated, string, uint64, uint64, string) error DepositERC20(context.Context, *types.ERC20Deposit, string, uint64, uint64, string) error WithdrawERC20(context.Context, string, string, string, *num.Uint, *types.Erc20WithdrawExt) error ERC20WithdrawalEvent(context.Context, *types.ERC20Withdrawal, uint64, uint64, string) error TransferFunds(context.Context, *types.TransferFunds) error CancelTransferFunds(context.Context, *types.CancelTransferFunds) error BridgeStopped(context.Context, bool, string, uint64, uint64, string) error BridgeResumed(context.Context, bool, string, uint64, uint64, string) error }
Banking ..
type BlockchainClient ¶
type BlockchainClient interface {
Validators(height *int64) ([]*tmtypesint.Validator, error)
}
type Checkpoint ¶
type Config ¶
type Config struct { Level encoding.LogLevel `long:"log-level"` LogOrderSubmitDebug encoding.Bool `long:"log-order-submit-debug"` LogOrderAmendDebug encoding.Bool `long:"log-order-amend-debug"` LogOrderCancelDebug encoding.Bool `long:"log-order-cancel-debug"` Ratelimit ratelimit.Config `group:"Ratelimit" namespace:"ratelimit"` }
Config represent the configuration of the processor package.
func NewDefaultConfig ¶
func NewDefaultConfig() Config
NewDefaultConfig creates an instance of the package specific configuration, given a pointer to a logger instance to be used for logging within the package.
type DelegationEngine ¶
type DelegationEngine interface { Delegate(ctx context.Context, party string, nodeID string, amount *num.Uint) error UndelegateAtEndOfEpoch(ctx context.Context, party string, nodeID string, amount *num.Uint) error UndelegateNow(ctx context.Context, party string, nodeID string, amount *num.Uint) error ProcessEpochDelegations(ctx context.Context, epoch types.Epoch) []*types.ValidatorData Hash() []byte }
type ERC20MultiSigTopology ¶
type ERC20MultiSigTopology interface { ProcessSignerEvent(event *types.SignerEvent) error ProcessThresholdEvent(event *types.SignerThresholdSetEvent) error }
type EpochService ¶
type EvtForwarder ¶
type EvtForwarder interface {
Ack(*commandspb.ChainEvent) bool
}
EvtForwarder ...
type ExecutionEngine ¶
type ExecutionEngine interface { // orders stuff SubmitOrder(ctx context.Context, orderSubmission *types.OrderSubmission, party string, idgen execution.IDGenerator, orderID string) (*types.OrderConfirmation, error) CancelOrder(ctx context.Context, order *types.OrderCancellation, party string, idgen execution.IDGenerator) ([]*types.OrderCancellationConfirmation, error) AmendOrder(ctx context.Context, order *types.OrderAmendment, party string, idgen execution.IDGenerator) (*types.OrderConfirmation, error) // market stuff SubmitMarket(ctx context.Context, marketConfig *types.Market, proposer string) error UpdateMarket(ctx context.Context, marketConfig *types.Market) error RejectMarket(ctx context.Context, marketid string) error StartOpeningAuction(ctx context.Context, marketid string) error // LP stuff SubmitLiquidityProvision(ctx context.Context, sub *types.LiquidityProvisionSubmission, party, deterministicID string) error CancelLiquidityProvision(ctx context.Context, order *types.LiquidityProvisionCancellation, party string) error AmendLiquidityProvision(ctx context.Context, order *types.LiquidityProvisionAmendment, party string, deterministicID string) error Hash() []byte }
type GovernanceEngine ¶
type GovernanceEngine interface { SubmitProposal(context.Context, types.ProposalSubmission, string, string) (*governance.ToSubmit, error) FinaliseEnactment(ctx context.Context, prop *types.Proposal) AddVote(context.Context, types.VoteSubmission, string) error OnTick(context.Context, time.Time) ([]*governance.ToEnact, []*governance.VoteClosed) RejectProposal(context.Context, *types.Proposal, types.ProposalError, error) error Hash() []byte }
type HasVegaAssetID ¶
type HasVegaAssetID interface {
GetVegaAssetID() string
}
type NetworkParameters ¶
type NetworkParameters interface { Update(ctx context.Context, key, value string) error DispatchChanges(ctx context.Context) IsUpdateAllowed(key string) error }
NetworkParameters ...
type Notary ¶
type Notary interface { StartAggregate(resID string, kind commandspb.NodeSignatureKind, signature []byte) RegisterSignature(ctx context.Context, pubKey string, ns commandspb.NodeSignature) error IsSigned(context.Context, string, commandspb.NodeSignatureKind) ([]commandspb.NodeSignature, bool) }
Notary.
type NullBlockchainTxCodec ¶
type NullBlockchainTxCodec struct{}
type Oracle ¶
type Oracle struct { Engine OraclesEngine Adaptors OracleAdaptors }
type OracleAdaptors ¶
type OracleAdaptors interface {
Normalise(crypto.PublicKey, commandspb.OracleDataSubmission) (*oracles.OracleData, error)
}
type OraclesEngine ¶
type OraclesEngine interface { BroadcastData(context.Context, oracles.OracleData) error ListensToPubKeys(oracles.OracleData) bool HasMatch(data oracles.OracleData) (bool, error) }
type ProtocolUpgradeService ¶
type ProtocolUpgradeService interface { BeginBlock(ctx context.Context, blockHeight uint64) UpgradeProposal(ctx context.Context, pk string, upgradeBlockHeight uint64, vegaReleaseTag string) error TimeForUpgrade() bool GetUpgradeStatus() types.UpgradeStatus SetReadyForUpgrade() Cleanup(ctx context.Context) IsValidProposal(ctx context.Context, pk string, upgradeBlockHeight uint64, vegaReleaseTag string) error }
type Snapshot ¶
type Snapshot interface { Info() ([]byte, int64, string) Snapshot(ctx context.Context) ([]byte, error) SnapshotNow(ctx context.Context) (b []byte, errlol error) AddProviders(provs ...types.StateProvider) CheckLoaded() (bool, error) ClearAndInitialise() error // Calls related to statesync List() ([]*types.Snapshot, error) ReceiveSnapshot(snap *types.Snapshot) error RejectSnapshot() error ApplySnapshotChunk(chunk *types.RawChunk) (bool, error) GetMissingChunks() []uint32 ApplySnapshot(ctx context.Context) error LoadSnapshotChunk(height uint64, format, chunk uint32) (*types.RawChunk, error) }
type SpamEngine ¶
type StakeVerifier ¶
type StakeVerifier interface { ProcessStakeRemoved(ctx context.Context, event *types.StakeRemoved) error ProcessStakeDeposited(ctx context.Context, event *types.StakeDeposited) error }
type StakingAccounts ¶
type StateVarEngine ¶
type Stats ¶
type Stats interface { IncTotalCreateOrder() AddCurrentTradesInBatch(i uint64) AddTotalTrades(i uint64) uint64 IncTotalOrders() IncCurrentOrdersInBatch() IncTotalCancelOrder() IncTotalAmendOrder() // batch stats IncTotalBatches() NewBatch() TotalOrders() uint64 TotalBatches() uint64 SetAverageOrdersPerBatch(i uint64) SetBlockDuration(uint64) CurrentOrdersInBatch() uint64 CurrentTradesInBatch() uint64 SetOrdersPerSecond(i uint64) SetTradesPerSecond(i uint64) // blockchain stats IncTotalTxCurrentBatch() IncHeight() Height() uint64 SetAverageTxPerBatch(i uint64) SetAverageTxSizeBytes(i uint64) SetTotalTxLastBatch(i uint64) SetTotalTxCurrentBatch(i uint64) TotalTxCurrentBatch() uint64 TotalTxLastBatch() uint64 SetHash(string) SetHeight(uint64) }
type TimeService ¶
type Tx ¶
type Tx struct {
// contains filtered or unexported fields
}
func DecodeTxNoValidation ¶
func (Tx) BlockHeight ¶
func (Tx) GetPoWNonce ¶
func (Tx) GetVersion ¶
type ValidatorTopology ¶
type ValidatorTopology interface { Len() int IsValidatorVegaPubKey(pk string) bool IsValidatorNodeID(nodeID string) bool AllVegaPubKeys() []string IsValidator() bool AddKeyRotate(ctx context.Context, nodeID string, currentBlockHeight uint64, kr *commandspb.KeyRotateSubmission) error ProcessEthereumKeyRotation(ctx context.Context, nodeID string, kr *commandspb.EthereumKeyRotateSubmission, verify func(message, signature []byte, hexAddress string) error) error BeginBlock(ctx context.Context, req abcitypes.RequestBeginBlock) GetValidatorPowerUpdates() []abcitypes.ValidatorUpdate ProcessAnnounceNode(ctx context.Context, nr *commandspb.AnnounceNode) error ProcessValidatorHeartbeat(context.Context, *commandspb.ValidatorHeartbeat, func(message, signature, pubkey []byte) error, func(message, signature []byte, hexAddress string) error) error AddForwarder(ID string) IssueSignatures(ctx context.Context, submitter, nodeID string, kind types.NodeSignatureKind) error }