silicoin-network / silicoin-blockchain

Silicoin blockchain python implementation (full node, farmer, harvester, timelord, and wallet)
Apache License 2.0
79 stars 28 forks source link

[BUG] Harvester won't work with 6k plots #136

Closed rocketeeer closed 2 years ago

rocketeeer commented 2 years ago

Describe the bug I have two harvesters with identical configs, harv1 has 1700 plots and harv2 has 6000 plots. Harv1 connects to the farmer just fine, Harv2 connects to the farmer but shows up with 0 plots, even after 10+ hours.

Looking in the debug log for Harv2 I found this error:

2021-11-13T09:09:05.479 harvester chia.rpc.rpc_server     : WARNING  Sending data failed. Exception Traceback (most recent call last):
  File "chia/rpc/rpc_server.py", line 69, in _state_changed
  File "aiohttp/client_ws.py", line 150, in send_str
  File "aiohttp/http_websocket.py", line 687, in send
  File "aiohttp/http_websocket.py", line 643, in _send_frame
  File "aiohttp/http_websocket.py", line 660, in _write
ConnectionResetError: Cannot write to closing transport

The only difference between the two harvesters is the number of plots. Both are running v1.1.1, have been initialized using the farmer's certs, and are connecting to the farmer. I am not farming Cactus.

To Reproduce

Steps to reproduce the behavior:

  1. Run a harvester with 6000+ plots
  2. Connect harvester to farmer

Expected behavior Harvester shows up with correct number of plots.

Screenshots

Screenshot from 2021-11-13 13-49-16

Desktop

Farmer -

Harvester1 -

Harvester2 -

Additional context

albertcoady commented 2 years ago

Please restart the harvester and try to load 3000 plots first, then after it show on the farmer, load the other 3000 plots.

rocketeeer commented 2 years ago

I was able to get it working with less than 3000 plots, but I'm not sure what you mean when you say "load the other 3000 plots". I stopped the harvester, updated the config to include the remaining plot directories, and started the harvester with more than 3000 plots - which resulted in 0 plots showing up on the farmer again.

I get inconsistent results when starting the harvester with less than 3000 plots, sometimes they appear as expected but sometimes I get a 0 in the farm summary.

I'm also seeing similar reports from others where harvesters with large numbers of plots are using a lot of resources and response times are blowing out into the 100's of seconds

PrEzi3 commented 2 years ago

@kiote99 have 3000 plots in the pool / config, then run harvester and perform
sit plots add -d PATH to add more plot directories gradually one by one and see what happens and if the harvester recognizes then only small additions.

rocketeeer commented 2 years ago

This kind of worked, I wrote a script to add a new directory (each containing 145 plots) every 10 minutes and let it run over night. The farmer is reporting the harvester has ~4300 out of what should be 6000 plots. The debug log on the harvester shows response times are now up to 1400s.

PrEzi3 commented 2 years ago

@kiote99 Thanks for reporting the behavior back.

@albertcoady It might be related to what I have reported right afterwards (really bad harvester performance observed on low powered devices incl. long loading times and high resource usage): https://github.com/silicoin-network/silicoin-blockchain/issues/137 Seems this issue is really hurting harvesting...