Documentation
¶
Index ¶
- Variables
- type HashMap
- func (m HashMap) Clone() []transactions.ContractCall
- func (m *HashMap) Close()
- func (m *HashMap) Contain(txID []byte) bool
- func (m *HashMap) ContainAnyNullifiers(nullifiers [][]byte) (bool, []byte)
- func (m *HashMap) Create(path string) error
- func (m *HashMap) Delete(txID []byte) error
- func (m HashMap) FilterByType(filterType transactions.TxType) []transactions.ContractCall
- func (m *HashMap) Get(txID []byte) transactions.ContractCall
- func (m *HashMap) GetTxsByNullifier(nullifier []byte) ([][]byte, error)
- func (m *HashMap) Len() int
- func (m *HashMap) Put(t TxDesc) error
- func (m *HashMap) Range(fn func(k txHash, t TxDesc) error) error
- func (m *HashMap) RangeSort(fn func(k txHash, t TxDesc) (bool, error)) error
- func (m *HashMap) Size() uint32
- type Mempool
- type Pool
- type TxDesc
Constants ¶
This section is empty.
Variables ¶
var ( // ErrAlreadyExists transaction with the same txid already exists in mempool. ErrAlreadyExists = errors.New("already exists") // ErrAlreadyExistsInBlockchain transaction with the same txid already exists in blockchain. ErrAlreadyExistsInBlockchain = errors.New("already exists in blockchain") // ErrNullifierExists nullifier(s) already exists in the mempool state. ErrNullifierExists = errors.New("nullifier(s) already exists in the mempool") )
Functions ¶
This section is empty.
Types ¶
type HashMap ¶
type HashMap struct {
// spent key images from the transactions in the pool
// spentkeyImages map[keyImage]bool.
Capacity uint32
// contains filtered or unexported fields
}
HashMap represents a pool implementation based on golang map. The generic solution to bench against.
func (*HashMap) Close ¶ added in v0.4.4
func (m *HashMap) Close()
Close empty implementation of Pool.Close.
func (*HashMap) ContainAnyNullifiers ¶ added in v0.6.0
ContainAnyNullifiers implements Pool.ContainAnyNullifiers.
func (HashMap) FilterByType ¶ added in v0.3.0
func (m HashMap) FilterByType(filterType transactions.TxType) []transactions.ContractCall
FilterByType returns all transactions for a specific type that are currently in the HashMap.
func (*HashMap) Get ¶ added in v0.3.0
func (m *HashMap) Get(txID []byte) transactions.ContractCall
Get returns a tx for a given txID if it exists.
func (*HashMap) GetTxsByNullifier ¶ added in v0.6.0
GetTxsByNullifier implements Pool.GetTxsByNullifier. The implementation is naive and may need refactoring if it deals with large amount of transactions.
func (*HashMap) Put ¶
Put sets the value for the given key. It overwrites any previous value for that key.
type Mempool ¶
type Mempool struct {
// contains filtered or unexported fields
}
Mempool is a storage for the chain transactions that are valid according to the current chain state and can be included in the next block.
func NewMempool ¶
func NewMempool(db database.DB, eventBus *eventbus.EventBus, rpcBus *rpcbus.RPCBus, verifier transactions.UnconfirmedTxProber) *Mempool
NewMempool instantiates and initializes node mempool.
func (*Mempool) Loop ¶ added in v0.4.4
Loop listens for GetMempoolTxs request and topics.AcceptedBlock events.
func (*Mempool) OnClose ¶ added in v0.4.4
func (m *Mempool) OnClose()
OnClose performs mempool cleanup procedure. It's called on canceling mempool context.
func (*Mempool) RequestUpdates ¶ added in v0.6.0
func (m *Mempool) RequestUpdates()
RequestUpdates sends topics.MemPool to N Kadcast Network nodes.
type Pool ¶
type Pool interface {
// Create instantiates the underlying data storage.
Create(path string) error
// Put sets the value for the given key. It overwrites any previous value
// for that key.
Put(t TxDesc) error
// Get retrieves a transaction for a given txID, if it exists.
Get(txID []byte) transactions.ContractCall
// GetTxsByNullifier returns a set of hashes of all transactions that
// contain a given nullifier.
GetTxsByNullifier(nullifier []byte) ([][]byte, error)
// ContainAnyNullifiers returns true if any pool transaction contains any of
// the given nullifiers.
ContainAnyNullifiers(nullifiers [][]byte) (bool, []byte)
// Contain returns true if the given key is in the pool.
Contain(key []byte) bool
// Delete a key in the pool.
Delete(key []byte) error
// Clone the entire pool.
Clone() []transactions.ContractCall
// FilterByType returns all verified transactions for a specific type.
FilterByType(transactions.TxType) []transactions.ContractCall
// Size is total number of bytes of all txs marshaling size.
Size() uint32
// Len returns the number of tx entries.
Len() int
// Range iterates through all tx entries.
Range(fn func(k txHash, t TxDesc) error) error
// RangeSort iterates through all tx entries sorted by Fee
// in a descending order.
RangeSort(fn func(k txHash, t TxDesc) (bool, error)) error
// Close closes backend.
Close()
}
Pool represents a transaction pool of the verified txs only.