2022-09-30 11:40:22 +03:00
|
|
|
from __future__ import annotations
|
|
|
|
|
2020-11-26 09:22:13 +03:00
|
|
|
import asyncio
|
2023-06-14 04:12:25 +03:00
|
|
|
import logging
|
2020-11-26 09:22:13 +03:00
|
|
|
import time
|
2020-10-16 04:03:46 +03:00
|
|
|
from pathlib import Path
|
2023-02-28 20:42:58 +03:00
|
|
|
from typing import List, Optional, Tuple
|
2020-10-16 04:03:46 +03:00
|
|
|
|
2023-11-07 20:06:52 +03:00
|
|
|
from chia_rs import AugSchemeMPL, G1Element, G2Element
|
2020-10-16 04:03:46 +03:00
|
|
|
|
2021-04-04 06:55:26 +03:00
|
|
|
from chia.consensus.pot_iterations import calculate_iterations_quality, calculate_sp_interval_iters
|
|
|
|
from chia.harvester.harvester import Harvester
|
2021-08-09 20:25:15 +03:00
|
|
|
from chia.plotting.util import PlotInfo, parse_plot_info
|
2021-04-04 06:55:26 +03:00
|
|
|
from chia.protocols import harvester_protocol
|
|
|
|
from chia.protocols.farmer_protocol import FarmingInfo
|
2022-04-08 03:10:44 +03:00
|
|
|
from chia.protocols.harvester_protocol import Plot, PlotSyncResponse
|
2021-04-04 06:55:26 +03:00
|
|
|
from chia.protocols.protocol_message_types import ProtocolMessageTypes
|
2023-02-28 20:42:58 +03:00
|
|
|
from chia.server.outbound_message import Message, make_msg
|
2021-04-04 06:55:26 +03:00
|
|
|
from chia.server.ws_connection import WSChiaConnection
|
2022-11-17 22:46:22 +03:00
|
|
|
from chia.types.blockchain_format.proof_of_space import (
|
|
|
|
ProofOfSpace,
|
|
|
|
calculate_pos_challenge,
|
|
|
|
generate_plot_public_key,
|
|
|
|
passes_plot_filter,
|
|
|
|
)
|
2021-04-04 06:55:26 +03:00
|
|
|
from chia.types.blockchain_format.sized_bytes import bytes32
|
2022-10-20 23:10:23 +03:00
|
|
|
from chia.util.api_decorators import api_request
|
2021-04-04 06:55:26 +03:00
|
|
|
from chia.util.ints import uint8, uint32, uint64
|
|
|
|
from chia.wallet.derive_keys import master_sk_to_local_sk
|
2020-10-16 04:03:46 +03:00
|
|
|
|
2021-03-03 06:49:19 +03:00
|
|
|
|
2020-10-16 04:03:46 +03:00
|
|
|
class HarvesterAPI:
|
2023-06-14 04:12:25 +03:00
|
|
|
log: logging.Logger
|
2020-10-16 04:03:46 +03:00
|
|
|
harvester: Harvester
|
|
|
|
|
2020-12-03 16:49:14 +03:00
|
|
|
def __init__(self, harvester: Harvester):
|
2023-06-14 04:12:25 +03:00
|
|
|
self.log = logging.getLogger(__name__)
|
2020-10-16 04:03:46 +03:00
|
|
|
self.harvester = harvester
|
|
|
|
|
2023-06-14 04:12:25 +03:00
|
|
|
def ready(self) -> bool:
|
|
|
|
return True
|
|
|
|
|
2022-10-20 23:10:23 +03:00
|
|
|
@api_request(peer_required=True)
|
2022-04-08 03:10:44 +03:00
|
|
|
async def harvester_handshake(
|
|
|
|
self, harvester_handshake: harvester_protocol.HarvesterHandshake, peer: WSChiaConnection
|
2023-02-28 20:42:58 +03:00
|
|
|
) -> None:
|
2020-10-16 04:03:46 +03:00
|
|
|
"""
|
|
|
|
Handshake between the harvester and farmer. The harvester receives the pool public keys,
|
|
|
|
as well as the farmer pks, which must be put into the plots, before the plotting process begins.
|
|
|
|
We cannot use any plots which have different keys in them.
|
|
|
|
"""
|
2021-08-09 20:25:15 +03:00
|
|
|
self.harvester.plot_manager.set_public_keys(
|
|
|
|
harvester_handshake.farmer_public_keys, harvester_handshake.pool_public_keys
|
|
|
|
)
|
2022-04-08 03:10:44 +03:00
|
|
|
self.harvester.plot_sync_sender.set_connection(peer)
|
|
|
|
await self.harvester.plot_sync_sender.start()
|
2021-08-09 20:25:15 +03:00
|
|
|
self.harvester.plot_manager.start_refreshing()
|
2020-10-16 04:03:46 +03:00
|
|
|
|
2022-10-20 23:10:23 +03:00
|
|
|
@api_request(peer_required=True)
|
2021-02-09 10:14:37 +03:00
|
|
|
async def new_signage_point_harvester(
|
|
|
|
self, new_challenge: harvester_protocol.NewSignagePointHarvester, peer: WSChiaConnection
|
2023-02-28 20:42:58 +03:00
|
|
|
) -> None:
|
2020-10-16 04:03:46 +03:00
|
|
|
"""
|
2020-11-26 09:22:13 +03:00
|
|
|
The harvester receives a new signage point from the farmer, this happens at the start of each slot.
|
|
|
|
The harvester does a few things:
|
|
|
|
1. The harvester applies the plot filter for each of the plots, to select the proportion which are eligible
|
|
|
|
for this signage point and challenge.
|
|
|
|
2. The harvester gets the qualities for each plot. This is approximately 7 reads per plot which qualifies.
|
|
|
|
Note that each plot may have 0, 1, 2, etc qualities for that challenge: but on average it will have 1.
|
|
|
|
3. Checks the required_iters for each quality and the given signage point, to see which are eligible for
|
|
|
|
inclusion (required_iters < sp_interval_iters).
|
|
|
|
4. Looks up the full proof of space in the plot for each quality, approximately 64 reads per quality
|
|
|
|
5. Returns the proof of space to the farmer
|
2020-10-16 04:03:46 +03:00
|
|
|
"""
|
2021-08-09 20:25:15 +03:00
|
|
|
if not self.harvester.plot_manager.public_keys_available():
|
2020-11-26 09:22:13 +03:00
|
|
|
# This means that we have not received the handshake yet
|
2022-09-29 22:53:06 +03:00
|
|
|
self.harvester.log.debug("new_signage_point_harvester received with no keys available")
|
2021-05-11 08:05:45 +03:00
|
|
|
return None
|
2020-10-16 04:03:46 +03:00
|
|
|
|
2022-09-29 22:53:06 +03:00
|
|
|
self.harvester.log.debug(
|
|
|
|
f"new_signage_point_harvester lookup: challenge_hash: {new_challenge.challenge_hash}, "
|
|
|
|
f"sp_hash: {new_challenge.sp_hash}, signage_point_index: {new_challenge.signage_point_index}"
|
|
|
|
)
|
|
|
|
|
2020-11-26 09:22:13 +03:00
|
|
|
start = time.time()
|
|
|
|
assert len(new_challenge.challenge_hash) == 32
|
|
|
|
|
|
|
|
loop = asyncio.get_running_loop()
|
|
|
|
|
2020-12-03 20:13:27 +03:00
|
|
|
def blocking_lookup(filename: Path, plot_info: PlotInfo) -> List[Tuple[bytes32, ProofOfSpace]]:
|
2020-11-26 09:22:13 +03:00
|
|
|
# Uses the DiskProver object to lookup qualities. This is a blocking call,
|
|
|
|
# so it should be run in a thread pool.
|
2020-10-16 04:03:46 +03:00
|
|
|
try:
|
2021-03-26 11:40:32 +03:00
|
|
|
plot_id = plot_info.prover.get_id()
|
2022-11-17 22:46:22 +03:00
|
|
|
sp_challenge_hash = calculate_pos_challenge(
|
2021-03-26 11:40:32 +03:00
|
|
|
plot_id,
|
2020-12-11 10:27:03 +03:00
|
|
|
new_challenge.challenge_hash,
|
|
|
|
new_challenge.sp_hash,
|
2020-10-16 04:03:46 +03:00
|
|
|
)
|
2021-01-14 01:27:30 +03:00
|
|
|
try:
|
2021-01-15 01:31:29 +03:00
|
|
|
quality_strings = plot_info.prover.get_qualities_for_challenge(sp_challenge_hash)
|
2023-08-17 02:40:29 +03:00
|
|
|
except RuntimeError as e:
|
|
|
|
if str(e) == "Timeout waiting for context queue.":
|
|
|
|
self.harvester.log.warning(
|
|
|
|
f"No decompressor available. Cancelling qualities retrieving for {filename}"
|
|
|
|
)
|
|
|
|
self.harvester.log.warning(
|
|
|
|
f"File: {filename} Plot ID: {plot_id.hex()}, challenge: {sp_challenge_hash}, "
|
|
|
|
f"plot_info: {plot_info}"
|
|
|
|
)
|
|
|
|
else:
|
|
|
|
self.harvester.log.error(f"Exception fetching qualities for {filename}. {e}")
|
|
|
|
self.harvester.log.error(
|
|
|
|
f"File: {filename} Plot ID: {plot_id.hex()}, challenge: {sp_challenge_hash}, "
|
|
|
|
f"plot_info: {plot_info}"
|
|
|
|
)
|
|
|
|
return []
|
2021-01-14 01:27:30 +03:00
|
|
|
except Exception as e:
|
2021-02-17 15:53:53 +03:00
|
|
|
self.harvester.log.error(f"Error using prover object {e}")
|
2021-03-26 11:40:32 +03:00
|
|
|
self.harvester.log.error(
|
2021-04-27 09:22:44 +03:00
|
|
|
f"File: {filename} Plot ID: {plot_id.hex()}, "
|
|
|
|
f"challenge: {sp_challenge_hash}, plot_info: {plot_info}"
|
2021-03-26 11:40:32 +03:00
|
|
|
)
|
2021-02-17 15:53:53 +03:00
|
|
|
return []
|
2021-01-15 01:31:29 +03:00
|
|
|
|
|
|
|
responses: List[Tuple[bytes32, ProofOfSpace]] = []
|
|
|
|
if quality_strings is not None:
|
Pools mainnet (#7047)
* 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 a82dcb712a6a97b8789b17c98cac8eafaffe90f5.
* 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 23a1e688c5fb4f72983fd896d4933336a365fe38, reversing
changes made to a850246c6f4de4d2eb65c4ac1d6023431f3ba7e9.
* Revert "Revert "Merge""
This reverts commit 680331859f5dc404cca9c2ff8f4a61df374db125.
* 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 98124427241b8a268fbab43ac116887c89e9974f.
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>
2021-06-30 00:21:25 +03:00
|
|
|
difficulty = new_challenge.difficulty
|
|
|
|
sub_slot_iters = new_challenge.sub_slot_iters
|
|
|
|
if plot_info.pool_contract_puzzle_hash is not None:
|
|
|
|
# If we are pooling, override the difficulty and sub slot iters with the pool threshold info.
|
|
|
|
# This will mean more proofs actually get found, but they are only submitted to the pool,
|
|
|
|
# not the blockchain
|
|
|
|
for pool_difficulty in new_challenge.pool_difficulties:
|
|
|
|
if pool_difficulty.pool_contract_puzzle_hash == plot_info.pool_contract_puzzle_hash:
|
|
|
|
difficulty = pool_difficulty.difficulty
|
|
|
|
sub_slot_iters = pool_difficulty.sub_slot_iters
|
|
|
|
|
2021-01-15 01:31:29 +03:00
|
|
|
# Found proofs of space (on average 1 is expected per plot)
|
|
|
|
for index, quality_str in enumerate(quality_strings):
|
|
|
|
required_iters: uint64 = calculate_iterations_quality(
|
2021-02-18 20:00:25 +03:00
|
|
|
self.harvester.constants.DIFFICULTY_CONSTANT_FACTOR,
|
2021-01-15 01:31:29 +03:00
|
|
|
quality_str,
|
|
|
|
plot_info.prover.get_size(),
|
Pools mainnet (#7047)
* 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 a82dcb712a6a97b8789b17c98cac8eafaffe90f5.
* 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 23a1e688c5fb4f72983fd896d4933336a365fe38, reversing
changes made to a850246c6f4de4d2eb65c4ac1d6023431f3ba7e9.
* Revert "Revert "Merge""
This reverts commit 680331859f5dc404cca9c2ff8f4a61df374db125.
* 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 98124427241b8a268fbab43ac116887c89e9974f.
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>
2021-06-30 00:21:25 +03:00
|
|
|
difficulty,
|
2021-01-15 01:31:29 +03:00
|
|
|
new_challenge.sp_hash,
|
|
|
|
)
|
Pools mainnet (#7047)
* 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 a82dcb712a6a97b8789b17c98cac8eafaffe90f5.
* 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 23a1e688c5fb4f72983fd896d4933336a365fe38, reversing
changes made to a850246c6f4de4d2eb65c4ac1d6023431f3ba7e9.
* Revert "Revert "Merge""
This reverts commit 680331859f5dc404cca9c2ff8f4a61df374db125.
* 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 98124427241b8a268fbab43ac116887c89e9974f.
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>
2021-06-30 00:21:25 +03:00
|
|
|
sp_interval_iters = calculate_sp_interval_iters(self.harvester.constants, sub_slot_iters)
|
2021-01-15 01:31:29 +03:00
|
|
|
if required_iters < sp_interval_iters:
|
|
|
|
# Found a very good proof of space! will fetch the whole proof from disk,
|
|
|
|
# then send to farmer
|
|
|
|
try:
|
2021-07-21 20:37:07 +03:00
|
|
|
proof_xs = plot_info.prover.get_full_proof(
|
|
|
|
sp_challenge_hash, index, self.harvester.parallel_read
|
|
|
|
)
|
2023-07-13 00:49:15 +03:00
|
|
|
except RuntimeError as e:
|
|
|
|
if str(e) == "GRResult_NoProof received":
|
|
|
|
self.harvester.log.info(
|
|
|
|
f"Proof dropped due to line point compression for {filename}"
|
|
|
|
)
|
|
|
|
self.harvester.log.info(
|
|
|
|
f"File: {filename} Plot ID: {plot_id.hex()}, challenge: {sp_challenge_hash}, "
|
|
|
|
f"plot_info: {plot_info}"
|
|
|
|
)
|
2023-08-17 02:40:29 +03:00
|
|
|
elif str(e) == "Timeout waiting for context queue.":
|
|
|
|
self.harvester.log.warning(
|
|
|
|
f"No decompressor available. Cancelling full proof retrieving for {filename}"
|
|
|
|
)
|
|
|
|
self.harvester.log.warning(
|
|
|
|
f"File: {filename} Plot ID: {plot_id.hex()}, challenge: {sp_challenge_hash}, "
|
|
|
|
f"plot_info: {plot_info}"
|
2023-07-13 00:49:15 +03:00
|
|
|
)
|
|
|
|
else:
|
|
|
|
self.harvester.log.error(f"Exception fetching full proof for {filename}. {e}")
|
|
|
|
self.harvester.log.error(
|
|
|
|
f"File: {filename} Plot ID: {plot_id.hex()}, challenge: {sp_challenge_hash}, "
|
|
|
|
f"plot_info: {plot_info}"
|
|
|
|
)
|
|
|
|
continue
|
2021-03-26 11:40:32 +03:00
|
|
|
except Exception as e:
|
|
|
|
self.harvester.log.error(f"Exception fetching full proof for {filename}. {e}")
|
|
|
|
self.harvester.log.error(
|
2021-04-27 09:22:44 +03:00
|
|
|
f"File: {filename} Plot ID: {plot_id.hex()}, challenge: {sp_challenge_hash}, "
|
2021-03-26 11:40:32 +03:00
|
|
|
f"plot_info: {plot_info}"
|
|
|
|
)
|
2021-01-15 01:31:29 +03:00
|
|
|
continue
|
|
|
|
|
|
|
|
responses.append(
|
|
|
|
(
|
|
|
|
quality_str,
|
|
|
|
ProofOfSpace(
|
|
|
|
sp_challenge_hash,
|
|
|
|
plot_info.pool_public_key,
|
2021-02-16 12:15:24 +03:00
|
|
|
plot_info.pool_contract_puzzle_hash,
|
2022-01-14 04:58:25 +03:00
|
|
|
plot_info.plot_public_key,
|
2021-01-15 01:31:29 +03:00
|
|
|
uint8(plot_info.prover.get_size()),
|
|
|
|
proof_xs,
|
|
|
|
),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
return responses
|
|
|
|
except Exception as e:
|
|
|
|
self.harvester.log.error(f"Unknown error: {e}")
|
|
|
|
return []
|
2020-11-26 09:22:13 +03:00
|
|
|
|
2021-05-01 20:16:19 +03:00
|
|
|
async def lookup_challenge(
|
|
|
|
filename: Path, plot_info: PlotInfo
|
|
|
|
) -> Tuple[Path, List[harvester_protocol.NewProofOfSpace]]:
|
2020-11-26 09:22:13 +03:00
|
|
|
# Executes a DiskProverLookup in a thread pool, and returns responses
|
|
|
|
all_responses: List[harvester_protocol.NewProofOfSpace] = []
|
2022-09-22 06:49:01 +03:00
|
|
|
if self.harvester._shut_down:
|
2021-05-01 20:16:19 +03:00
|
|
|
return filename, []
|
2020-12-03 20:13:27 +03:00
|
|
|
proofs_of_space_and_q: List[Tuple[bytes32, ProofOfSpace]] = await loop.run_in_executor(
|
2020-12-03 16:49:14 +03:00
|
|
|
self.harvester.executor, blocking_lookup, filename, plot_info
|
2020-11-26 09:22:13 +03:00
|
|
|
)
|
2020-12-03 20:13:27 +03:00
|
|
|
for quality_str, proof_of_space in proofs_of_space_and_q:
|
2020-11-26 09:22:13 +03:00
|
|
|
all_responses.append(
|
|
|
|
harvester_protocol.NewProofOfSpace(
|
2020-12-03 16:49:14 +03:00
|
|
|
new_challenge.challenge_hash,
|
|
|
|
new_challenge.sp_hash,
|
2020-12-03 20:13:27 +03:00
|
|
|
quality_str.hex() + str(filename.resolve()),
|
2020-12-03 16:49:14 +03:00
|
|
|
proof_of_space,
|
|
|
|
new_challenge.signage_point_index,
|
2020-11-26 09:22:13 +03:00
|
|
|
)
|
2020-10-16 04:03:46 +03:00
|
|
|
)
|
2021-05-01 20:16:19 +03:00
|
|
|
return filename, all_responses
|
2020-11-26 09:22:13 +03:00
|
|
|
|
|
|
|
awaitables = []
|
2021-02-03 07:29:16 +03:00
|
|
|
passed = 0
|
|
|
|
total = 0
|
2021-08-09 20:25:15 +03:00
|
|
|
with self.harvester.plot_manager:
|
2022-09-29 22:53:06 +03:00
|
|
|
self.harvester.log.debug("new_signage_point_harvester lock acquired")
|
2021-08-09 20:25:15 +03:00
|
|
|
for try_plot_filename, try_plot_info in self.harvester.plot_manager.plots.items():
|
2022-01-24 08:49:11 +03:00
|
|
|
# Passes the plot filter (does not check sp filter yet though, since we have not reached sp)
|
|
|
|
# This is being executed at the beginning of the slot
|
|
|
|
total += 1
|
2022-11-17 22:46:22 +03:00
|
|
|
if passes_plot_filter(
|
2023-07-12 18:26:23 +03:00
|
|
|
new_challenge.filter_prefix_bits,
|
2022-01-24 08:49:11 +03:00
|
|
|
try_plot_info.prover.get_id(),
|
|
|
|
new_challenge.challenge_hash,
|
|
|
|
new_challenge.sp_hash,
|
|
|
|
):
|
|
|
|
passed += 1
|
|
|
|
awaitables.append(lookup_challenge(try_plot_filename, try_plot_info))
|
2022-09-29 22:53:06 +03:00
|
|
|
self.harvester.log.debug(f"new_signage_point_harvester {passed} plots passed the plot filter")
|
2020-11-26 09:22:13 +03:00
|
|
|
|
|
|
|
# Concurrently executes all lookups on disk, to take advantage of multiple disk parallelism
|
2023-07-14 22:23:34 +03:00
|
|
|
time_taken = time.time() - start
|
2020-11-26 09:22:13 +03:00
|
|
|
total_proofs_found = 0
|
2021-05-01 20:16:19 +03:00
|
|
|
for filename_sublist_awaitable in asyncio.as_completed(awaitables):
|
|
|
|
filename, sublist = await filename_sublist_awaitable
|
|
|
|
time_taken = time.time() - start
|
2023-08-18 02:37:18 +03:00
|
|
|
if time_taken > 8:
|
2021-05-01 20:16:19 +03:00
|
|
|
self.harvester.log.warning(
|
2023-08-18 02:37:18 +03:00
|
|
|
f"Looking up qualities on {filename} took: {time_taken}. This should be below 8 seconds"
|
2023-07-06 23:38:26 +03:00
|
|
|
f" to minimize risk of losing rewards."
|
2021-05-01 20:16:19 +03:00
|
|
|
)
|
|
|
|
else:
|
|
|
|
pass
|
2023-07-06 23:38:26 +03:00
|
|
|
# self.harvester.log.info(f"Looking up qualities on {filename} took: {time_taken}")
|
2021-05-01 20:16:19 +03:00
|
|
|
for response in sublist:
|
2020-11-26 09:22:13 +03:00
|
|
|
total_proofs_found += 1
|
2021-02-09 10:14:37 +03:00
|
|
|
msg = make_msg(ProtocolMessageTypes.new_proof_of_space, response)
|
2020-11-26 09:22:13 +03:00
|
|
|
await peer.send_message(msg)
|
2021-02-03 07:29:16 +03:00
|
|
|
|
|
|
|
now = uint64(int(time.time()))
|
2023-07-14 22:23:34 +03:00
|
|
|
|
2021-02-03 07:29:16 +03:00
|
|
|
farming_info = FarmingInfo(
|
|
|
|
new_challenge.challenge_hash,
|
|
|
|
new_challenge.sp_hash,
|
|
|
|
now,
|
|
|
|
uint32(passed),
|
|
|
|
uint32(total_proofs_found),
|
|
|
|
uint32(total),
|
2023-08-29 00:10:00 +03:00
|
|
|
uint64(time_taken * 1_000_000), # microseconds
|
2021-02-03 07:29:16 +03:00
|
|
|
)
|
2021-02-09 10:14:37 +03:00
|
|
|
pass_msg = make_msg(ProtocolMessageTypes.farming_info, farming_info)
|
2021-02-03 07:29:16 +03:00
|
|
|
await peer.send_message(pass_msg)
|
2023-07-14 22:23:34 +03:00
|
|
|
|
2020-11-26 09:22:13 +03:00
|
|
|
self.harvester.log.info(
|
|
|
|
f"{len(awaitables)} plots were eligible for farming {new_challenge.challenge_hash.hex()[:10]}..."
|
2023-07-14 22:23:34 +03:00
|
|
|
f" Found {total_proofs_found} proofs. Time: {time_taken:.5f} s. "
|
2021-08-09 20:25:15 +03:00
|
|
|
f"Total {self.harvester.plot_manager.plot_count()} plots"
|
2020-10-16 04:03:46 +03:00
|
|
|
)
|
2022-04-22 20:53:03 +03:00
|
|
|
self.harvester.state_changed(
|
|
|
|
"farming_info",
|
|
|
|
{
|
|
|
|
"challenge_hash": new_challenge.challenge_hash.hex(),
|
|
|
|
"total_plots": self.harvester.plot_manager.plot_count(),
|
|
|
|
"found_proofs": total_proofs_found,
|
|
|
|
"eligible_plots": len(awaitables),
|
2023-07-14 22:23:34 +03:00
|
|
|
"time": time_taken,
|
2022-04-22 20:53:03 +03:00
|
|
|
},
|
|
|
|
)
|
2020-10-16 04:03:46 +03:00
|
|
|
|
2023-07-28 22:48:32 +03:00
|
|
|
@api_request(reply_types=[ProtocolMessageTypes.respond_signatures])
|
2023-02-28 20:42:58 +03:00
|
|
|
async def request_signatures(self, request: harvester_protocol.RequestSignatures) -> Optional[Message]:
|
2020-10-16 04:03:46 +03:00
|
|
|
"""
|
|
|
|
The farmer requests a signature on the header hash, for one of the proofs that we found.
|
|
|
|
A signature is created on the header hash using the harvester private key. This can also
|
|
|
|
be used for pooling.
|
|
|
|
"""
|
2020-12-03 20:13:27 +03:00
|
|
|
plot_filename = Path(request.plot_identifier[64:]).resolve()
|
2021-08-09 20:25:15 +03:00
|
|
|
with self.harvester.plot_manager:
|
|
|
|
try:
|
|
|
|
plot_info = self.harvester.plot_manager.plots[plot_filename]
|
|
|
|
except KeyError:
|
|
|
|
self.harvester.log.warning(f"KeyError plot {plot_filename} does not exist.")
|
|
|
|
return None
|
2020-10-16 04:03:46 +03:00
|
|
|
|
2021-08-09 20:25:15 +03:00
|
|
|
# Look up local_sk from plot to save locked memory
|
|
|
|
(
|
|
|
|
pool_public_key_or_puzzle_hash,
|
|
|
|
farmer_public_key,
|
|
|
|
local_master_sk,
|
|
|
|
) = parse_plot_info(plot_info.prover.get_memo())
|
|
|
|
local_sk = master_sk_to_local_sk(local_master_sk)
|
2021-03-03 06:22:02 +03:00
|
|
|
|
Pools mainnet (#7047)
* 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 a82dcb712a6a97b8789b17c98cac8eafaffe90f5.
* 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 23a1e688c5fb4f72983fd896d4933336a365fe38, reversing
changes made to a850246c6f4de4d2eb65c4ac1d6023431f3ba7e9.
* Revert "Revert "Merge""
This reverts commit 680331859f5dc404cca9c2ff8f4a61df374db125.
* 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 98124427241b8a268fbab43ac116887c89e9974f.
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>
2021-06-30 00:21:25 +03:00
|
|
|
if isinstance(pool_public_key_or_puzzle_hash, G1Element):
|
|
|
|
include_taproot = False
|
|
|
|
else:
|
|
|
|
assert isinstance(pool_public_key_or_puzzle_hash, bytes32)
|
|
|
|
include_taproot = True
|
|
|
|
|
2022-11-17 22:46:22 +03:00
|
|
|
agg_pk = generate_plot_public_key(local_sk.get_g1(), farmer_public_key, include_taproot)
|
2020-10-16 04:03:46 +03:00
|
|
|
|
|
|
|
# This is only a partial signature. When combined with the farmer's half, it will
|
|
|
|
# form a complete PrependSignature.
|
2020-11-26 09:22:13 +03:00
|
|
|
message_signatures: List[Tuple[bytes32, G2Element]] = []
|
|
|
|
for message in request.messages:
|
|
|
|
signature: G2Element = AugSchemeMPL.sign(local_sk, message, agg_pk)
|
|
|
|
message_signatures.append((message, signature))
|
|
|
|
|
|
|
|
response: harvester_protocol.RespondSignatures = harvester_protocol.RespondSignatures(
|
|
|
|
request.plot_identifier,
|
2020-12-03 16:49:14 +03:00
|
|
|
request.challenge_hash,
|
2020-11-26 09:22:13 +03:00
|
|
|
request.sp_hash,
|
|
|
|
local_sk.get_g1(),
|
2021-03-03 06:22:02 +03:00
|
|
|
farmer_public_key,
|
2020-11-26 09:22:13 +03:00
|
|
|
message_signatures,
|
2020-10-16 04:03:46 +03:00
|
|
|
)
|
|
|
|
|
2021-02-09 10:14:37 +03:00
|
|
|
return make_msg(ProtocolMessageTypes.respond_signatures, response)
|
Pools mainnet (#7047)
* 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 a82dcb712a6a97b8789b17c98cac8eafaffe90f5.
* 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 23a1e688c5fb4f72983fd896d4933336a365fe38, reversing
changes made to a850246c6f4de4d2eb65c4ac1d6023431f3ba7e9.
* Revert "Revert "Merge""
This reverts commit 680331859f5dc404cca9c2ff8f4a61df374db125.
* 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 98124427241b8a268fbab43ac116887c89e9974f.
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>
2021-06-30 00:21:25 +03:00
|
|
|
|
2022-10-20 23:10:23 +03:00
|
|
|
@api_request()
|
2023-02-28 20:42:58 +03:00
|
|
|
async def request_plots(self, _: harvester_protocol.RequestPlots) -> Message:
|
Pools mainnet (#7047)
* 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 a82dcb712a6a97b8789b17c98cac8eafaffe90f5.
* 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 23a1e688c5fb4f72983fd896d4933336a365fe38, reversing
changes made to a850246c6f4de4d2eb65c4ac1d6023431f3ba7e9.
* Revert "Revert "Merge""
This reverts commit 680331859f5dc404cca9c2ff8f4a61df374db125.
* 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 98124427241b8a268fbab43ac116887c89e9974f.
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>
2021-06-30 00:21:25 +03:00
|
|
|
plots_response = []
|
|
|
|
plots, failed_to_open_filenames, no_key_filenames = self.harvester.get_plots()
|
|
|
|
for plot in plots:
|
|
|
|
plots_response.append(
|
|
|
|
Plot(
|
|
|
|
plot["filename"],
|
|
|
|
plot["size"],
|
|
|
|
plot["plot_id"],
|
|
|
|
plot["pool_public_key"],
|
|
|
|
plot["pool_contract_puzzle_hash"],
|
|
|
|
plot["plot_public_key"],
|
|
|
|
plot["file_size"],
|
|
|
|
plot["time_modified"],
|
2023-07-19 00:24:56 +03:00
|
|
|
plot["compression_level"],
|
Pools mainnet (#7047)
* 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 a82dcb712a6a97b8789b17c98cac8eafaffe90f5.
* 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 23a1e688c5fb4f72983fd896d4933336a365fe38, reversing
changes made to a850246c6f4de4d2eb65c4ac1d6023431f3ba7e9.
* Revert "Revert "Merge""
This reverts commit 680331859f5dc404cca9c2ff8f4a61df374db125.
* 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 98124427241b8a268fbab43ac116887c89e9974f.
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>
2021-06-30 00:21:25 +03:00
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
response = harvester_protocol.RespondPlots(plots_response, failed_to_open_filenames, no_key_filenames)
|
|
|
|
return make_msg(ProtocolMessageTypes.respond_plots, response)
|
2022-04-08 03:10:44 +03:00
|
|
|
|
2022-10-20 23:10:23 +03:00
|
|
|
@api_request()
|
2023-02-28 20:42:58 +03:00
|
|
|
async def plot_sync_response(self, response: PlotSyncResponse) -> None:
|
2022-04-08 03:10:44 +03:00
|
|
|
self.harvester.plot_sync_sender.set_response(response)
|