-
Notifications
You must be signed in to change notification settings - Fork 381
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
TxPool: refactoring for blob txs (#5953)
* add extensions * adjust filters * add tests * draft * fix metrics * fix tx type, add test for replacing * adjust blob replacement comparer * add blob tx db and metrics * fix test * resurrect old TxStorage class and adjust a bit for blobs * pass blob storage to tx pool, adjust tests * handle db writes/reads and add test * recreate light collection after restart * adjust broadcaster test * cosmetic * add broadcaster test * add todos * add MaxFeePerDataGas check when updating gas bottleneck * regression test for MaxFeePerDataGas check * cosmetic * unify & simplify tests * cosmetics in BlobTxStorage * add AcceptTxResult dedicated for rejected replacements * adjust tests, add test for blob tx replacements * simplify TxPool * refactor to reuse id of deprecated result * simplify filters * add configurable sizes of blob pool and blob cache * optimize TxType filter * add light tx as separate class to reuse * dont return blob txs from broadcaster and other refactorings * add test for broadcaster * add test for announcing txs with MaxFeePerDataGas >= current * add more tx pool metrics * update tx pool report * add metric to filter * improve tests * refactors * clean * add test * fix TxPool * fix test * fix EthereumTests * fix report * fix whitespaces * fix blob txs picking when building block * fix test * fix benchmarks solution * add filtering for MaxPriorityFeePerGas < 1GWei for blob transactions * adjust tests to min requirement of 1 gwei * add test * add more txpool config options * adjust storage * add non-persistent blob tx collection * one more * adjust tests, add new one * post merge fixes * cosmetics * fix bug in broadcasting - use size of full blob tx in light tx * cosmetics * lower default PersistentBlobStorageSize * Divide TxPoolTests * cosmetic - usings * more tests moved to TxPoolTests.Blobs * refactor ParityRpcModuleTests to reuse setup code * cosmetic * refactor picking txs for rebroadcasting/reannouncing * Add MaxBlobsPerBlock to Eip4844Constants and use in several places instead of calculating * whitespace * cosmetic in BlobTxStorage + add tests * make tx comparisons more readable * cosmetics in TxTypeTxFilter * filter blob txs in FeeTooLowFilter just as other types * adjust test * fix whitespaces and file encodings * simplification in TxPool * another whitespace fix * override base methods in blob collections instead of creating new ones + simplifications in TxPool * cosmetics * add BlobTxStorage parameterless constructor that uses MemDb and simplify tests * remove unused things * post-merge fix * move capacity insurances to inner classes * add test for pool capacity * clean * try with synchronization * refactor block building * fix whitespace * simplify decoding in BlobTxStorage * cosmetics * simplify tests * fix tx priority? * improve readability in NonceGapFilter * improve readability of TxPoolTxSource * save sender to db * fix recreating light collection * adjust EthStats to show sum of blob and non-blob txs * fix * make blob support configurable * optimize snapshots * fix blob support disabled * don't request blob txs if blob support disabled * fix tests * fix files encoding * fix test * cosmetics * add MaxPendingTxsPerSenderFilter * add test * disable blob pool by default * cosmetic refactoring * revert previous change * fix tests after making blob pool disabled by default * useBlobDb -> useBlobsDb * TxConfig descrptions fixes * add timestamp to db, drop linq * add missing metric * adjust txpool report * cosmetic * fix broadcaster to check in pending before requesting * fix * add metric of received hashes * improve txpool report * fix naming * make naming more relevant * stopwatch * add missing metric * move to ColumnsDb * optimize full blobs db by prefixing key with timestamp * fix files encoding * fix and improve blob storage * fix tests * adjust tests to require sender of full blob txs loaded from db * refactor future nonce filter * simplify and improve block building * refactor TxPoolTxSource * fix block building - move loading full tx from db after all filters * refactor low fee filtering * add new metric * adjust TxPool filters pipeline and TxPoolReport * change naming as requested in review * add size estimates to descriptions in ITxPoolConfig * rename AcceptTxResult PendingTxsOfOtherType -> PendingTxsOfConflictingType * add more comments to TxPool * add more comments to PersistentBlobTxDistinctSortedPool * fix file encoding * small refactors * cosmetic 1.GWei() * reduce spec lookup --------- Co-authored-by: MarekM25 <marekm2504@gmail.com> Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com>
- Loading branch information
Showing
70 changed files
with
2,059 additions
and
355 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.