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.
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.