* replace blspy imports with chia_rs imports for BLS types
* remove blspy-stubs, since we're dropping the blspy dependency. chia_rs has type stubs already
* update passed_plot_filter() to take the filter size rather than consensus constants. This allows the filter size to change by block height. make verify_and_get_quality_string() take either the height or filter size
* Add some filter_prefix_bits tests on test blocks.
* Add some filter_prefix_bits tests on simulated farmer and harvester.
* Cache filter prefix bits by challenge chain signage point hash and use that for the the lookups. This allows us to perform plot filter validation.
* Add more cases to verify_and_get_quality_string() unit tests.
* Add some tests for Farmer's respond_signatures.
* Apply Kevin's suggestion to simplify the check for passing plot filter.
* Apply Kevin's suggestions to simplify some test checks and fix a couple typos.
* Apply Kevin's suggestion to send peak height instead of filter prefix bits as part of NewSignagePoint.
* Remove no longer needed filter prefix bit related logic and make height non optional in verify_and_get_quality_string().
---------
Co-authored-by: Amine Khaldi <amine.khaldi@reactos.org>
* move SerializedProgram into its own file (to fixup type annotations)
* fix type annotations for SerializedProgram
* fixup import statements for new SerializedProgram module
* dont wait for timeout on None response
* handle return msg by type
* remove empty line
* isort
* improve reply check
* use map to check reply, add has_capability helper
* fix has_capability
* unused import
* configure isort to add the future annotations import
* apply the new isort setting
* remove type ignores for new mypy (#13539)
https://pypi.org/project/mypy/0.981/
* another
* Allow different reject message
* Sync correctly when localhost is not synced
* Remove logs
* Fix getting timestamp when local node is not synced
* Precommit
* Mypy
* Debug logging
* Is trusted
* revert gui
* Remove debug logging
* Remove more debug logs
* 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>
* streamable: Merge `strictdataclass` into `Streamable` class
* tests: Test not supported streamable types
* streamable: Reorder decorators
* streamable: Simplify streamable decorator and force correct usage/syntax
* streamable: Just move some stuff around in the file
* streamable: Improve syntax error messages
* mypy: Drop `type_checking.py` and `test_type_checking.py` from exclusion
* streamable: Use cached fields instead of `__annotations__`
This is now possible after merging `__post_init__` into `Streamable`
* Introduce `DefinitionError` as `StreamableError`
* `/t` -> ` `
* protocols|server: Define new harvester plot refreshing protocol messages
* protocols: Bump `protocol_version` to `0.0.34`
* tests: Introduce `setup_farmer_multi_harvester`
Allows to run a test setup with 1 farmer and mutiple harvesters.
* plotting: Add an initial plot loading indication to `PlotManager`
* plotting|tests: Don't add removed duplicates to `total_result.removed`
`PlotRefreshResult.removed` should only contain plots that were loaded
properly before they were removed. It shouldn't contain e.g. removed
duplicates or invalid plots since those are synced in an extra sync step
and not as diff but as whole list every time.
* harvester: Reset `PlotManager` on shutdown
* plot_sync: Implement plot sync protocol
* farmer|harvester: Integrate and enable plot sync
* tests: Implement tests for the plot sync protocol
* farmer|tests: Drop obsolete harvester caching code
* setup: Add `chia.plot_sync` to packages
* plot_sync: Type hints in `DeltaType`
* plot_sync: Drop parameters in `super()` calls
* plot_sync: Introduce `send_response` helper in `Receiver._process`
* plot_sync: Add some parentheses
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* plot_sync: Additional hint for a `Receiver.process_path_list` parameter
* plot_sync: Force named parameters in `Receiver.process_path_list`
* test: Fix fixtures after rebase
* tests: Fix sorting after rebase
* tests: Return type hint for `plot_sync_setup`
* tests: Rename `WSChiaConnection` and move it in the outer scope
* tests|plot_sync: More type hints
* tests: Rework some delta tests
* tests: Drop a `range` and iterate over the list directly
* tests: Use the proper flags to overwrite
* test: More missing duplicates tests
* tests: Drop `ExpectedResult.reset`
* tests: Reduce some asserts
* tests: Add messages to some `assert False` statements
* tests: Introduce `ErrorSimulation` enum in `test_sync_simulated.py`
* tests: Use `secrects` instead of `Crypto.Random`
* Fixes after rebase
* Import from `typing_extensions` to support python 3.7
* Drop task name to support python 3.7
* Introduce `Sender.syncing`, `Sender.connected` and a log about the task
* Add `tests/plot_sync/config.py`
* Align the multi harvester fixture with what we do in other places
* Update the workflows
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Start fixing other issues
* Fork point, sync cancelling, random peer
* Reduce logging
* Improve performance and have a fallback peer for fetching
* Disconnect not synced peers
* Make sure try catch doesn't fail
* Fix lint
* Update chia/wallet/wallet_node.py
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Pylint has a bug so ignore pylint for this line
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* full node changes
* hint store
* finish coin state tracking, mypy, flake8
* type hints
* bump protocol version
* change wallet tool for testing hint list
* mypy
* add check for state, future proof hint db for multiple hints per coin
* get hint rename
* clean
* Update chia/consensus/blockchain.py
Co-authored-by: Arvid Norberg <arvid.norberg@gmail.com>
Co-authored-by: Mariano Sorgente <3069354+mariano54@users.noreply.github.com>
Co-authored-by: Arvid Norberg <arvid.norberg@gmail.com>
* Check types of messages returned from other peers
* Check message type data structures at startup, check that no peeer messages that expect replies are broadcast, and dynamically check return types of messages that do expect replies.
* Type hint protocol message type check functions
* lint
* typo
* add replay_type decorator
* add api reply decorations
* typo
* Don't check non full-node broadcast messages
* Distinguish internal vs peer protocol error
Added Changelog
Moved static check to import time
Moved protocol timeouts to chia/protocols/protocol_timing.py
Comment typos
Rename create_request -> send_request
Comment that INVALID_PROTOCOL_MESSAGE is bannable, not temporary
* Call static check at module import time
* Rename message_response_ok
* Improve protocol checking for outgoing message validation
* Type-o
* reset submodule
Co-authored-by: almog <almogdepaz@gmail.com>
* fullnode related changes from wallet protocol and unharded derivation
* limit total subscriptions per peer
* reset counter on disconnect
* dict not a set
* check membership
* remove unused tests, lint
* added clarifying comments
* WIP test
* added WIP test
* Refine genesis challenge. Remove unnecessary pool_puzzle function
* Sign spend. Remove create_member_spend. Rename state transition function to create_travel_spend
* Rename create_member_spend to create_travel_spend
* Add singleton id logging
* Enhance logging for debugging
* renaming
* rephrase inside the puzzle
* fixed signing and added some support functions
* Fix issue with announcement
* Progress spending the singleton
* Fix arguments to pool_state_to_inner_puzzle call
* Fix arguments to pool_state_to_inner_puzzle
* Improve error message when wallet is not running
* Remove misleading message about missing wallet process, when problem is the farmer by making poolnft command error out earlier
* Fix parent coin info bug
* Multiple state transitions in one block
* Lint
* Remove assert
* Fix incorrect p2_singleton_ph calculation (thanks nil00)
* Update waiting room puzzle to accept genesis_challenge
* Update calls to create_waiting
* Go to waiting state from committed state
* Augment debug_spend_bundle
* fix 2 bugs in wallet
* Fix lint
* fix bad_agg_sig bug
* Tests and lint
* remove breakpoint
* fix clvm tests for new hexs and hashs
* Fixed a bug in the coin store that was probably from merging. (#6577)
* Fixed a bug in the coin store that was probably from merging.
* The exception doesn't need to be there
* CI Lint fix
* Added lifecycle tests for pooling drivers (#6610)
* Ms.poolabsorb (#6615)
* Support for absorbing rewards in pools (untested)
* Style improvements
* More work on absorb
* Revert default root and remove log
* Revert small plots
* Use real sub slot iters
* Update types
* debug1
* Fix bugs
* fix output of agg sig log messages
* Make fewer calls to pw_status in test
* remove old comment
* logging and state management
* logging
* small bug fix & rename for accuracy
* format
* Fix types for uncurry function
* lint
* Update test to use exceptions
* Change assumptions about self-pooling in lifecycle test
* Install types for mypy
* Revert "Install types for mypy"
This reverts commit a82dcb712a.
* install types for mypy
* install types for mypy
* More keys
* Remove flags requiring interactive prompts
* Change initial spend to waiting room if self-pooling
* lint
* lint
* linting
* Refactor test
* Use correct value in log message
* update p2_singleton_or_delated_puzhash
* initial version of pool wallet with p2_singleton_or_delay
* run black formatting
* fix rebase wonkiness
* fix announcement code in p2_singleton_or_delayed
* removed redundant defaulting
standardised hexstr handling
* lint fixes
* Fixed pool lifecycle tests to current standards, but discovered tests are not validating signatures
* Signatures validate on this test now although the test still does not check it.
* Lint fix
* Fixed plotnft show and linting errors
* fixed failing farmer/harvester rpc test
* lint fix
* Commenting out some outdated tests
* Updated test coverage
* lint fix
* Some minor P2singleton improvements (#6325)
* Improve some debugging tools.
* Tidy pool clvm.
* Use `SINGLETON_STRUCT`. Remove unused `and` macro.
* Use better name `SINGLETON_MOD_HASH`.
* Finish lifecycle test suite.
* Fixing for merge with chia-blockchain/pools_delayed_puzzle (#72)
Co-authored-by: Matt Hauff <quexington@gmail.com>
* Default delay time was being set incorrectly
* Extracted get_delayed_puz_info_from_launcher_spend to driver code
* Ms.taproot plot2 (#6692)
* Start work on adding taproot to new plots
* Fix issue in block_tools
* new test-cache
* Lint
* DID fixexs
* Fix other tests
* Python black
* Fix full node store test
* Ensure block index <= 128 bits.
* fix test_pool_config test
* fix comments in pool_config and in chialisp files
* self_pool -> pool -> self_pool
* Implement leaving pools
* Fix conflicts with main via mini-rebase
* Fixup rebase mistakes
* Bring in Mariano's node discovery chagnes from pools.dev
* Fix adapters - Thanks Richard
* build tests
* Add pools tests
* Disable DID tests
* farmer|protocol: Some renaming related to the pool protocol
* farmer: Use `None` instead of `{}` and add local `pool_state`
* protocol|farmer: Introduce and use `PoolErrorCode`
* rename: `pool_payout_instructions` -> `payout_instructions`
* refactor: `AuthenticationKeyInfo` -> `authentication_key`
* refactor: Move `launcher_id` up
* rename: Some variable name changes
* rename: `points_balance` -> `points`
* format: Squash aggregation into one line
* farmer: Make `update_pool_state` public
* farmer: Print traceback if `update_pool_state` fails
* farmer: Periodically call `GET /pool_info`, add `_pool_get_pool_info`
* farmer: Add `authentication_token_timeout` to `pool_state`
Fetch it from `GET /pool_info`
* protocol|farmer: Implement support for `GET|POST|PUT /farmer`
* farmer: Make use of `GET|POST /farmer`
- To make the farmer known by the pool
- To update local balance/difficulty from the pool periodically
* farmer|protocol: Adjust `POST /partial` to match the latest spec
* farmer: Hash messages before signing
* pools: Drop unused code
* farmer: Fix aggregation of partial signatures
* farmer: support self pooling, don't pool if url==""
* wallet: return uint64 for delay time, instead of bytes
* pool: add error code for delay time too short
* farmer: cleaner logging when no connection to pool
* farmer: add harvester node id to pool protocol
* Rename method (test fix) and lint fix
* Change errors to warnings (pool communication)
* Remove pool callbacks on a reorg
* farmer: Continue earlier when no pool URL is provided
* farmer: Print method in log
* farmer: Handle exceptions for all pool endpoint calls
* farmer|protocol: Keep track of failed requests to the pool
* farmer: Fix typo which caused issue with pooling
* wallet: simplify solution_to_extra_data
* tests: Comment out DID tests which are not working yet
* Remove DID Wallet test workflows
* Return launcher_id when creating Pool Wallet
* Name p2_singleton_puzzle_hash correctly
* Improve 'test_singleton_lifecycle_fast.py'.
* Make test more robust in the face of asynchronous adversity
* Add commandline cmds for joining and leaving pools
* Fix poolnft leave params
* Remove redundant assignment brought in from main
* Remove unneeded code
* Style and parsimony
* pool_puzzles: Check was wrong, and bad naming
* format: Fix linting
* format: Remove log and rename variable
* pool-wallet: Fix self pooling with multiple pool wallets. Don't remove interested puzzle_hash
* gui: Use pools branch
* format: fix lint
* Remove ununsed code, improve initial_pool_state_from_dict
* farmer: Instantly update the config, when config file changes
* format: Speed up loading of the authentication key
* logging: less annoying logging
* Test pool NFT creation directly to pool
* Test switching pools without self-farming in between
* lint
* pooling: Use integer for protocol version (#6797)
* pooling: Use integer for protocol version
* pooling: Fix import
* Update GUI commit
* Ms.login2 (#6804)
* pooling: Login WIP
* pooling: add RPC for get_link
* dont use timeout
* pooling: rename to get_login_link
* format: remove logging
* Fix SES test
* Required cli argument
Co-authored-by: almog <almogdepaz@gmail.com>
* farmer|protocols: Rename `current_difficulty` for `POST /partial` (#6807)
* Fix to farm summary
* Use target_puzzlehash param name in RPC call
* Pool test coverage (#6782)
* Improvement in test coverage and typing
* Added an extra absorb to the pool lifecycle test (only works when merged with https://github.com/Chia-Network/chia-blockchain/pull/6733)
* Added new drivers for the p2_singleton puzzles
* Added new tests and test coverage for singletons
* organize pools testing directory
* black formatting
* black formatting in venv
* lint fix
* Update CI tests
* Fixing tests post rebase
* lint fix
* Minor readability fix
Co-authored-by: matt <matt@chia.net>
* farmer: Drop `target_puzzle_hash` from `GET /farmer` and `GET /login` (#6816)
* Allow creation of PlotNFTs in self-farming state
* gui: Fix install with more RAM (#6821)
* Allow implicit payout_address in self-pool state, improve error messages and param ergonomics
* print units in non-standard wallets correctly
* Fix farmer import
* Make syncing message in CLI more intuitive like the GUI
* Fix linting and show header hash instead of height
* gui: Update to 725071236eff8c81d5b267dc8eb69d7e03f3df8c
* Revert "Merge"
This reverts commit 23a1e688c5, reversing
changes made to a850246c6f.
* Revert "Revert "Merge""
This reverts commit 680331859f.
* Treat tx_record as Dict. Refactor tx submission
* Also add passed-in coin spends when processing new blocks in reconsider_peak
* Test utilities had moved
* Fix import of moved block_tools
* Potentially fix yaml
* Previously didn't take the right part of this change
* Add -y flag, improve commandline plotnft handling
* Fix typo
* Add -y flag to plotnft create
* pool_wallet: Restore from DB properly
* wallet: ignore bad pool configs
* Reduce memory
* pool_wallet: Add claim command
* pool_wallet: Set transaction records to confirmed
* wallet: Fix bug in transaction cache
* Formatting and remove log
* pool_wallet: CLI balance and improvements to plotnft_funcs.py
* pool_wallet: Simplify, and fix issue with double submission
* pool_wallet: Fix tests
* pool_wallet: Don't allow switching before relative lock height
* update gui
* change to 3000 mem
* Correct sense of -y flag for self-pooling
* cli: Display payout instructions for pool
* pool_wallet: Don't create massive transactions
* cli: Improvements to plotnft
* pool_wallet: Get correct pool state
* pool_wallet: Use last transaction block to prevent condition failure
* Add block height for current state
* Add outstanding unconfirmed transactions to pw_status
* Refine command line plotnft show pending transactions
* Fix tests by using the correct output from pw_status
* Try to fix windows build
* Print expected leave height
* label pool urls
* pool_wallet: Don't include pool 1.75 rewards in total
* wallet: Add RPC and CLI for deleting unconfirmed transactions for a wallet
* pool_wallet: If farming to a pool, show 0 balance in wallet
* pool_wallet: Show error message if invalid state, in CLI
* pool_wallet: Don't allow switching if there are pending unconfirmed transactions
* tests: Clean up pool test logging
* tests: Fix lint
* Changed the pool innerpuzzes (#6802)
* overload solutions for pool_innerpuz parameters
* Fix tests for reduced size puzzles
* deleted messy deprecated test
* Fix lint.
* fix bug where spend types were the wrong way around
* merge with richard's lint fix
* fix wallet bug
remove unnecessary signature
add defun-inline for clarity
* Swap to defun for absorb case
Use cons box for member innerpuz solution
* fix if statement for cons box p1
* remove unnecessary solution arg
* quick innerpuz fix to make tests pass
* Switch to key-value pairs
Undo cons box solution in pool_member inner puzzle
* fix singleton lifecycle test
* added some comments to calrify the meaning on "ps"
* lint fix
* reduce label size, search for label when reconstructing from solution
* no need to keep looping if `p` found
* lint fix
* Removed unecessary defun-inline and changed hyphens to underscores
* Changed created_coin_value_or_0 to an inline function
* Changed morph_condition to an inline function
* Added a comment for odd_cons_m113
* Rename output_odd and odd_output_found
* Add inline functions to document the lineage proof values
* Stager two rewrite
* Added an ASSER_MY_AMOUNT to p2_singleton_or_delayed
* Extract truth functionality to singleton_truths.clib
* Fix tree hashes
* Changed truths to a struct rather than a list.
* fix test_singletons
update did_innerpuz
* recompile did_innerpuz
* fix a log error
* Renamed variable and factored out code per @richardkiss
* lint fix
* switch launcher extra_data to key_value pairs
* fix parsing of new format of extra_data in launcher solution
* fix broken test for new launcher solution format
* remove bare raise
Co-authored-by: Richard Kiss <him@richardkiss.com>
Co-authored-by: Matt Hauff <quexington@gmail.com>
* Also add passed-in coin spends when processing new blocks in reconsider_peak (#6898)
Co-authored-by: Adam Kelly <aqk>
* Moved debug_spend_bundle and added it to the SpendBundle object (#6840)
* Moved debug_spend_bundle and added it to the SpendBundle object
* Remove problematic typing
* Add testnet config
* wallet: Memory would get corrupted if there was an error (#6902)
* wallet: Memory would get corrupted if there was an error
* wallet: Use block_record
* wallet: Add records in a full fork too
* wallet: remove unnecessary arguments in CC and DID
* add to cache, revert if transaction fails
Co-authored-by: Yostra <straya@chia.net>
* Improve comment
* pool_wallet: Fix driver bug
* wallet: Fix memory corruption
* gui: Update to latest
* Increase memory size
* tests: Add test for absorbing from pool
* small fix in solution_to_extra_data
* Fixed incorrect function name
* pooling: Fix EOS handling in full node
* [pools.testnet9]add post /partial and /farmer header (#6957)
* Update farmer.py
add post header
* Update farmer_api.py
add post header
* Update chia/farmer/farmer.py
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
* Update chia/farmer/farmer_api.py
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
Co-authored-by: Mariano Sorgente <3069354+mariano54@users.noreply.github.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
* Fix lint and cleanup farmer.py
* farmer: Fix linting issues (#7010)
* Handle the case of incorrectly formatted PoolState data returned from inner singleton
* wallet: Resubmit transaction if not successful, rename to new_transaction_block_callback (#7008)
* Fix lint in pool_puzzles
* pooling: Fix owner private key lookup, and remove unnecessary argument
* pooling: Clear target state on `delete_unconfirmed_transactions`
* Lint
* Fix non-deterministic test
* Slight cleanup clvm driver code (#7028)
* Return None when a deserialized CLVM structure does not fit the expected format of var-value pair for singleton data
* lint
Co-authored-by: Adam Kelly <aqk>
* Revert "Add testnet config"
This reverts commit 9812442724.
Co-authored-by: matt <matt@chia.net>
Co-authored-by: Adam Kelly <aqk@aqk.im>
Co-authored-by: Mariano Sorgente <sorgente711@gmail.com>
Co-authored-by: Matt Hauff <quexington@gmail.com>
Co-authored-by: Mariano Sorgente <3069354+mariano54@users.noreply.github.com>
Co-authored-by: Adam <aqk@Adams-MacBook-Pro.local>
Co-authored-by: Adam Kelly <aqk>
Co-authored-by: Richard Kiss <him@richardkiss.com>
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
Co-authored-by: almog <almogdepaz@gmail.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
Co-authored-by: Earle Lowe <e.lowe@chia.net>
Co-authored-by: arvidn <arvid@libtorrent.org>
Co-authored-by: willi123yao <willi123yao@gmail.com>
Co-authored-by: arty <art.yerkes@gmail.com>
Co-authored-by: William Blanke <wjb98672@gmail.com>
Co-authored-by: matt-o-how <48453825+matt-o-how@users.noreply.github.com>
Co-authored-by: Chris Marslender <chrismarslender@gmail.com>
Co-authored-by: Yostra <straya@chia.net>
Co-authored-by: DouCrazy <43004977+lpf763827726@users.noreply.github.com>
* Avoid importing `test_constants` as it takes a long time.
* Factor out `parse_*` functions.
* First crack at refactoring `Streamable.parse`.
* Don't add `_parse_functions` attribute to `Streamable`.
This no longer requires an extra `_parse_functions` attribute on a
`Streamable`, as it may be confusing serializers or other functions
that use `__annotations__`.
* Fix lint problems with `black`.
* Fix `parse_tuple`.
* Defer some parsing failures to parse time rather than class-creation time.
* Tidy up & remove some obsolete stuff.
* Decorate `RequestBlocks` as `streamable`.
* Fix wrong uses of Streamable class
Revert an earlier commit and error out on class creation in case a
Streamable subclass is instantiated incorrectly, e.g. containing a
non-serializable member.
Fix cases where Streamable parent class was forgotten.
* Fix wrong types when creating DerivationRecord and WalletCoinRecord
* additional unit tests for streamable parsers
* add type annotations (#3222)
Co-authored-by: Rostislav <rostislav@users.noreply.github.com>
Co-authored-by: arvidn <arvid@libtorrent.org>