* bump chia_rs to 0.45.1
* fix issue in test_spam_message_too_large
* allow a few more warnings that can be triggered because our tests leak aiohttp websocket clients
* fix flaky test: test_transaction_ack_duplicate_without_resend_ignored
* bump chia_rs to 0.45.0
* support parsing limited lists for rust types, using the new truncate() feature
* use the new, explicit, function to print private keys
* review comment
* review comments
* fix python import
* Bump aiohttp to 3.14.0
Require the aiohttp release that fixes false websocket heartbeat timeouts while receiving slow large frames.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix aiohttp websocket typing
Set explicit text decoding on websocket clients so aiohttp 3.14 keeps the existing decoded-message type contract.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix aiohttp typing on Python 3.10
Centralize the decoded websocket type narrowing so aiohttp 3.14 type checks consistently across supported Python versions.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Widen aiohttp websocket type boundary
Let Chia accept aiohttp websocket responses with either text-decoding mode instead of relying on a post-hoc narrowing helper.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Document aiohttp typing cleanup
Note that the widened websocket type boundary can be revisited after Python 3.10 support is dropped.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Test slow websocket frame heartbeat
Cover the aiohttp 3.14 heartbeat reset behavior that keeps large frames alive while bytes continue arriving slowly.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Assert slow frame exceeds heartbeat window
Make the aiohttp websocket regression test prove its throttled frame crosses the heartbeat timeout boundary.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix server test import order
Apply the ruff import ordering fix for the aiohttp websocket regression test.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
* bump chia_rs
* updates to use and report any error message reported back from chia_rs
* bump test cache
* pass testnet to the proof-of-space functions
* review comments
* First pass add 3.14
* Update bitarray
* Update markupsafe
* Update zstd
* Update tach to version with 3.14 support
* Changes for 3.14 related things
* Refactor shutdown handling in sync method
* Ignore unclosed database ResourceWarning
Added a new warning to ignore for unclosed database resources.
* Update pytest.ini to ignore additional warnings
* ignore resourcewarnings about tempdir cleanup
* Minor cleanup for tests running under python 3.14
* Reduce consensus tests for test_ban_for_mismatched_tx_cost_fee
* make sure to close RPC client at end of test
* different idea for TempFile
* oh, no cleanup function
* small fixes for tests detected by 3.14
* update pytest.ini
* ignore sqlite errors during closing in __del__
* add code to ignore deprecatewarnings for loop policy
* Pass in ClientSession to wschiaconnection for proper cleanup
* Some more resource cleanup
* Trying to find unclosed sessions
* One more time needing a close
* wait for harvesters to connect to the farmer
* properly teardown vdf_server using context manager
* Testing cleanup for simulator tests
* Add in a sleep to allow sockets time to cleanup
* Revert "Testing cleanup for simulator tests"
This reverts commit c5a4ef0cc3.
* Revert "properly teardown vdf_server using context manager"
This reverts commit 18b456a7b6.
* Revert "Revert "Testing cleanup for simulator tests""
This reverts commit 8c8efc2e03.
* vdf_server cleanup
* attempt 47 of timelord cleanup
* Some other cleanup fixes in tests
* yet another attempt at timelord shutdown
* Some more adjustments for 3.14
* ignore unclosed socket resource warnings
* some more adjustments and cleanup
* remove commented code
* correct poetry.lock file
* Address some review comments
* fix merge indentation
* fix install script print
* update requests
* fix problems with timelord tests on 3.14
* Make sure to close dummy session on any exception
* Use different cleanup pattern to help with flakes on Windows
* better shutdown handling
* hopefully better awaiting for cleanup
* yet more better timelord cleanup
* some test adjustments
* more time for cleanup
* bump chia_rs to 0.42.0
* implement cost-per-spend after 3.0 hard fork
* update difficulty
* disable test_empty_sub_slots_epoch for HARD_FORK_3_0 as it seems we don't get any overflow blocks
* cache solve_proof() and get_qualities_for_challenge() results for tests
* Fix mypy 1.20.0 compatibility
mypy 1.20.0 introduces improved type narrowing and stricter enum/dict
inference that breaks the existing codebase. This fixes all 20 errors:
- Remove `types-cryptography` (3.3.23.2): ancient stubs conflict with
cryptography 46.0.6's own `py.typed` inline types. mypy 1.20.0 now
resolves enum member annotations from stubs as `str` instead of the
enum type, causing arg-type errors in SSL code.
- Remove stale `type: ignore` comments made unnecessary by improved
narrowing (equality checks on unions, dict key membership).
- Add targeted `type: ignore` for new stricter dict union inference
(bool/int distinction in literals, conditional dict merges).
- Fix pre-existing RUF070 lint errors in touched files.
* Bump mypy to 1.20.0 in poetry.lock
The previous poetry.lock pinned mypy at 1.19.1, so CI was running
the old version despite the code fixes targeting 1.20.0. This updates
the lock file to resolve mypy 1.20.0 (and its runtime dep librt 0.8.1).
* Update chia_rs dependency. This version introduces condition costs in the hard
fork. So the tests that compute block costs are being updated to match these
cost rules. It also introduces a spend limit in the 2.7.0 soft fork, and the
mempool is updated to not produce blocks exceeding this limit.
* ensure both MAX_SPENDS_PER_BLOCK checks are covered by the test
* update chia_rs dependency with the new ProofOfSpace type. use k-22 for v2 plots in simulator
* use new test cache
* review comments
* update test plots and chains to use k-20 for v2 plots, and only alternate between strength 2 and 3 (not 4)
* bump chia_rs and make appropriate adjustments. The v2 PoS format has changed. There is no quality proof scan filter
bump test-cache blocks and test-plots
* add support for creating v2 plots in block_tools
* separate test chains into v1-plots, v1- and v2-mixed plots, and v2-only plots (after phase-out)
* (temporarily) disable running some tests with the 3.0 hard fork, until we fix them
* fix test_blockchain.py for the 3.0 hard fork chains
* Now that we have more test chains to run tests over (for PoS2), we'll need more time to run all the tests, on CI.
* remove comment about validating v2 plot cache entries when loading them. We can revisit this if it becomes a problem
* review
* fix tests
* fix long reorg
* readd todo
* remove usless todo
* fix comment
* long_reorg
* assert case exercised
* todo
* bump blocks-and-plots-version
* update lockfile
* fix overflow handling in test helper
* fix
* address cursor comments
* skip a few select tests on CI, to speed it up
---------
Co-authored-by: almogdepaz <almogdepaz@gmail.com>
* python 3.13 support
* some more
* 3.13 for dep checks
* more 3.13 *confused*
* fixup
* fixup
* update expected signature in 3.13
* fixup _attach/_detach hinting and testing
* ban freethreading
* Fix trailing comma in list
* replace legacy kw_only_dataclass decorator
* Adjust check for python version
* Remove debugging output
* Use reruns for 3.13+Windows flakes only
* re-lock poetry
---------
Co-authored-by: Earle Lowe <e.lowe@chia.net>
Co-authored-by: Matt Hauff <quexington@gmail.com>
* bump chia_rs to 0.31.0
* integrate new pos2 API from chia_rs into V2Prover
* fixup test_harvester_api mocking of Prover
* review-comments: rename get_quality() to get_string() on Quality protocol
* reivew comments
* fixup bump chia_rs
* restore quality string to bytes32
* initial changes
* poetry fix
* Address ruff
* Install scripts issues
* Experiment a little bit
* Okay now try for rocky linux and use 3.12 instead
* Remove the now unused thing
* Use dnf for consistency
* Simplify installations
* Still need git
* relock poetry with 2.2.0
* relock poetry with 2.2.0
* try `git checkout main poetry.lock && .penv/bin/poetry lock` on altendky's system
---------
Co-authored-by: Kyle Altendorf <sda@fstab.net>