Mikä on Hyperledger Fabric?¶
Linux-säätiö perusti Hyperledger-projektin vuonna 2015 edistääkseen toimialarajat ylittäviä lohkoketjuteknologioita. Sen sijaan, että se julistaisi yksittäisen blockchain-standardin, se kannustaa yhteistoiminnallista lähestymistapaa blockchain-teknologioiden kehittämiseen yhteisöllisen prosessin kautta, immateriaalioikeuksilla, jotka kannustavat avoimeen kehitykseen ja keskeisten standardien hyväksymiseen avoimesti.
Hyperledger Fabric on yksi Hyperledgerin lohkoketjuprojekteista.Kuten muissakin lohkoketjuteknologioissa, siinä on pääkirja, se käyttää älykkäitä sopimuksia,ja se on järjestelmä, jonka avulla osallistujat hallinnoivat transaktioitaan.
Hyperledger Fabric eroaa joistakin muista lohkoketjujärjestelmistä siinä, että se on yksityinen ja luvanvarainen. Avoimen luvattoman järjestelmän sijaan, joka sallii tuntemattomien henkilöllisyyksien osallistua verkkoon (mikä edellyttää ”proof of work” -tyyppisiä protokollia transaktioiden validoimiseksi ja verkon suojaamiseksi), Hyperledger Fabric -verkon jäsenet ilmoittautuvat luotettavan jäsenpalveluntarjoajan (Membership Service Provider, MSP) kautta.
Hyperledger Fabric tarjoaa myös useita liitännäisvaihtoehtoja. Kirjanpidon tiedot voidaan tallentaa useissa eri muodoissa, konsensusmekanismeja voidaan vaihtaa, ja erilaisia MSP:itä tuetaan.
Hyperledger Fabric tarjoaa myös mahdollisuuden luoda kanavia, jolloin osallistujaryhmä voi luoda erillisen kirjanpidon tapahtumista. Tämä on erityisen tärkeä vaihtoehto verkoille, joissa jotkut osallistujat saattavat olla kilpailijoita eivätkä halua, että jokainen heidän tekemänsä transaktio – esimerkiksi erikoishinta, jota he tarjoavat joillekin osallistujille, mutta eivät muille – on kaikkien osallistujien tiedossa. Jos kaksi osallistujaa muodostaa kanavan, näillä osallistujilla – eikä kenelläkään muulla – on kopiot kyseisen kanavan pääkirjasta.
Jaettu pääkirja
Hyperledger Fabricissa on pääkirja-alijärjestelmä, joka koostuu kahdesta komponentista: worldstate ja transaktioloki. Jokaisella osallistujalla on kopio pääkirjasta jokaisessa Hyperledger Fabric -verkossa, johon hän kuuluu.
Worldstate-komponentti kuvaa pääkirjan tilaa tiettynä ajankohtana. Se on pääkirjan tietokanta. Transaktioloki-komponentti tallentaa kaikki transaktiot, jotka ovat johtaneet maailmantilan nykyiseen arvoon;se on maailmantilan päivityshistoria. Ledger on siis yhdistelmä maailmantilan tietokannasta ja tapahtumalokin historiasta.
Ledgerillä on vaihdettava tietovarasto maailmantilalle. Oletusarvoisesti tämä on LevelDB-avainarvotietokanta. Transaktiolokin ei tarvitse olla vaihdettavissa. Se vain tallentaa lohkoketjuverkon käyttämän pääkirjatietokannan ennen- ja jälkeen-arvot.
Älykkäät sopimukset
Hyperledger Fabricin älykkäät sopimukset kirjoitetaan ketjukoodilla, ja niitä kutsutaan lohkoketjun ulkopuolisen sovelluksen toimesta, kun kyseisen sovelluksen on oltava vuorovaikutuksessa pääkirjan kanssa. Useimmissa tapauksissa ketjukoodi on vuorovaikutuksessa vain pääkirjan tietokantaosan, maailmantilan, kanssa (esimerkiksi kyselemällä sitä), eikä transaktiolokin kanssa.
Ketjukoodi voidaan toteuttaa useilla ohjelmointikielillä. Tällä hetkellä Go, Node.js ja Java-ketjukoodi ovat tuettuja.
Privacy
Verkon tarpeista riippuen Business-to-Business(B2B)-verkon osallistujat saattavat olla erittäin arkaluonteisia sen suhteen, kuinka paljon tietoa he jakavat.Muissa verkoissa yksityisyys ei ole ensisijainen huolenaihe.
Hyperledger Fabric tukee verkkoja, joissa yksityisyys (kanavien käyttö) on keskeinen toiminnallinen vaatimus, sekä verrattain avoimia verkkoja.
Konsensus
Transaktiot on kirjoitettava pääkirjaan siinä järjestyksessä kuin ne tapahtuvat, vaikka ne saattaisivatkin tapahtua eri osallistujaryhmien välillä verkon sisällä. Jotta tämä tapahtuisi, transaktioiden järjestys on määriteltävä ja on otettava käyttöön menetelmä, jolla hylätään virheelliset transaktiot, jotka on kirjattu pääkirjaan virheellisesti (tai ilkivaltaisesti).
Tämä on perusteellisesti tutkittu tietojenkäsittelytieteen ala, ja siihen on monia tapoja, joista jokaisella on erilaisia kompromisseja. Esimerkiksi PBFT (PracticalByzantine Fault Tolerance) voi tarjota mekanismin, jonka avulla tiedostokopiot voivat kommunikoida keskenään, jotta kukin kopio pysyy johdonmukaisena myös korruption sattuessa. Vaihtoehtoisesti Bitcoinissa järjestys tapahtuu prosessin eli louhinnan kautta, jossa kilpailevat tietokoneet kilpailevat ratkaistakseen kryptografisen arvoituksen, joka määrittelee järjestyksen, jonka varaan kaikki prosessit myöhemmin rakentuvat.
Hyperledger Fabric on suunniteltu siten, että verkonkäyttäjät voivat valita konsensusmekanismin, joka parhaiten edustaa osallistujien välisiä suhteita. Kuten yksityisyydensuojan kohdalla, tarpeiden kirjo vaihtelee; verkostoista, joiden suhteet ovat hyvin strukturoituja, aina verkostoihin, joiden suhteet ovat enemmänkin vertaisverkostojen välisiä.