* new blob block api method integrated into wallet
* direct msg streaming of headers, rename, tests
* perform_handshake call fix
* updated trusted sync with new block header calls
* add max blocks limit to fetch
* added tests for rejected block header msgs
* avoid parsing transactions info if not required
* avoid looking up capabilities setting
* move block tests out of a class
* test fix
* Merge changes
* added docs and increased rate limits
* increased block header request interval from 32 to 128
* remove fetching hashes and use height range
* fetching by height in db v2
* update capabilities, other fixes
* fixed range block header call
* Add type hints
* Start work on optimizing fetch_last_tx_from_peer
* Huge speedup in trusted wallet sync
* Revert unintentional changes
* Fix trade issue
* Improve the code
* Str format
* Optimize handling of farming rewards
* Fix bug
* Performance fixes
* Optimizations to wallet syncing
* Don't return all coins in respond_additions
* Revert concurrency numbers
* More optimization of the caches
* Small optimization in coin_added
* Optimize request_additions significantly by using a cache
* fixes from feedback
* capabilities check fixes
* Increase rate limits to allow 250tps in verification requests
* Start work on rate limits
* New rate limit versioning support
* Revert unrelated changes
* revert return False
* Lint
* Revert cbi
* try tests with trusted peer
* Revert unrelated wallet changes
* Revert more debug changes
* Add test and throw on an error if not found
* Reject invalid requests
* Revert bad change with uint32, and change warning to info
* Parametrize wallet sync test
* Merge and LGTM
* More clean way to choose peers
* Fix lint
* add the new RejectBlockHeaders, RequestBlockHeaders and RespondBlockHeaders to the network protocol regression test and regenerate test files
* Rate limit diffs only
* Improve performance
* Simpler
* Lint
Co-authored-by: Sebastjan <trepca@gmail.com>
Co-authored-by: arvidn <arvid@libtorrent.org>
* since condition opcode 1 is about to become well defined, use some other opcode to test unknown conditions
* Update tests/core/full_node/test_mempool.py
Co-authored-by: Richard Kiss <him@richardkiss.com>
Co-authored-by: Richard Kiss <him@richardkiss.com>
* Add Windows CI
* rebuild workflows
* rebuild workflows
* try different activation
* catch up windows workflow template
* debug dir
* hard code dev extra on windows
* it is pytest
* .exe
* -m pytest for windows
* --module pytest
* Revert "debug dir"
This reverts commit 74b5bbfd92.
* debug pkg_resources import on windows
* debug tests.conftest import on windows
* rebuild workflows
* debug
* debug oops
* debug more
* debug more
* Update pytest.ini
* Update pytest.ini
* fix it
* Revert "debug more"
This reverts commit 367ed61dfa.
* Revert "debug more"
This reverts commit 772b6707c6.
* Revert "debug oops"
This reverts commit 5065c1e172.
* Revert "debug"
This reverts commit ecf721e453.
* Revert "debug tests.conftest import on windows"
This reverts commit ea71a51625.
* Revert "debug pkg_resources import on windows"
This reverts commit eb6afb1dfb.
* more warning ignore
* they're regexes...
* --numprocesses 0 for windows ci
* specify each test file individually since pytest on windows does not seem to handle the wildcards
* relative...
* select most recent supported python on windows, support INSTALL_PYTHON_VERSION
* sort test files when generating workflows
* report full python version on windows, actually use the selected version for the env
* oops
* debug dir
* skip timelord-requiring jobs on windows
* oops
* handle wildcard expansion for coverage on windows
* rebuild workflows
* download blocks and plots on windows
* correct and and or in yaml
* -d for Install.ps1
* git config --global core.autocrlf false
* add missing windows plot_sync workflow
* no check resource usage on windows
* delete outdated windows workflows that need the timelord
* catch up windows workflow template
* try again without xdist
* rebuild workflows
* Revert "try again without xdist"
This reverts commit 4bedf5f047.
* maybe now no xdist on windows
* maybe now no xdist on windows
* rebuild workflows
* debug chiapos==1.0.9
* Revert "debug chiapos==1.0.9"
This reverts commit 4b374e128a.
* debug blspy==1.0.9
* catch up windows workflow template
* rebuild workflows
* Various windows CI fixes
* Windows CI fixes and workflow updates
* ignore another warning for the keyring
* pre-commit fixup
* rebuild workflows
* catchup windows test workflows with long_lived/** and release/** setup
* Update test_full_sync.py
* Try without parallelization
* Some other tweaks for windows
* some more timeout tweaks
* more timeout tweaks for windows
* rebuild workflows
* Adjusting more timeouts
* Skip ipv6 test on windows
* More timeout tweaks
* More timeout adjustments
* More time out adjustments
* more windows tweaks
* Try running some things with -n 0
* Fix up windows test template and re-gen workflows
* Try this again
* Try all windows tests with -n 0
* misc update
* Undo some timeout changes
* Adjust timeout
* Increase timeout
* Coverage combine should combine the files in the current directory
* Trying retry test on windows
* timeout adjustment
* use tmp_path
* Few minor updates based on review
* lint fix
* Update tests/build-workflows.py
* Update tests/core/server/test_dos.py
* Try windows with pytest xdist n=2
* Check windows with xdist n=3
* Trying n=2 again
* Adjust timeout
* Update testconfig.py
* Update build-workflows.py
* Update testconfig.py
* Update .pre-commit-config.yaml
* Update testconfig.py
* Update build-workflows.py
* Update build-test-macos
* Update build-test-ubuntu
* Update build-test-windows
* skip
* Apply suggestions from code review
* tidy
* Update test_pool_config.py
Co-authored-by: Earle Lowe <e.lowe@chia.net>
Co-authored-by: Earle Lowe <30607889+emlowe@users.noreply.github.com>
* add tests.util.misc.assert_maximum_duration for benchmark assertions
* fix some imports
* more
* lint
* correct duration
* hint fixup
* rename to caller_file_and_line()
* set default timer to thread_time()
* extract gc manager and default to disabling
* self calibrate overhead
* wrap none-ness behind .results() method
* add messages
* from __future__ import annotations
* yield out self
* final from typing_extensions
* split it
* just use Future
* tweak
* tweak
* correction in loosely hint checked file
* all future indexing in hints
* union for the hints
* rename
* assert_runtime()
* another rename...
* message -> label
* label all results with test names
* oops
* Increase some of the timeouts to reduce flakiness
* Experiment with CI for flakiness
* Force more runs
* Add argument name
* Fix flaky mempool test
* Attempt to fix another flaky test
* Fix wallet retry test
* Missing arg
* Lint
* Increase benchmark test time
* Debug
* Debug
* Simplify retry test
* Lint
* More lint
* Return false instead of assert
* No need to check disconnect twice (since we don't break, this was flaky)
* Remove useless changes
* Accidental changes revert
* Accidental changes revert 2
* Accidental changes revert 3
* Revert fixture
* Some work on hints
* More cleanup and test_generator_tools
* Change relevant calls
* More refactor and cleanup
* More refactor
* Small fix
* Create wrapper object PeakPostProcessingResult
* Lint and small fix
* Fix a hint bug
* Fix hint update_wallets
* Fix test_full_sync
* pre-commit
* Start with PR review comments
* More efficient iteration
* Remove tx_removals_additions_and_hints
* Revert mozilla ca
* Fix issue with startup
* lookup coins in large batches, rather than one at a time, in block_body_validation
* make get_coin_records use the cache. and make the blockchain change tracking also use the new batch lookup
* make building the sql query a bit more elegant
* fix assert
* fix test_blockchain assert tests
* add type annotation
* await aiosqlite.Cursor.execute() immediately
* Add comments and fix a coin subscription bug
* Updated rollback test
* simplify test
* expand test
Co-authored-by: Mariano Sorgente <sorgente711@gmail.com>
* more work on test blockchain
* Optimize test_blockchain.py
* Fix weight proof bug
* Rename variable
* first rc_sub_slot hash bug
* New plots
* try with a new ID
* Run without cache
* Address test blocks and plots preparation.
* Update constant in test_compact_protocol().
* Update this constant too.
* Revert accidental altering of the gui submodule in ae7e3295f280a591e76c4dffdea75fb74ea5de6f.
* Fix benchmark test
* Revert mozilla-ca change
* Rebase on main
Co-authored-by: almog <almogdepaz@gmail.com>
Co-authored-by: Amine Khaldi <amine.khaldi@reactos.org>
* Start fast full node tests
* Perf improvement on send_transaction
* Major performance improvement for mempool test
* Speed up another test
* Speed up mempool tests startup
* Lint
* Debug tests
* Try function scope for wallet_nodes
* Update comment
* when going through a reorg, maintain all chain state until the very end, when the new fork has been fully validated and added
* when rolling back the chain, also rollback the height-to-hash map
* add tests
* Rename confusing fixtures, especially ones with the same name but different implementation
* revert premature fixture rename: two_wallet_nodes_start_height_1
* Consolidate test fixtures
* fixup and enable tests for the edge cases of absolute timestamp and absolute height conditions in mempool_manager
* Update chia/full_node/full_node_api.py
Co-authored-by: Adam Kelly <338792+aqk@users.noreply.github.com>
Co-authored-by: Adam Kelly <338792+aqk@users.noreply.github.com>
* disable the pytest-monitor plugin if not reporting results
pytest-monitor uses multiprocessing and has caused multiple confusing
issues. Perhaps it can be adjusted to not use multiprocessing, but
for now lets just isolate the oddities to where we actually use it.
* use a template for resource usage check, similar to timelord install
* hint testconfig.custom_vars
* Rename confusing fixtures, especially ones with the same name but different implementation
* rename test_environment to test_plot_environment
* Make it so setup_two_nodes is no longer the name of a fixture and a utility function
* revert premature fixture rename: two_wallet_nodes_start_height_1
* Remove unused test code
* Centralize fixture uses of setup_n_nodes
* Centralize fixure uses of setup_two_nodes
* Break up setup_nodes into setup_services, for individial services, and setup_nodes, for initializing different simulator configurations
* Sort imports
* remove event_loop() fixtures
* flake8
* flake8
* remove sys.exit() from daemon shutdown
* bump full node test timeout. a lot... to see.
* fixup some tests
* back to module scope event loop fixture for test_full_node.py
* Update test_full_node.py
* Iterator...
* for the whole directory
* some fixtures back to module scope for reduced runtime
* back to 40 minute workflow timeouts
* these are being addressed separately
* Use bt fixture
* rebase
* Use local_hostname
* flake8
* Remove set_shared_instance
* Remove unneeded comments
* Revert unrelated change
* Add back type signature - rebase issue
* Correct type for _configure_legacy_backend
* See what's going on during CI mypy run
* github workflows
* mypy typing
* Remove legacy Keyring create method
* Start daemon first
* Set chia-blockchain-gui to hash in main
* Fix two test files that were not importing self_hostname
* self_hostname fixture
* Convert all class fixtures to top level functions
* Use bt fixture
* rebase
* Use local_hostname
* Fix test_json (inheritance from unittest.TestCase)
* Use correct BlockTools fixture for test_simulation
* Pass bt fixture into cost calculation tests
* flake8
* Add missing parameters to test functions
* Fix from rebase issues
* Remove set_shared_instance
* Update comment
* Remove unneeded comments
* Remove unused code
* Remove unused code, run `multiprocessing.set_start_method("spawn")` at correct time.
* Revert unrelated change
* Set daemon_port. Teardown services in correct order.
BIG thanks to Mariano Sorgente for debugging help.
* Add back type signature - rebase issue
* Apply review fixes from Jeff
* Document why we need a later pytest-asyncio version
* Correct type for _configure_legacy_backend
* See what's going on during CI mypy run
* github workflows
* mypy typing
* Remove legacy Keyring create method
* Start daemon first
* Shutdown daemon coroutine properly
* Remove un-needed daemon_port argument
* Set chia-blockchain-gui to hash in main
* Remove connect_to_daemon_port
* Remove code that set "daemon_port" before calling `setup_daemon`
* Remove self_hostname fixture and extra self_hostname global
* Fix two test files that were not importing self_hostname
* self_hostname fixture
* Remove more unused test code
* Simplify fixture
* WIP: fix more hard coded listen sockets in tests
* correct comment
* remove seemingly redundant event_loop fixtures (that sometimes seem to cause problems)
* when a test fails, the error is the most important thing to print
* fix mempool tests to me truly independent, by giving each test case a fresh block, and fresh reward coins to use for the test
* optimize get_block_generator()
* add a v1 compatible get_generator() to speed up get_block_generator() with v1 databases. Add test. Add error log in case generator_from_block() fails.
* speed up test_full_block_utils
* wallet fixes
* Don't show false positive synched
* Code cleanup and lint
* Fixes
* Revert issue
* Fix reorg issue
* WIP wallet node
* More wallet refactor
* More wallet changes
* More
* Fix subscription bugs
* Fix some tests
* Fix pool tests
* More tweaks
* Lint and small issues
* call update_ui at the correct points
* Small changes
* new peak queue
* Fix peer height issue
* Rollback more for safety, and tweak logging
* Small WSM style fixes
* Change fork point in long_sync
* More fixes with real world testing
* Fix reversed filter
* Fix function name
* Fix coin store bug properly
* Raise CancelledError
* Fix rollback issue
* Lint
* Small fix
* Fix CAT issue
* Fix test trades race condition
* Fix test trades race condition
* Try to reduce flakiness
* Test coin store and fix additional method
* Improve flakiness