Documentation ¶
Overview ¶
Package common provides constants, common types for other packages
Index ¶
- Constants
- type ActorType
- type CheckBlkResult
- type CheckTxnReq
- type CheckTxnRsp
- type GetPendingTxnReq
- type GetPendingTxnRsp
- type GetTxnCountReq
- type GetTxnCountRsp
- type GetTxnPoolReq
- type GetTxnPoolRsp
- type GetTxnReq
- type GetTxnRsp
- type GetTxnStats
- type GetTxnStatsRsp
- type GetTxnStatusReq
- type GetTxnStatusRsp
- type LB
- type LBSlice
- type OrderByNetWorkFee
- type SenderType
- type TXAttr
- type TXEntry
- type TXPool
- func (tp *TXPool) AddTxList(txEntry *TXEntry) bool
- func (tp *TXPool) CleanTransactionList(txs []*types.Transaction) error
- func (tp *TXPool) DelTxList(tx *types.Transaction) bool
- func (tp *TXPool) GetTransaction(hash common.Uint256) *types.Transaction
- func (tp *TXPool) GetTransactionCount() int
- func (tp *TXPool) GetTxPool(byCount bool, height uint32) ([]*TXEntry, []*types.Transaction)
- func (tp *TXPool) GetTxStatus(hash common.Uint256) *TxStatus
- func (tp *TXPool) GetUnverifiedTxs(txs []*types.Transaction, height uint32) *CheckBlkResult
- func (tp *TXPool) Init()
- func (tp *TXPool) Remain() []*types.Transaction
- func (tp *TXPool) RemoveTxsBelowGasPrice(gasPrice uint64)
- type TxReq
- type TxResult
- type TxRsp
- type TxStatus
- type TxnStatsType
- type VerifyBlockReq
- type VerifyBlockRsp
- type VerifyTxResult
Constants ¶
const ( MAX_CAPACITY = 100140 // The tx pool's capacity that holds the verified txs MAX_PENDING_TXN = 4096 * 10 // The max length of pending txs MAX_WORKER_NUM = 2 // The max concurrent workers MAX_RCV_TXN_LEN = MAX_WORKER_NUM * MAX_PENDING_TXN // The max length of the queue that server can hold MAX_RETRIES = 0 // The retry times to verify tx EXPIRE_INTERVAL = 9 // The timeout that verify tx STATELESS_MASK = 0x1 // The mask of stateless validator STATEFUL_MASK = 0x2 // The mask of stateful validator VERIFY_MASK = STATELESS_MASK | STATEFUL_MASK // The mask that indicates tx valid MAX_LIMITATION = 10000 // The length of pending tx from net and http UPDATE_FREQUENCY = 100 // The frequency to update gas price from global params MAX_TX_SIZE = 1024 * 1024 // The max size of a transaction to prevent DOS attacks )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActorType ¶
type ActorType uint8
ActorType enumerates the kind of actor
const ( TxActor ActorType // Actor that handles new transaction TxPoolActor // Actor that handles consensus msg VerifyRspActor // Actor that handles the response from valdiators NetActor // Actor to send msg to the net actor MaxActor )
type CheckBlkResult ¶
type CheckBlkResult struct { VerifiedTxs []*VerifyTxResult UnverifiedTxs []*types.Transaction OldTxs []*types.Transaction }
CheckBlkResult contains a verifed tx list, an unverified tx list and an old tx list to be re-verifed
type CheckTxnReq ¶
CheckTxnReq specifies the api that how to check whether a transaction in the pool. Input: a transaction hash
type CheckTxnRsp ¶
type CheckTxnRsp struct {
Ok bool
}
CheckTxnRsp returns a value for the CheckTxnReq, if the transaction in the pool, value is true, or false.
type GetPendingTxnReq ¶
type GetPendingTxnReq struct {
ByCount bool
}
GetPendingTxnReq specifies the api that how to get a pending tx list in the pool.
type GetPendingTxnRsp ¶
type GetPendingTxnRsp struct {
Txs []*types.Transaction
}
GetPendingTxnRsp returns a transaction list for GetPendingTxnReq.
type GetTxnCountReq ¶
type GetTxnCountReq struct { }
GetTxnCountReq specifies the api that how to get the tx count
type GetTxnCountRsp ¶
type GetTxnCountRsp struct {
Count []uint32
}
GetTxnCountRsp returns current tx count, including pending, and verified
type GetTxnPoolReq ¶
consensus messages GetTxnPoolReq specifies the api that how to get the valid transaction list.
type GetTxnPoolRsp ¶
type GetTxnPoolRsp struct {
TxnPool []*TXEntry
}
GetTxnPoolRsp returns a transaction list for GetTxnPoolReq.
type GetTxnReq ¶
GetTxnReq specifies the api that how to get the transaction. Input: a transaction hash
type GetTxnRsp ¶
type GetTxnRsp struct {
Txn *types.Transaction
}
GetTxnRsp returns a transaction for the specified tx hash.
type GetTxnStats ¶
type GetTxnStats struct { }
GetTxnStats specifies the api that how to get the tx statistics.
type GetTxnStatsRsp ¶
type GetTxnStatsRsp struct {
Count []uint64
}
GetTxnStatsRso returns the tx statistics.
type GetTxnStatusReq ¶
GetTxnStatusReq specifies the api that how to get a transaction status. Input: a transaction hash.
type GetTxnStatusRsp ¶
GetTxnStatusRsp returns a transaction status for GetTxnStatusReq. Output: a transaction hash and it's verified result.
type OrderByNetWorkFee ¶
type OrderByNetWorkFee []*TXEntry
func (OrderByNetWorkFee) Len ¶
func (n OrderByNetWorkFee) Len() int
func (OrderByNetWorkFee) Less ¶
func (n OrderByNetWorkFee) Less(i, j int) bool
func (OrderByNetWorkFee) Swap ¶
func (n OrderByNetWorkFee) Swap(i, j int)
type SenderType ¶
type SenderType uint8
SenderType enumerates the kind of tx submitter
const ( NilSender SenderType = iota NetSender // Net sends tx req HttpSender // Http sends tx req )
func (SenderType) Sender ¶
func (sender SenderType) Sender() string
type TXAttr ¶
type TXAttr struct { Height uint32 // The height in which tx was verified Type vt.VerifyType // The validator flag: stateless/stateful ErrCode errors.ErrCode // Verified result }
type TXEntry ¶
type TXEntry struct { Tx *types.Transaction // transaction which has been verified Attrs []*TXAttr // the result from each validator }
type TXPool ¶
TXPool contains all currently valid transactions. Transactions enter the pool when they are valid from the network, consensus or submitted. They exit the pool when they are included in the ledger.
func (*TXPool) AddTxList ¶
AddTxList adds a valid transaction to the transaction pool. If the transaction is already in the pool, just return false. Parameter txEntry includes transaction, fee, and verified information(height, validator, error code).
func (*TXPool) CleanTransactionList ¶
func (tp *TXPool) CleanTransactionList(txs []*types.Transaction) error
CleanTransactionList cleans the transaction list included in the ledger.
func (*TXPool) DelTxList ¶
func (tp *TXPool) DelTxList(tx *types.Transaction) bool
DelTxList removes a single transaction from the pool.
func (*TXPool) GetTransaction ¶
func (tp *TXPool) GetTransaction(hash common.Uint256) *types.Transaction
GetTransaction returns a transaction if it is contained in the pool and nil otherwise.
func (*TXPool) GetTransactionCount ¶
GetTransactionCount returns the tx number of the pool.
func (*TXPool) GetTxPool ¶
GetTxPool gets the transaction lists from the pool for the consensus, if the byCount is marked, return the configured number at most; if the the byCount is not marked, return all of the current transaction pool.
func (*TXPool) GetTxStatus ¶
GetTxStatus returns a transaction status if it is contained in the pool and nil otherwise.
func (*TXPool) GetUnverifiedTxs ¶
func (tp *TXPool) GetUnverifiedTxs(txs []*types.Transaction, height uint32) *CheckBlkResult
GetUnverifiedTxs checks the tx list in the block from consensus, and returns verified tx list, unverified tx list, and the tx list to be re-verified
func (*TXPool) Remain ¶
func (tp *TXPool) Remain() []*types.Transaction
Remain returns the remaining tx list to cleanup
func (*TXPool) RemoveTxsBelowGasPrice ¶
RemoveTxsBelowGasPrice drops all transactions below the gas price
type TxReq ¶
type TxReq struct { Tx *types.Transaction Sender SenderType TxResultCh chan *TxResult }
TxReq specifies the api that how to submit a new transaction. Input: transacton and submitter type
type TxRsp ¶
TxRsp returns the result of submitting tx, including a transaction hash and error code.
type TxStatus ¶
type TxStatus struct { Hash common.Uint256 // transaction hash Attrs []*TXAttr // transaction's status }
TxStatus contains the attributes of a transaction
type TxnStatsType ¶
type TxnStatsType uint8
TxnStatsType enumerates the kind of tx statistics
const ( RcvStats TxnStatsType // The count that the tx pool receive from the actor bus SuccessStats // The count that the transactions are verified successfully FailureStats // The count that the transactions are invalid DuplicateStats // The count that the transactions are duplicated input SigErrStats // The count that the transactions' signature error StateErrStats // The count that the transactions are invalid in database MaxStats )
type VerifyBlockReq ¶
type VerifyBlockReq struct { Height uint32 Txs []*types.Transaction }
VerifyBlockReq specifies that api that how to verify a block from consensus.
type VerifyBlockRsp ¶
type VerifyBlockRsp struct {
TxnPool []*VerifyTxResult
}
VerifyBlockRsp returns a verified result for VerifyBlockReq.
type VerifyTxResult ¶
type VerifyTxResult struct { Height uint32 Tx *types.Transaction ErrCode errors.ErrCode }
VerifyTxResult returns a single transaction's verified result.