Se elää!

Painoimme Leen kanssa läpi yön Bitfuryn ollessa samaan aikaan yhteydessä Skypen välityksellä. Ensimmäinen piirilevy meni uusiksi, sillä Lee kolvasi chipin vahingossa 0.65mm välistyksellä varustetulle puolelle. Tunnit kuuluivat piinallisen nopeasti. Hikinen yö Taipeissa jatkui. Leen 90-vuotias äiti heräsi ja tarkasteli hymyillen ja kumarrelen touhujamme oven suusta.

Lopulta saimme chipin kiinni testiboardiin, ja koitti hetki syöttää sille jännitettä. Tutkimme siis sirun virrankulutusta lepotilassa. Jännitettä nostamalla transistorit rupesivat avautumaan ja virrankulutus kasvoi. Siru oli siis hengissä ja käyttäytyi juuri niinkuin sen piti!

Ei ohjelmoitu piiri, ei ulkoista kelloa:

0.50V = 0.03A
0.55V = 0.04A
0.60V = 0.06A
0.65V = 0.08A
0.70V = 0.11A
0.75V = 0.15A
0.79V = 0.19A
0.85V = 0.29A
0.90V = 0.40A
0.95V = 0.60A

Bitfury suunnitteli, mallinsi, laski ja lopulta piirsi käsin (ei kirjastosta) erityiset matalan kynnysjännitteen transistorit, jotka rupeavat vuotamaan virtaa hyvin pienellä jännitteellä. Juuri nämä transistorit mahdollistavat matalan käyttöjännitteen ja sitä kautta myös pienemmän tehonkulutuksen.

Tämä on tärkeää pitkäaikaisen kannattavuuden kannalta. Ensialkuun sirua voi käyttää vähän korkeammalla jännitteellä, ja Bitcoin verkon vaikeustason noustessa voi jännitettä tiputtaa, jolloin hyötysuhde paranee huomattavasti. Näin se saa onnelliset ja leppoisat eläkepäivät 🙂

Hello world

Tuli aika kytkeä testiboardi Raspberry Pi:hin. Lee oli tehnyt level-shifter piirin, jolla oli tarkoitus muuntaa 3v3 SPI 1v8 jännitteelle. Saimme kaiken kytkettyä, ja Bitfury otti yhteyden SSH tunnelin yli RasPiin. Johtoviritys Leen jo valmiiksi sotkuisella pöydällä kasvoi entisestään. Bitfury lähetti käskyjä sirulle ja tarkkailimme dataa Leen oskilloskoopilla. Signaali oli heikko. Siru ei vastannut. Virrankulutus ei muuttunut.

Hiki puski otsalle, kun aikaa oli jäljellä enää alle tunti. Yritimme vielä tiputtaa SPI väylän kellotaajuutta, mutta sekään ei auttanut. Tulimme siihen tulokseen, että joko level-shifter oli viallinen, häiriöitä oli liikaa, tai mikä pahinta siru olisi viallinen. Kello löi 8 aamulla ja vedonlyönti oli hävitty. Kiitimme toisiamme hyvästä yrityksestä ja pakkasin tavarani.

Pettymys

Suunnistin laahustaen kohti kämppääni Taipein torien jo täyttyessä ihmisistä. Väsymys ja karvas pettymys epäonnistumisesta nousivat palaksi kurkkuuni. Koetin saada itseäni paremmalle tuulelle. Ehkä chippi saataisiin kuitenkin toimimaan kunnialla, vaikka veto hävittiin. Pääsin kämpille ja menin nukkumaan.

Uusi seikkailu

Ehdin nukkua pari tuntia ja soitin heti herättyäni Bitfurylle. Hänellä oli kiire saada varmuus sirun toimivuudesta tai toimimattomuudesta. Päätimme muuttaa matkasuunnitelmaa. Löysin samana iltana lähtevän ja melko edullisen lennon Kiovaan Moskovan kautta. Hieman lyhyempi lento menisi Bangkokin ja Hollannin kautta, mutta maksoi enemmän. Hetkinen.. Hollannin!!! Muistimme, että Intron niminen kaveri Hollannissa oli valmistuttanut muutaman piirilevyn vartavasten Bitfuryn sirun testausta varten ja saanut levyt juuri pari päivää aiemmin. Näin saisimme kaksi kärpästä yhdellä iskulla! Varasin liput.

Matka Kiovaan

Hyvästelin Taiwanilaiset ystäväni, kerroin kämpän omistajalle, että kämppä vapautuu välittömästi ja lähdin kentälle. Taksikuskin kanssa oli jälleen ongelmia. Aluksi hän ei ymmärtänyt mitään, ja lopulta lähti viemään minua kohti Songshan lentokenttää Taipein keskustan tuntumassa. Onneksi sain kämpän omistajan lähettämään minulle tekstarin jossa luki Taoyuan lentokentän osoite. Ehdin juuri koneeseen.

Teimme välilaskun Bangkokiin, missä meidät juoksutettiin turvatarkastuksen kautta takaisin samalle portille. Nukahdin lopun uupuneena ja heräsin vasta Euroopan yllä.

Amsterdamin lentokentällä minua jostain syystä hermostutti kuin Kolumbiasta tulevaa juppia. Kokenut tullimies huomasi tämän ja ohjasi minut sivuun. Hiki karpaloi otsallani. “Mistä tulet? Mihin olet menossa?” Hän kaivoi laukustani chipit. “Mitäs nämä ovat?!”, hän kysyi äänensävyllä joka pelotti minua. “Chippejä”, vastasin. Hän laittoi ne takaisin laukkuun ja toivotti hyvää matkaa. Riemuisa nauru kaikui sisälläni ja lähdin etsimään Intronin ystävää, jonka kanssa vaihtaisin muutaman chipin piirilevyihin.

Vaihdoimme hetken kuulumisia ja ajatuksia Arletin kanssa, ja hyppäsin Kiovan koneeseen. Koneessa vieressäni istui jenkkiläinen logistiikka-alalla toimiva liikemies, jolle kerroin kaiken Bitcoinista, ja annoin hänelle luettavaksi Bangkokissa käteeni jääneestä Financial Timesista sattumoisin löytyneen kaksisivuisen Bitcoin-artikkelin.

Pitkästä aikaa!

Kävelin passintarkastuksen läpi Borispolin lentokentällä. Vastaantuloaulan oven vierellä seisoi virkapukuisia miehiä ja naisia. Eräs nainen käveli luokseni ja rupesi tenttaamaan: “Mistä tulet? Paljonko sinulla on rahaa?” Vastasin omaavani lähinnä luottokortteja. Käteistä ei ole paljoa jos ollenkaan. Kaivoin jo lompakkoakin taskusta. Rupesin hermoilemaan että olin unohtanut jonkin säädöksen jollekin vaaditulle minimimatkakassalle. “Kymmenentuhatta? Viisituhatta? Tuhat? Viisisataa?” Ilmeisesti varattomuuteni lannisti vetoavan ulkonäköni aiheuttaneen kiinnostuksen ja pääsin jatkamaan matkaa.

Bitfury oli minua ystävänsä kanssa vastassa vastaantuloaulassa. Viime tapaamisestamme kasvokkain oli kulunut jo lähes vuosi. Halasimme ja luovutin sirun luojalleen, joka oli tietenkin todella onnellinen saadessaan sen vihdoin käteensä.

Testaus jatkuu

Bitfuryn laboratorio oli kehittynyt viime näkemästä. 12GHz oskilloskooppi, spektrianalysaattori, tarkkuuslaboratoriovirtalähde, isonäyttöinen mäkki jne. Oli tultu pitkän matkaa siitä vanhasta 14″ Dellin läppäristä, jolla hän suunnitteli FPGA bitstreaminsa. Mikään muu ei miehessä oikeastaan ollutkaan muuttunut. Väsynyt hän tietenkin oli lähes 9 kuukauden työrupeamansa jälkeen.

Bitfury mittasi kaiken hyvin tarkkaan ja tutki piirilevyn ja chipin ominaisuuksia spektrianalysaattorilla ja oskilloskoopilla. Oskilloskoopin tarkkuudesta kertoo jotain se, että sen näytöltä oli luettavissa sen anturin pituus (signaalin heijastus oli 3 nanosekunnin luokkaa).

Ahne siru

Bitfury rupesi ajamaan SHA256 testivektroreita. Aluksi siru ei tuntunut toimivan oikein. Se ei löytänyt yhtäkään sopivaa noncea, vaikka niitä olisi kuulunut näillä vektoreilla löytyä. Hetken mietittyään Bitfury kuitenkin keksi ratkaisun. Huusimme molemmat innoissamme, kun siru vihdoin raportoi löytämiään nonceja! Mutta hetkinen.. noncet olivat vääriä?! Kun odotimme vastausta 08c8c265, saimmekin vastauksen c490a509. Aluksi huolestuimme, mutta sitten Bitfury huomasi vahvan korrelaation ensimmäisten ja viimeisen 16 bitin välillä. ad43857c > 7068c0ad, 301e28a4 > 1e450531, b598026f > 069033b6, 0ae5b4c5 > 69cba40b jne.

Bitfury ja Leszek (tytus) rupesivat ratkomaan arvoitusta yhdessä Bitcoin-yhteisön kanssa. Kaikki hiljeni hetkeksi, kun jännitys tiivistyi entisestään. Ovatko noncet oikeasti valideja? Saadaanko enkoodaus purettua? Mikä on sirun virhemarginaali? Laskimme leikkiä, että siru on ahne, kun ei halua antaa meille nonceja vaan piilottaa ne. (Viitaten ukrainalaisten itsestään luomaan stereotyyppiin herkullisen savusilavan kätkijöinä). 🙂

Lopulta Bitfury ja Leszek saivat koodin kräkättyä ja chippi palautti testivektoreilla oikeat tulokset. Tässä tulokset:

0.596 V, 125 Mhz, 100 tasks sent, 122 solutions got, COP is 0.84 (122/145), Ideal 1.45 GH/s, Real 1.22 Gh/s
0.596 V, 150 Mhz, 100 tasks sent, 19 solutions got, COP is 0.13 (19/145), Ideal 1.74 Gh/s, Real 0.23 Gh/s
0.596 V, 78 Mhz, 0.6 Amps, 0.36 W, 100 tasks sent, 145 solutions got, COP is 1.0, Ideal 0.91 GH/s, Real 0.91 GH/s, 0.39 W/Gh/s
0.596 V, 45 Mhz, 0.39 Amps, 0.23 W, 100 tasks sent, 145 solutions got, COP is 1.0, Ideal 0.52 Gh/s, Real 0.52 Gh/s, 0.44 W / Gh/s
0.596 V, 96 Mhz, 0.725 Amps, 0.43 W, 100 tasks sent, 143 solutions got, COP is 0.986, Ideal 1.12 Gh/s, Real 1.1 Gh/s, 0.39 W / Gh/s

0.7 V 140 Mhz 1.2 Amps 0.84 W 100 tasks, 143 solutions got, COP is 0.986, Ideal 1.63 Gh/s, Real 1.6 Gh/s, 0.52 W / GH/s
0.8 V 180 Mhz 1.87 Amps 1.49 W 100 tasks, 139 solutions got, COP is 0.958, Ideal 2.093 Gh/s, Real 2 Gh/s, 0.75 W / GH/s
0.9 V 214 Mhz 2.62 Amps 2.36 W 100 tasks, 132 solutions got, COP is 0.91, Ideal 2.48 Gh/s, Real 2.26 Gh/s, 1.04 W / Gh/s.

Ryhmä kokoontuu

Uutinen toimivasta sirusta sai riemuisan vastaanoton niin projektiin sijoittaneiden kuin mainaajienkin keskuudessa. Projektiin sijoittaneet tahot päättivät tavata välittömästi päättääkseen jatkosta. Porukkaa lensi paikalle Moskovasta ja Puolasta. Istuimme Kiovassa iltaa perinteiseen slaavilaiseen tyyliin ja nostimme vuoron perään onnittelumaljoja. Oli hienoa päästä tutustumaan ensi kertaa tämän projektin takana oleviin ihmisiin. Seuraavana aamuna hieman tukka kipeänä nousin parin tunnin yöunien jälkeen koneeseen kohti Helsinkiä. Olipahan reissu!

Leave a Reply

Your email address will not be published. Required fields are marked *