You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The mempool contains a PriorityQueue which contains transaction IDs rank ordered by fee density. The transaction ID is the hash of the transaction. When a new block is received, the mempool runs the Update program on all transactions, as a result of which they get new kernels (because the mutator set hash has been updated) and new proofs (because the kernel is new). Presently there isn't any code that updates the priority queue by updating the transaction IDs. So the miner is left chasing after void references to the fee-densest transactions.
After discussing with @Sword-Smith we came up with three potential solutions:
Write logic to update the priority queue to point to the retained updated transactions. This could be as simple as clearing the priority queue and inserting (references to) the updated transactions.
Derive the transaction ID from the transaction kernel without the mutator set hash. In this way, the ID is invariant under updates.
Delay and defer updating transactions to the miner. As a rule, mempools never Update transactions. The miner makes a selection of (potentially out-of-date) transactions, and runs the right sequence of Update and Merge, before merging in the coinbase transaction.
As far as I can tell, these solutions are mutually compatible and independently desirable.
The text was updated successfully, but these errors were encountered:
The mempool contains a
PriorityQueue
which contains transaction IDs rank ordered by fee density. The transaction ID is the hash of the transaction. When a new block is received, the mempool runs theUpdate
program on all transactions, as a result of which they get new kernels (because the mutator set hash has been updated) and new proofs (because the kernel is new). Presently there isn't any code that updates the priority queue by updating the transaction IDs. So the miner is left chasing after void references to the fee-densest transactions.After discussing with @Sword-Smith we came up with three potential solutions:
Update
andMerge
, before merging in the coinbase transaction.As far as I can tell, these solutions are mutually compatible and independently desirable.
The text was updated successfully, but these errors were encountered: