Duinocoinbrytning med ESP8266

Utan dator: Hur man utvinner Duinocoin (DUCO) på en ESP8266 (ESP-01 & ESP-01s)

Duinocoinen (DUCO) kan utvinnas inte bara på Arduino UNO, utan även på olika Espressif ESP8266-kort. Tack vare det integrerade WLAN behöver korten bara en strömförsörjning och tillgång till en WiFi AccessPoint, men ingen dator som bryggdator.

Det billigaste sättet att utvinna Duinocoin (DOCU) är förmodligen med en ESP8266-baserad mikrokontroller. När ESP8266 väl är programmerad behöver den bara en 3,3 V strömförsörjning tack vare det integrerade WLAN - och så är den igång.

Översikt

För att bryta Duinocoin (DUCO) med en ESP8266 (även ESP01 och ESP01s) behöver du följande:

  1. en Duinocoin-Wallet (onlinekonto).
  2. En dator med Windows, GNU/Linux eller Mac OS X och Python 3.x.
  3. en fungerande Arduino IDE inklusive ESP8266-biblioteken.
  4. Duinocoin-programvaran (från Github)
  5. en 3,3 volt strömförsörjning och WLAN.

Förberedelserna kan göras på ungefär en halvtimme. Med den här installationen och en enda ESP8266 kan du sedan bryta omkring 4-8 DUCO per dag.

Vad är skillnaden mellan en ESP8266 och en Arduino UNO?

ESP8266 är betydligt mindre och billigare än en original Arduino UNO och Arduino-klon. Till och med billiga Arduino Pro Mini (utan USB-port) kan knappast köpas för mindre än 5 euro i Tyskland - ESP-01 kan däremot köpas för cirka 1,90 euro per styck.

ESP8266

ESP8266 är betydligt snabbare än ATMEGA328P i Arduino UNO. En ESP8266 arbetar vid 80 eller 160 MHz, vilket är fem till tio gånger snabbare än ATMEGA328P i Arduino UNO, som arbetar vid 16 MHz. När det gäller beräkningskraft slår ESP8266 ATMEGA328P med en faktor 37 för DUCO-S1-algoritmen: 10 kH/s för ESP8266 jämfört med 268 H/s för ATMEGA328P.

Eftersom Duinocoin använder Kolka-systemet för att belöna långsamma system mer än snabba system, återstår tyvärr ingenting av den extra hastigheten i DUCO-plånboken. Arduino UNO skapar cirka 8 DUCO per dag, ESP8266 skapar mindre DUCO: i genomsnitt endast 6-7 per dag.

ESP8266-kort har dock en fördel jämfört med Arduino UNO och liknande, eftersom de inte behöver AVR_Miner.py, som körs på en dator och förmedlar mellan Arduino UNO och DUCO-servrarna. ESP8266:erna levereras med all kommunikationsprogramvara och ansluter oberoende via WLAN till DUCO-servrarna. En 3,3 V strömförsörjning (eller 5 V via USB) är därför tillräcklig för att driva en ESP8266, och den kan komma från en solcell i kombination med en powerbank.

Förresten: Vad är skillnaden mellan en ESP-01 och en ESP-01s? ESP-01 är den äldre versionen och kommer vanligtvis på ett svart bräde, ESP-01s ofta på ett blått - men jag har också ESP-01s på svarta brädor. ESP-01 har 512 kByte flash, medan ESP-01s har 1 MByte. En ESP-01 har en röd lysdiod och en blå lysdiod på TX, ESP-01s har ingen lysdiod och en blå lysdiod på GPIO2 (låg = på!). I praktiken är andra skillnader märkbara, t.ex. i hanteringen av djupsömningsläget. Personligen har jag färre problem med projekt som använder ESP-01 och kan vanligtvis klara mig utan ESP-01:s extra flashminne.

1. skapa en Duinocoin-plånbok på projektsidan

För att kunna lagra Duinocoin (DUCO) någonstans behöver du en plånbok. Detta hanteras online på Duinocoin. Den nya plånboken skapas på https://wallet.duinocoin.com/register.html.

Skapa en ny plånbok

Skapa en ny plånbok (konto) på wallet.duinocoin.com.

2. Dator med Windows, GNU/Linux eller Mac OS X och Python 3.x.

Den minimala gruvprogramvaran för PC kräver endast en Python 3-tolk. Gör följande för att kontrollera om Python 3 är tillgängligt:

  • GNU/Linux: Öppna terminalen via Ctrl-Alt-T (om nödvändigt, använd Ctrl-Alt-F2, tillbaka med Ctrl-Alt-F7).
  • Windows: Öppna Powershell via Win+R och "powershell".
  • Mac OS**: Finder > Program > Verktyg > Terminal

Ange följande i prompten:

python --version

De två minustecknen är viktiga (utom för Mac OS X). Om "python" inte hittas kan du försöka med "python3 -- version", då är versionen hårdkodad. Resultatet bör se ut ungefär så här:

mipl@z600:~$ python3 --version
    Python 3.9.2

Den här maskinen (en HP Z600-arbetsstation med Devuan GNU/Linux 3.0 "Chimaera" utan systemd) kör uppenbarligen Python 3.9.2.

Hur du installerar Python3 på din dator beskrivs i detalj i Installation av Python3 på GNU/Linux PC.

3. Installera Arduino IDE (utvecklingsmiljö) och ESP8266-bibliotek

Det enklaste sättet att programmera **miningprogramvaran på en ESP8266-mikrokontroller är att använda Arduino IDE (utvecklingsmiljö). Den fria och öppna källkodsmjukvaran erbjuds av Arduino-projektet som en gratis nedladdning för Windows, GNU/Linux och Mac OS X.

I en detaljerad artikel visar jag hur du installerar Arduino IDE. Om du vill ha det bekvämare kan du installera Arduino IDE i "portabelt läge" och på så sätt göra dina säkerhetskopior och byten mellan olika mikrokontrollerararkitekturer enklare. En tredje artikel ger tips om de första stegen efter att du installerat Arduino IDE.

Tips: Om du har problem med att komma åt ESP8266 via USB på GNU/Linux-datorer måste du justera åtkomsträttigheterna till enhetsfiler (seriella portar, USB) under GNU/Linux.

Installera ESP8266-bibliotek

Arduino IDE är logiskt sett inriktad på AVR-mikrokontroller som Arduino UNO och dess släktingar. Lyckligtvis kan den enkelt utökas. För att kunna programmera ESP8266-kort måste du ge korthanteraren en länk till en JSON-fil som tillhandahålls av Espressif:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Denna URL anges i Arduino IDE under "File / Preferences" i "Additional board manager URLs:". Det bästa sättet att göra detta är att klicka på den lilla fönstersymbolen till höger om inmatningsraden. En miniredaktör öppnas där du kan ange en URL för styrelsens administratör per rad.

Arduino IDE 1.8.19

Med hjälp av ytterligare URL:er för styrelsestyrning kan Arduino IDE även programmera ESP8266 eller andra mikrokontroller.

Så om du använder ESP32 och ESP8266, skriv in följande två rader där:

http://arduino.esp8266.com/stable/package_esp8266com_index.json
https://dl.espressif.com/dl/package_esp32_index.json

Klicka på "Ok" i båda dialogrutorna för att tillämpa ändringarna.

Öppna nu Board Manager och sök efter "ESP" med typinställningen "All". Efter några sekunder visas de två posterna "esp32 - by Espressif Systems" och "esp8266 - by ESP8266 Community", som båda bör installeras.

Arduino IDE 1.8.19

I Board Manager installerar och uppdaterar du de ursprungliga och ytterligare boarddefinitionerna.

Nu kan ESP8266- och ESP32-kort programmeras med Arduino IDE. Det är inte nödvändigt att starta om IDE-programmet... men det skadar inte heller.

4. programvaran Duinocoin

Den officiella standardprogramvaran för Duinocoinbrytning med enskilda mikrokontroller (inga "riggar") tillhandahålls av projektet som källkod. Den senaste versionen finns alltid tillgänglig på Github <https://github.com/revoxhere/duino-coin/releases>`_.

Github Repo av revox

Duinocoinförrådet från revox på Github.

Via "Code / Download ZIP" laddas ZIP-arkivet med den aktuella Duinocoin-koden ner och packas sedan upp.

Kommunikation och gruvdrift sker på ESP8266, så den behöver lämplig programvara. Detta kan genereras direkt från källkoden i katalogen ESP8266_Code och laddas upp till ESP8266-mikrokontrollern som vilket annat projekt som helst (skiss).

Observera: Till skillnad från Arduino UNO-skissen måste du göra justeringar i ESP8266-skissen: Åtminstone WLAN SSID, WLAN-lösenordet och namnet på Duinocoin-plånboken/kontot måste vara korrekt inställda!
const char* SSID     = "MyWLAN";      // WLAN-SSID
const char* PASSWORD = "MyPASS";      // WLAN-Lösenord
const char* USERNAME = "ElJalapeno";  // Namnet på Wallet
const char* MINER_KEY= "geheim";      // Miner-nyckel, valfritt.

Installera ytterligare headerfiler

När du kompilerar kommer du nu att få felmeddelanden eftersom vissa headerfiler inte kan hittas.

  • ArduinoJson från 6.18.3 av Benoit Blenchon (och inte Arduino_JSON!!) måste installeras via bibliotekshanteringen.
  • Om ett fel uppstår med bearssl/bearssl.h, glömdes biblioteket ArduinoBearSSL att installeras via bibliotekshanteringen.
  • Det kan också vara så att mikrokontrollerkorten behöver uppdateras i Arduino IDE, se här under punkt 2.
Gruvdrift med en ESP8266

Mining med en ESP8266 (ESP01), som följs i den seriella monitorn i Arduino IDE.

Lycklig gruvdrift! :)