Lohkoketjut ja Azure

Lauri Peltonen | 25.02.2021
Lukuaika 4 min

Tämä on ensimmäinen kirjoitus uudessa Lohkoketjut ja Azure blogisarjassa. Sarjan tarkoituksena on:
– Luoda syväluotaus Azuren lohkoketjutarjontaan
– Esitellä lohkoketjuja yleisesti vastasen kysymyksiin: mitä ne ovat ja miten ne toimivat
– Tutkia lohkoketjujen bisnesmahdollisuuksia myös Azuren ulkopuolelta

Tämän blogisarjan aihe ei ole helpoimmasta päästä, mutta yritän parhaani mukaan luovia ymmärrettävästi tässä lohkoketjujen ihmemaailmassa. Oma taustani on Azure-kehittäjänä, mutta olen vapaa-ajallani tehnyt lohkoketjukehitystä (julkinen Ethereum-ketju) nyt kolmisen vuotta. Koen siis tuntevani ainakin osan lohkoketjumaailmasta varsin hyvin.

Azuren lohkoketjutarjonta

Tässä blogisarjan ensimmäisessä osassa tutustun Azuren lohkoketjutarjontaan, ja etenkin sieltä löytyvään Azure Blockchain Workbench:iin.

Azure Marketplacen tarjoamat lohkoketjuratkaisut voidaan jakaa suunnilleen kolmeen ryhmään:
1) Microsoftin tarjoamat lohkoketjuapplikaatiot
2) Ulkoisten kumppaneiden tarjoamat lohkoketjuapplikaatiot
3) Ulkoisten kumppaneiden tarjoamat lohkoketjukonsultointipalvelut

Konsultointipalvelut ovat pääosin erilaisia johdatuksia lohkoketjuihin tai lohkoketjutoteutusten prototyyppien tekemistä. Kumppaneiden tarjoamat lohkoketjuapplikaatiot ovat eri lohkoketjujen asiakasohjelmistoja (node client), valmiita lohkoketjutarjoamia tai erilaisia lohkoketjujen kehitysympäristöjä.

Mielestäni mielenkiintoisin ryhmä näistä on ensimmäinen, Microsoftin tarjoamat lohkoketjuapplikaatiot. Näitä on käytännössä kaksi: Azure Blockchain Workbench sekä Hyperledger Fabric on AKS. Molemmat ovat erilaisia lohkoketjualustoja. Hyperledger Fabric on modulaarinen lohkoketjualusta ja Azure Blockchain Workbench on laaja kirjo erilaisia Azuren palveluja, joita voidaan käyttää lohkoketjun kanssa työskentelyyn.

Azure Blockchain Workbench

Azure Blockchain Workbench on lohkoketjualusta, joka auttaa lohkoketjuapplikaatioiden kehittämisessä ja julkaisussa.

Azure Blockchain Workbench - arkkitehtuuri
Azure Blockchain Workbench -arkkitehtuuri

Luotaessa uutta Workbenchia, Azure Portal ehdottaa uuden Azure Blockchain Servicen luomista, mutta voit myös käyttää jo olemassaolevaa lohkoketjua. Azure Blockchain Service on palvelu, joka sisältää konsortiolohkoketjun (consortium Ethereum Quorum), joka on tarkoitettu yrityskäyttöön.

Käyttäessä Workbench:ia näkyvyys itse lohkoketjuun on hieman rajallinen. Nähdäksesi itse lohkoketjun toiminnan voit asentaa ulkopuolisen lohkoketjuohjelman (blockchain explorer). Koeajoin suositellun Epirus-yhtiön ohjelman, joka tuntui toimivan hyvin. Sen avulla näet lohkoketjun perustoiminnallisuudet: lohkot, transaktiot ja sopimukset.

Epirus-lohkoketjuohjelma
Epirus-lohkoketjuohjelma

Yksinkertaisimmillaan Workbench:n (lohkoketjun kanssa) voi ajatella äärellisenä automaattina (state machine): automaatissa on äärellinen määrä tiloja ja automaatti on aina jossain näistä tiloista. Tilaa voi muuttaa joko ulkopuolinen käyttäjä tai ulkopuolinen palvelu. Lisäksi jokainen tilaa muuttava tapahtuma autorisoidaan Azure Active Directory:n avulla.

Äärellinen automaatti on kuitenkin vain yksinkertaisin lohkoketjun käyttötarkoitus. Lohkoketjuja voidaan käyttää hyvin erilaisiin tarpeisiin. Sopivat käyttötarkoitukset riippuvat lohkoketjun tyypistä ja sen arkkitehtuurista. Pyrin kirjoittamaan myöhemmin laajemman kirjoituksen lohkoketjujen käyttötarkoituksista, joten kannattaa seurata tätä blogisarjaa.

Workbench —integraatiot

Workbench on varsin monipuolinen, mutta yksi sen selkeästi parhaista puolista on sen eri integraatiot. Workbench tarjoaa ainakin seuraavat integraatiomahdollisuudet tiedon lukemiseen ja tiedon kirjoittamiseen lohkoketjuun:
– IoT Hub: eri IoT-laitteet
– Gateway Service API: perinteiset applikaatiot, esimerkiksi web-applikaatio App Servicen päällä
– Event Grid: tapahtumiin (event) reagointi / tapahtumien julkaiseminen (publish)
– Web App: web-käyttöliittymä manuaaliseen interaktioon

Workbench: web-käyttöliittymä
Workbench: web-käyttöliittymä

Halutessasi voit myös sukeltaa suoraan Workbench:n sisäisiin rakenteisiin ja lukea tietoa sieltä. Yleensä tälle ei kuitenkaan pitäisi olla tarvetta.

Workbench:n hinta: 200 € / kk

Typpillisesti jokaisen uuden palvelun kohdalla tarkistan ensiksi palvelun hinnan. Tämä ei, ikävä kyllä, ole kovin helppoa Workbench:n kohdalla, sillä sille ei ilmoiteta suoraa hintaa. Palvelun kuvauksessa kerrotaan, että hinta muodostuu jokaisesta palvelun käyttämästä Azure-resurssista.

Luotaessa uutta Workbench:iä pystyt tekemään muutaman valinnan, jotka vaikuttavat hintaan:
– Azure-alue. Eri alueilla resurssit ovat hieman eri hintaisia
– Käytetty VM:n koko. Palvelu käyttää sisäisesti muutamaa VM:ää
– Jos otat mukaan uuden Blockchain Servicen: sen hintataso (Basic / Standard)

Kun Workbench on pystyssä, voit lisätä siihen liittyvään lohkoketjuun lisää noodeja (VM). Tämä koneet luonnollisesti nostavat kokonaiskustannuksia.

Kokeilumielessä loin uuden WorkBench:n uudella Blockchain Servicellä, jolloin pääsin myös seuraamaan sen hintaa Portalin Cost Management -osiossa. Näyttäisi, että kuukausikustannukseksi tulee noin 200 €. Tämä sisältää kaikista yksinkertaisimman yhdistelmän resursseja: VM Standard_DS1_v2, North Europe, Basic Blockchain Service ilman ylimääräisiä noodeja. Tämän lisäksi voit kuitenkin halutessasi skaalata App Servicet käyttämään pienempiä kokoja, jolloin hinta jopa puolittuu.

2 viikon kustannukset
2 viikon kustannukset

Tällainen yksinkertainen yhdistelmä ei ole kuitenkaan riittävä tuotantokäyttöön. Tuotantokäyttöä varten palvelussa pitäisi olla enemmän noodeja, sillä lohkoketju, missä on vain yksi noodi, on varsin turha. Lohkeketjuja on tarkoitus käyttää usealla noodilla, jotka kirjoittavat ketjuun tietoa, mahdollisesti yhtä aikaa.

Loppumietteet

Workbench on kätevä jos haluat kokeilla lohkoketjua Azuressa. Workbench:n integraatiot tekevät siitä myös hyvän työkalun, mikäli se halutaan integroida mihin tahansa ulkoiseen järjestelmään.

Valitettavasti pelkän Workbench:n luominen ei kuitenkaan riitä bisneskäyttöön. Ensin tulee ymmärtää jollain tasolla, kuinka lohkoketjut toimivat ja mihin niitä voidaan käyttää. Luethan siis myös blogisarjan seuraavan osan, jossa käyn läpi itse lohkoketjuja tarkemmin.