* add_missing_files
* lint
* dont error on fail to write
* use resource
* remove prints
* use dl folder and file names
* rearrange loop
* remove redundant str conversion
* dont break on failed upload
* Add plugin_id and healthz endpoints to s3 plugin service
* Add `chia data plugins check` cli
* plugin_id -> plugin_info
* updates based on reviews
* Use gather to run the lookups
* Update chia/data_layer/data_layer.py
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Fix typo
* short_help -> help
---------
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* remove unused run_generator_mempool() function
* move run_generator_unsafe() into the tests, which is the only place it's used
* remove (somewhat meaningless) setup_generator_args() and create_generator_args()
* remove unused GENERATOR_MOD in mempool_check_conditions.py
* remove redundant get_generator() function
* transition analyze-chain.py to use run_block_generator() and drop dependency on GENERATOR_MOD
* fixup type hints in test_rom.py
* fixup type hints in test_compression.py
* fixup type hints in test_generator_types.py
* Added some sanity checks to upload and download
* Add server files path to config
* small fix
* send filenames and not paths now
* minor tweaks
* Update chia/data_layer/s3_plugin_service.py
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* use bytes32.fromhex and other fixes
* set host to "localhost"
---------
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Partially revert 6d09a06
* Include fee amount when selecting XCH coins for offers
* Rename `get_coin_amount` -> `amount_to_select`
* Adjust comment
* No need to create a list first
* Addition logging for datalayer wrt plugins
* some plugin modifications to config and endpoints
* Add entry point and some minor config checking
* Improved config file reading for store_ids
* Changed to upload_bucket and download_url
* Apply suggestions from code review
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Code review suggestions
* uploaders and downloaders are now URLs and this was missed earlier
* Update pyinstaller.spec to include plugin binary
* updates based on code review
* Update chia/data_layer/s3_plugin_service.py
Co-authored-by: Almog De Paz <almogdepaz@gmail.com>
* minor updates
* Add boto3 to setup for s3 plugin
* Add None check
---------
Co-authored-by: Kyle Altendorf <sda@fstab.net>
Co-authored-by: Almog De Paz <almogdepaz@gmail.com>
limit the mempool size used for transactions with short expiration times. This makes it so transactions that expire in the next 15 minutes may not take more than one block worth of cost in the mempool
* Drop unused `List[SubEpochSummary]` return
* Drop unused `SubEpochSummary` return
* Raise in `WalletWeightProofHandler.validate_weight_proof`
* Move validation logs
* Set the new weight proof inside `fetch_and_update_weight_proof`
Which was `fetch_and_validate_the_weight_proof` before.
* Drop `WalletWeightProofHandler._weight_proof_tasks`, just await them
Doesn't seem to make a lot sense to have a list of tasks where we always
just add a task, await it and remove it after. This happens in the long
sync so to parent task will cancel the awaited task anyway.
Testing the install scripts on Linux Mint has very little value and
simply causes longer CI times along with more chances of flaky failure
due to network issues during OS setup.
We are transitioning away from users running the install manually to
more and more encouraging users to use the binary packages and Mint
users can use the Ubuntu DEB package.
This distro is only minimally popular and there is no rationale for
specific testing on Mint as opposed to other distros (Gentoo, etc)
Sometimes, you might get output from CI like this:
```
> Run mypy
chia/wallet/puzzle_drivers.py:107: error: Unused "type: ignore" comment
chia/wallet/puzzles/prefarm/make_prefarm_ph.py:32: error: Unused "type: ignore" comment
tests/wallet/nft_wallet/test_ownership_outer_puzzle.py:24: error: Unused "type: ignore" comment
tests/core/util/test_streamable.py:658: error: Unused "type: ignore" comment
Found 4 errors in 4 files (checked 753 source files)
```
You might be confused, because `pre-commit` ran fine on YOUR machine.
"Why didn't it lint check clean in CI?", I hear you wonder.
Obviously, this has never happened to me. However, just in case you know
someone if has happened to, this one's for you.
Changes CI output only.
<!-- Merging Requirements:
- Please give your PR a title that is release-note friendly
- In order to be merged, you must add the most appropriate category
Label (Added, Changed, Fixed) to your PR
-->
<!-- Explain why this is an improvement (Does this add missing
functionality, improve performance, or reduce complexity?) -->
### Purpose:
<!-- Does this PR introduce a breaking change? -->
### Current Behavior:
### New Behavior:
<!-- As we aim for complete code coverage, please include details
regarding unit, and regression tests -->
### Testing Notes:
<!-- Attach any visual examples, or supporting evidence (attach any
.gif/video/console output below) -->
<!-- Merging Requirements:
- Please give your PR a title that is release-note friendly
- In order to be merged, you must add the most appropriate category
Label (Added, Changed, Fixed) to your PR
-->
<!-- Explain why this is an improvement (Does this add missing
functionality, improve performance, or reduce complexity?) -->
### Purpose:
<!-- Does this PR introduce a breaking change? -->
### Current Behavior:
### New Behavior:
<!-- As we aim for complete code coverage, please include details
regarding unit, and regression tests -->
### Testing Notes:
<!-- Attach any visual examples, or supporting evidence (attach any
.gif/video/console output below) -->
<!-- Merging Requirements:
- Please give your PR a title that is release-note friendly
- In order to be merged, you must add the most appropriate category
Label (Added, Changed, Fixed) to your PR
-->
<!-- Explain why this is an improvement (Does this add missing
functionality, improve performance, or reduce complexity?) -->
### Purpose:
remove dead code so the remaining code is more comprehensible
<!-- Does this PR introduce a breaking change? -->
### Current Behavior:
### New Behavior:
<!-- As we aim for complete code coverage, please include details
regarding unit, and regression tests -->
### Testing Notes:
<!-- Attach any visual examples, or supporting evidence (attach any
.gif/video/console output below) -->
<!-- Merging Requirements:
- Please give your PR a title that is release-note friendly
- In order to be merged, you must add the most appropriate category
Label (Added, Changed, Fixed) to your PR
-->
<!-- Explain why this is an improvement (Does this add missing
functionality, improve performance, or reduce complexity?) -->
### Purpose:
Self connection errors don't need to be `ERROR` level in the log nor do
they need to have tracebacks. This will mostly happen when a node is
unaware of one or more of its own public IPs being used by the network.
Could be IPv4 vs. IPv6, or multiple IPs, or just being behind a NAT.
<!-- Does this PR introduce a breaking change? -->
### Current Behavior:
```python-traceback
2023-03-22T14:00:46.076 full_node full_node_server : ERROR Exception Trying to connect to a peer (PeerInfo(_ip=IPv4Address('<REDACTED>'), _port=58445)) with the same peer_id: <REDACTED>, exception Stack: Traceback (most recent call last):
File "/home/ubuntu/chia-blockchain/chia/server/server.py", line 525, in start_client
raise RuntimeError(f"Trying to connect to a peer ({target_node}) with the same peer_id: {peer_id}")
RuntimeError: Trying to connect to a peer (PeerInfo(_ip=IPv4Address('<REDACTED>'), _port=58445)) with the same peer_id: <REDACTED>
```
### New Behavior:
`INFO` level logging without a traceback
<!-- As we aim for complete code coverage, please include details
regarding unit, and regression tests -->
### Testing Notes:
<!-- Attach any visual examples, or supporting evidence (attach any
.gif/video/console output below) -->
<!-- Merging Requirements:
- Please give your PR a title that is release-note friendly
- In order to be merged, you must add the most appropriate category
Label (Added, Changed, Fixed) to your PR
-->
<!-- Explain why this is an improvement (Does this add missing
functionality, improve performance, or reduce complexity?) -->
### Purpose:
As is this would not close the daemon if a BaseException were raised.
For example `KeyboardInterrupt` or `asyncio.CancelledError` (on 3.8+).
<!-- Does this PR introduce a breaking change? -->
### Current Behavior:
### New Behavior:
<!-- As we aim for complete code coverage, please include details
regarding unit, and regression tests -->
### Testing Notes:
<!-- Attach any visual examples, or supporting evidence (attach any
.gif/video/console output below) -->
<!-- Merging Requirements:
- Please give your PR a title that is release-note friendly
- In order to be merged, you must add the most appropriate category
Label (Added, Changed, Fixed) to your PR
-->
<!-- Explain why this is an improvement (Does this add missing
functionality, improve performance, or reduce complexity?) -->
### Purpose:
Please weigh in on whether this should be applied to the release or
retargeted to main.
The `finally:` clause will already result in `None` being put into the
queue. I expect that the other `None` pushed before the `return` is
unnecessarily doubling this up. I don't know if the double `None` has
any negative effect.
<!-- Does this PR introduce a breaking change? -->
### Current Behavior:
### New Behavior:
<!-- As we aim for complete code coverage, please include details
regarding unit, and regression tests -->
### Testing Notes:
<!-- Attach any visual examples, or supporting evidence (attach any
.gif/video/console output below) -->