* update analyze_blockchain tool to read v2 blockchain databases and introduce option to run all generators in mempool mode. Also update to use the new clvm_rs API
* update gnuplot file for the new output from analyze_blockchain.py
* simplify updating of proofs (when compacting them). This also saves two database lookups before the update
* fixup
* insert or ignore duplicate blocks
* when replacing a weight proof with a compact version, we do so by height. Rather than asking for all blocks at the specific height followed by a linear search for the one with the correct header hash, we can simply lookup the correct header hash and just look up that block. This simplifies the logic by dropping the looping over blocks.
* pass in header_hash to _replace_proof() to avoid the height-to-hash lookup
```
farm/chia-blockchain/chia/wallet/wallet_node.py:1058: RuntimeWarning: coroutine 'WSChiaConnection.close' was never awaited
peer.close(9999)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
```
Prior to this PR the pool plots created by the pool tests were not
removed from the global `BlockTools.expected_plots` if the test failed
which happens here and there because they are flaky. Since the global
`BlockTools` obviously outlives the parameterization of a test (i.e. in
`test_absorb_pooling`) there were many CI runs stucking at:
```
2022-01-30T23:25:54.0633324Z 23:25:54 chia.plotting.manager: ERROR
_refresh_callback raised: with the traceback: Traceback (most recent
call last):
2022-01-30T23:25:54.0634415Z 2022-01-30T23:25:54.063 full_node
chia.plotting.manager : [31mERROR [0m _refresh_callback raised:
with the traceback: Traceback (most recent call last):
2022-01-30T23:25:54.0635521Z File
"/home/runner/work/chia-blockchain/chia-blockchain/chia/plotting/manager.py",
line 281, in _refresh_task
2022-01-30T23:25:54.0636160Z
self._refresh_callback(PlotRefreshEvents.batch_processed, batch_result)
2022-01-30T23:25:54.0636916Z File
"/home/runner/work/chia-blockchain/chia-blockchain/tests/block_tools.py",
line 178, in test_callback
2022-01-30T23:25:54.0682983Z assert update_result.remaining ==
len(self.expected_plots) - self.total_result.processed
2022-01-30T23:25:54.0683833Z File
"/home/runner/work/chia-blockchain/chia-blockchain/chia/plotting/manager.py",
line 281, in _refresh_task
2022-01-30T23:25:54.0684293Z AssertionError
```
And getting canceled after a long time like here after ~40min
https://github.com/Chia-Network/chia-blockchain/runs/5007793256?check_suite_focus=true.
This PR introduces the class `TemporaryPoolPlot` which provides an async
context manager which makes sure plots are created on entry and removed
on exit.
* Send coin_added event to metrics
* Add fingerprint to balance response
* Don't consume the exception by default, but enable for the metrics data usecases
* Pass sync_changed event to metrics
* bare raise
* tests: Drop redundant plot creation in `tests_farmer_harvester_rpc.py`
* tests: Drop redundant class
* tests: Move RPC setup into new `environment` fixture
* tests: Split up the single test `test1`
* trade_store: Migrated the `is_my_offer` property from the serialized
trade_record to a new `is_my_offer` column in the trade_records table.
Rewrote get_trades_between to move the query/sorting into the database.
This supports the presentation of offers in the GUI (two lists sorted by
relevance).
RPC: get_all_offers now accepts options to restrict the listing to
completed offers, my offers, taken offers. Added get_offers_count call
to return a breakdown of the number of offers (my offers, taken offers,
total).
CLI: Updated `chia wallet get_offers` to include options to exclude
created/taken offers, as well as an option to reverse the listing. The
-ia|--include-all option has been renamed -ic|--include-completed to
make sense in the context of the --exclude-[my-offers|taken-offers]
options. The full listing is now output, fixing the issue with hitting
the prior paging cap of 50 records.
* Linter fixes
* Updated trade tests. Fixed reverse sort when ordering offers by relevance.
* Make column spec explicit on insert to better support possible future migrations. If a future migration adds a new column with a default value, inserts/updates made by an older client will fail unless the insert explicitly indicates which columns are being updated. By explicitly listing the columns to update, any unspecified columns will have their default value applied.
* pool_wallet: Deterministic derivation of auth key, and only count poolWallets for indeces
* cli: Use the same limit for cli creation
* farmer: no more auth keys in config
* farmer: handle case of no authentication sk
* farmer: remove async, and fix test
* lint
* test: Add a test for many pool wallets, and user store
* test: Wait for wallet to be synced in test
* wallet: fix startup (no dns servers) and change to server checking of plotnfts
* cli: change to server checking
* tests: fix user store test
* Improve caching
* PR comments
* Remove useless class
* Try to fix test again