mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2024-09-19 06:39:51 +03:00
eb898dfe95
* Exploring identical spend aggregation. * Attempt to address review. * Revert this. * Explore spend-based processing instead of the bundle-based one. * Attempt to address reviews. * Update against chia_rs and add some improvements. * Leverage the fact that we're in a function now to perform early exits. * Explore propagating exceptions. * Relax the exception handling. * Add unit tests. * Add some comments and perform some renames for more readability. * Refactor tests and split them by scenario. * Take Arvid's suggestion to simplify the check. * Improve test readability. * Make the set explicit instead of computing it with union(). * Run in MEMPOOL_MODE for cost and additions. * Use int_from_bytes() instead of int.from_bytes(). * Add more unit tests for run_for_cost_and_additions (to cover coin amount 0 as well as a negative amount). * Don't use as_python() for created coins. * Account for the cost of create coin conditions and extract additions from the NPCResult. * Rely on NPCResult for the maximum allowed cost. * Stop looking for the relevant spend at the first occurrence (then process its created coins). * Add a unit test for spending a coin in different ways then finding it spent in new peak. This makes sure all mempool items that would spend that coin get removed. * Parameterize the test for spending a coin in different ways then finding it spent in new peak, to account for both the optimized and the reorg code paths. * Keep track of coin spends cost and additions in mempool items in case they won't make it into the block, so we don't rerun that again next time. * Extend replace by fee tests with eligibility scenarios. * Refactor find_duplicate_spends into get_deduplication_info and process_mempool_items into create_bundle_from_mempool_items. Slightly refactor check_removals and create_bundle_from_mempool. * Cast to uint64 in the return statement. * Adapt to the recent addition of seq. * Add unit tests for mempool items' bundle_coin_spends. * Leverage the recently added make_test_conds when creating this npc_result. * Pass in bundle_coin_spends and max_cost instead of InternalMempoolItem so that it remains internal. * Add a test for the scenario where we pick a sub-optimal aggregation by deduplicating on solution A, seen in a relatively higher FPC item, then receiving better cost saving items on solution B after that one. * Add some end-to-end tests for identical spend aggregation. * Add a comment documenting why eligible_coin_spends map is ephemeral. |
||
---|---|---|
.. | ||
blockchain_format | ||
__init__.py | ||
announcement.py | ||
block_protocol.py | ||
clvm_cost.py | ||
coin_record.py | ||
coin_solution.py | ||
coin_spend.py | ||
condition_opcodes.py | ||
condition_with_args.py | ||
eligible_coin_spends.py | ||
end_of_slot_bundle.py | ||
fee_rate.py | ||
full_block.py | ||
generator_types.py | ||
header_block.py | ||
internal_mempool_item.py | ||
mempool_inclusion_status.py | ||
mempool_item.py | ||
mempool_submission_status.py | ||
mojos.py | ||
peer_info.py | ||
signing_mode.py | ||
spend_bundle_conditions.py | ||
spend_bundle.py | ||
transaction_queue_entry.py | ||
unfinished_block.py | ||
unfinished_header_block.py | ||
weight_proof.py |