Përmbajtje:
Video: ESP8266 Minator Bitcoin: 3 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Me çmimin e Bitcoin që vazhdon të rritet dhe me një çift të ESP8266 gjithmonë të kyçur, por duke mos bërë shumë, unë mendova pse të mos provoja dhe të zbatoja një Minator Solo Bitcoin. Pas pak eksperimentesh mora ESP8266 deri në 1200 has hash/sek dhe në dhjetor 2017 rrjeti Bitcoin po performonte rreth 12, 000, 000 tera hash në sekondë (mund të kontrolloni blockchaininfo për numrat e fundit).
Në bazë të atyre numrave ne do të kishim një shans 1 në 1e16 për të nxjerrë me sukses një bllok çdo dhjetë minuta ku një bllok aktualisht vlen 212,000 dollarë. Sigurisht që është shumë si të blesh një biletë loto, vetëm me një shans shumë më të vogël për të fituar, por ju e dini thënien e vjetër, dikush duhet ta fitojë atë. Me të dy projektet Gate Mate dhe Super Squirter ESP8266 shumicën e kohës ata nuk janë duke bërë asnjë punë, ata janë thjesht të kyçur dhe presin për kërkesat ose inputet, kështu që pse të mos i vendosni ato dhe ndoshta të fitoni ndonjë monedhë. Hapi i parë ishte të provosh dhe të kuptosh nëse ishte madje e mundur të kryesh një SHA256 të dyfishtë në Blockheader në një ESP8266. Në botën e Bitcoin, 'hash' është në fakt një SHA256 i dyfishtë, por ne thjesht do t'i referohemi atij si hash. Gjithsesi, pas një kërkimi të vogël në Google, gjeta këto dy faqe të cilat siguronin të gjitha informacionet e nevojshme për të marrë hashing.
1. Algoritmi i Block Hashing
2. Minierat e Bitcoin në mënyrën më të vështirë: algoritmet, protokollet dhe bajtët
Vlen të përmendet se protokolli i punës, siç është detajuar në lidhjet e mësipërme, është zhvlerësuar. It'sshtë zëvendësuar me protokollin getblocktemplate i cili e bën pak më të komplikuar ndërtimin e një header bllok, veçanërisht ju duhet të ndërtoni rrënjën tuaj merkle. Për të gjitha gjërat e zymta, shikoni wiki getblocktemplate.
Hapi 1: Algoritmi
Le të hyjmë menjëherë, kodi ESP8266 është në repon ESP8266BitcoinMiner GitHub. Unë nuk do të rishikoj të gjithë informacionin nga lidhjet e mësipërme, por përkundrazi thjesht do të theksoj pikat kryesore.
char header_hex = "0100000081cd02ab7e569e8bcd9317e2fe99f2de44d49ab2b8851ba4a308000000000000e320b6c2fffc8d750423db8b1eb942ae710e951ed797f7affc8892b0f1fc122bc7f5d74df2b9441a42a14695";
char header_hex është titulli i bllokut dhe është ndërtuar nga gjashtë fusha, Version, hashPrevBlock, hashMerkleRoot, Time, Bits dhe Nonce të gjitha të bashkuara së bashku si vlera të vogla endiane në shënimin gjashtëkëndësh. Kjo sapo u kopjua nga lidhja e mësipërme, por në një minator aktual plotësisht të plotë ju do të merrni secilën nga ato fusha në një objekt json dhe më pas do të duhet të zgjidhni endianitetin dhe ta vendosni atë së bashku në fluturim çdo 10 minuta.
uint8_t *hek_decode (const char *in, size_t len, uint8_t *out) {
pa shenjë int i, mg, ng, rg; për (mg = 0, i = 0; i '9'? në - 'a' + 10: në - '0'; rg = në [i + 1]> '9'? në [i+1] - 'a'+10: në [i+1] - '0'; jashtë [mg] = (ng << 4) | rg;} kthehu jashtë;}
hex_decode merr vargun header_hex, i cili përmban karaktere ascii heksadecimal dhe mbush popullatën e hashbytes uint8_t [80] me vlerat e tyre përkatëse të bajtit gati për hasher SHA256.
void hash () {
dexode hex (header_hex, strlen (header_hex), hashbytes); fillimi i gjatë i panënshkruar = mikros (); hasher.doUpdate (hashbytes, sizeof (hashbytes)); byte hash [SHA256_SIZE]; hasher.doFinal (hash); hashagain.doUpdate (hash, sizeof (hash)); byte hash2 [SHA256_SIZE]; hashagain.doFinal (hash2); i panënshkruar me fund të gjatë = mikros (); delta e gjatë e panënshkruar = përfundoi - fillimi; Serial.println (delta); Serial.print ("Big Endian:"); për (byte i = 32; i> 0; i-) {if (hash2 [i-1] <0x10) {Serial.print ('0'); } Serial.print (hash2 [i-1], HEX); } Serial.println (); Serial.print ("Endiani i Vogël:"); për (byte i = 0; i <SHA256_SIZE; i ++) {if (hash2 <0x10) {Serial.print ('0'); } Serial.print (hash2 , HEX); }}
hash thjesht i hash hasbytes dy herë (SHA256 të dyfishtë), printon lidhjet e përdorimit që u deshën dhe printon hashin rezultues si një endian të madh dhe një endian të vogël. Nëse hashet do të ishin të futura në vetëm një hasher SHA256, ndoshta do të ishte pak më e shpejtë, por gjithsesi me kodin e mësipërm duhen 832 sekonda përdorimi për të kryer hash -in e dyfishtë dhe ju mund të shihni nga pamja e ekranit që marrim hash -in e duhur.
Hapi 2: Goditja në një mur dhe një bllok vërtet i madh
Pra, nëse duhen 832 lidhje përdorimi për të bërë një hash, ne mund të kryejmë 1 /0.000834 = 1201 hashes /sek.
Vetëm për të qenë të qartë ne morëm informacionin nga blloku #125552 ku e njihnim nonce, ai tashmë është minuar dhe e përdorim atë informacion si një rast testimi për t'u siguruar që mund të marrim të njëjtin hash me ESP8266. Pra, një herë një fitim me një minator të mishit plotësisht ju do të merrni rastësisht një supozim për nonce, hash blockheader me të dhe pastaj krahasoni rezultatin me vështirësinë për atë bllok. Nëse hash plotëson vështirësinë, atëherë i paraqitet rrjetit për verifikim.
Ok pra është e mrekullueshme që ne mund të kryejmë hash, sigurisht që norma është e tmerrshme, por kur e shikoni atë si llotari një supozim është një supozim. Këtu është, por, pas një inspektimi më të afërt, së shpejti bëhet e qartë që ju duhet të drejtoni një nyje të plotë për të qenë në gjendje të komunikoni me rrjetin, diçka e qartë kur ndaloni dhe mendoni se çfarë është miniera në të vërtetë.
Pra, nëse shikoni diagramin mund të shihni se demoni i bitcoin i cili është pjesë e bërthamës së bitcoin kujdeset për komunikimin midis rrjetit dhe minatorit. Çfarë do të thotë kjo me të vërtetë është se ju duhet të drejtoni bërthamën Bitcoin në një server në mënyrë që ESP8266 të marrë një bllokues të ri çdo 10 minuta dhe më pas të jetë në gjendje të paraqitet përsëri në rrjet.
Unë nuk e kam provuar, por duket se do të duhej të sinkronizosh të gjithë blockchain -in në rreth 130 Gigs para se të komunikonte siç duhet me rrjetin, në wiki ata përmendin hapa të caktuar që duhet të përfundojnë para se të jetë i disponueshëm i gjithë funksionaliteti, pra mjaft i sigurt kjo është ajo që ata nënkuptojnë.
Kështu që më tërhoqi atje, nga pikëpamja e hulumtimit ishte gjithçka shumë interesante dhe ishte shumë mirë të shihje ESP8266 -in e vogël të ketë hash rastin e provës, por praktikisht nuk shoh shumë njerëz që shkarkojnë bërthamën, duke sinkronizuar të gjithë blockchain, duke mbajtur gjithçka të përditësuar, duke vazhduar me çështjet e sigurisë të gjitha për një shans 1 në 1e16 për të fituar bllokun. Një urë për larg për mua.
Që nga fillimi e dija se shkalla e hash -it do të ishte e tmerrshme, por kurioziteti më bëri më të mirë dhe më duhej ta lëshoja. Në vend të minierave solo mund të ketë një pishinë minierash që mund të lidhet drejtpërdrejt nga ESP8266 pa një përpjekje monumentale ose mund të ketë një kriptovalutë tjetër që është më e përshtatshme. Nëse gjeni njërën ose tjetrën, ju lutem më tregoni.
Hapi 3: Referencat
1. Depoja ESP8266 Bitcoin Miner GitHub
2. Depoja ESP8266 Crypto GitHub
3. Minierat e Bitcoin në rrugën e vështirë: algoritmet, protokollet dhe bajtët
4. Algoritmi i Block Hashing
5. Blloku 125552
Recommended:
MERRNI BITCOIN ÇMIMI LIVE TTGO ESP32: 10 hapa
MERRNI ÇMIMIN LIVE BITCOIN TTGO ESP32: Në këtë tutorial do të mësojmë se si të merrni një çmim aktual të Bitcoin në USD dhe EUR duke përdorur një TTGO ESP32 dhe Visuino. Shikoni videon. (Skedari i ri i përditësuar për Shkarkim më poshtë!)
Bitcoin Ticker Me Grafik: 8 Hapa
Bitcoin Ticker With Graph: E bëra këtë bazuar në një projekt për një shënues çmimesh BTC, i cili merr informacion mbi çmimin nga coinmarketcap.com i shkruar fillimisht nga Brian Lough. Ai përdori ESP8266, i cili është një bord i pajtueshëm me Arduino që vjen me WiFi të integruar. Siç e përshkruan ai
Crypto e ngjashme me Bitcoin që funksionon në Raspberry Pi: 5 hapa
Crypto i ngjashëm me Bitcoin në Raspberry Pi: Udhëzime për drejtimin e një nyje. Sistemi Operativ US-OS është bërë nga raspbian që drejton paketën us-cryptoplatform. Ju nuk keni pse të kërkoni leje për t'u bashkuar. Vetëm ndiqni këto udhëzime të thjeshta dhe drejtoni një nyje që fiton kriptomonedhë çdo minutë
Vizualizoni fitimin dhe humbjen tuaj të Bitcoin me Arduino & Python: 6 hapa
Vizualizoni fitimin dhe humbjen tuaj të Bitcoin me Arduino & Python: Ideja themelore Personalisht unë jam një investitor i monedhës kripto. Por unë gjithashtu kam një ngarkesë të madhe pune për të marrë pjesë. Kështu që unë nuk jam në gjendje të vazhdoj të përcjell çmimin e bitcoin si 10 herë në minutë. Sidoqoftë, unë ende dua të di nëse fitoj apo humb para. Kështu,
Rekt-O-Matic Turbo S: Single Board Ticker Bitcoin: 12 hapa
Rekt-O-Matic Turbo S: Single Board Ticker Bitcoin: A e keni humbur rritjen brenda natës të çmimit të Bitcoin nga $ 7500 në $ 10300 më 25 tetor 2019? Epo bëra. Kjo gjë ndodh në botën e kriptove. Ajo që ju nevojitet njerëz është theRekt-O-Matic Turbo S Ky është një shënues çmimi Bitcoin me një OLED të bukur