* make pre_validate_multi_processing() return futures, rather than the awaited and joined results from the thread jobs. This is crucial to allow the validaion jobs to run concurrently with the database interaction in the main thread
* Split up the add_block_batch() function into 3 parts, preparing them to be pipelined in long-sync
* pass AugmentedBlockchain into pre_validate_multiprocessing() and prevalidate_blocks(), to support the augmented blockchain to outlive a single batch
* pipeline pre-validation in sync_from_forkpoint()
* optimize the common case of _reconsider_peak(), to avoid one database lookup
* address review comments
* rename filter_blocks() -> skip_blocks(). It's is only relevant at the start of the sync, add comment and assert
extend virtual_project_analysis to treat all files under chia/_tests as its own subproject. Since the tests depend on the production code,this will prevent production code from depending on tests
* use additions_and_removals() in the request_block_header() full node API. This is slightly faster, and untangles it from the function used for consensus
* use additions_and_removals() instead of get_name_puzzle_conditions() in run_one_block(). We've already validated the block, we just need to recompute the additions and removals
* refactor
* minor fixes
* fix_tests
* add finish sync to add_blocks_in_batches
* add_blocks_in_batches updates wallets
* test fixes
* fix condition in add_block
* add known block to cache
* restore comment
* remove init file from log dir
* fix failed reorg test
* revert known block info change
* assert height in cat test
* wait for wallet height in nft test
* assert sync all height for all wallets
* test_cat_creation assert height
* rename vars
* assert height in process states
* move spend_sim into tests
* use run_block_generator2() instead of get_name_puzzle_conditions() in CostLogger. It's only used to compute the cost of a spend bundle, in tests.
validate UnfinishedBlocks and signature in the blockchain thread pool. Previously we validate unfinished block signatures in the main thread, because the BLSCache used to be single-threaded