DUCO: Felmeddelande 'Server Timeout', (host='server.duinocoin.com', port=443)

Vad ska man göra om gruvarbetarna inte kan kontakta Duinocoin-servern?

Om Duinocoin-nätverket är (för) hårt belastat eller om en comedian har startat en ny DDoS-attack kommer gruvarbetarna att ta timeout när de försöker ansluta. Det finns en lösning.

Ibland svarar poolservrarna - av någon anledning - inte på förfrågningar från gruvarbetarna. Å ena sidan är detta irriterande eftersom dina egna gruvarbetare i det ögonblicket inte kan generera en DUCO. Å andra sidan kan det också kosta mycket tid när du felsöker din egen gruvrigg, eftersom det inte alltid är klart till en början om felet ligger i mjukvaran för riggen eller i servrarna.

När PC- eller AVR-minern startar frågar den först server.duinocoin.com efter IP-adressen och porten för en gruvnod via HTTPS. Om servern är överbelastad får inte gruvarbetaren något svar utan får en timeout.

/img/tipps_tricks/Error_I2C-Miner-Timeout.png

Tidout för varaktighet med Duinocoin I²C miner för Raspberry Pi.

Denna timeout var endast 5 sekunder med den äldre gruvprogramvaran och med DuinocoinI2C-Miner for the Raspberry Pi by JK-Rolling - detta är lite för lite när gruvservrarna är upptagna.

Lokalisera problemet

När du startar AVR-I²C-Miner för Raspberry Pi.

python3 AVR_Miner_RPI.py

Den skickar felmeddelanden var 20:e sekund (5 sekunder timeout plus 15 sekunder väntan):

...
21:15:47  net0  Searching for the fastest node to connect to
21:14:52  net0  Error fetching mining node: HTTPSConnectionPool(host='server.duinocoin.com', port=443): Read  timed out. (read timeout=5), retrying in 15s
21:15:07  net0  Searching for the fastest node to connect to
21:15:12  net0  Error fetching mining node: HTTPSConnectionPool(host='server.duinocoin.com', port=443): Max retries exceeded with url: /getPool (Caused by ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 0xb5cbcb70>, 'Connection to server.duinocoin.com timed out. (connect timeout=5)')), retrying in 15s
...

En Duinocoin-minerare hämtar sina anslutningsdata från Duinocoin-huvudservern via en "/getPool"-förfrågan. Du kan även simulera detta i din webbläsare.

https://server.duinocoin.com/getPool

och får som svar till exempel

{"ip":"162.55.103.174","name":"diskos-pool-1","port":6000,"server":"duino-svko-1","success":true}*

Till skillnad från gruvarbetarna väntar webbläsaren mycket längre tills den tar slut. Denna (för) höga belastning på Duinocoin-servern märks vanligtvis genom att sidan "Network stats & explorer" <https://explorer.duinocoin.com/>`_ inte laddas eller bara delvis.

Lösning: Öka timeout

Lösningen i det här fallet är ganska enkel: öka timeouten för frågan i "AVR_Miner.py" eller "AVR_Miner_RPI.py" (jk-rolling) en aning, till exempel från 5 till 30 sekunder enligt nedan:

...
response = requests.get(
   "https://server.duinocoin.com/getPool",
   timeout=30).json()
...

Nu väntar datorn i 30 sekunder på ett svar från gruvservern.

Uppmärksamhet. Detta höga värde blockerar gruvservern! Värdet ska återställas till 5 sekunder så snabbt som möjligt.