Vad är Hyperledger Fabric?¶
Linux Foundation grundade Hyperledger-projektet 2015 för att främja blockkedjeteknik på tvärs över branscher. Istället för att deklarera en enda blockkedjestandard uppmuntrar projektet en samarbetsstrategi för att utveckla blockkedjeteknik via en gemenskapsprocess, med immateriella rättigheter som uppmuntrar till öppen utveckling och antagande av viktiga standarder över tiden.
Hyperledger Fabric är ett av blockkedjeprojekten inom Hyperledger.Liksom andra blockkedjetekniker har det en huvudbok, använder smarta kontrakt och är ett system genom vilket deltagarna hanterar sina transaktioner.
Där Hyperledger Fabric skiljer sig från vissa andra blockkedjesystem är att det är privat och behörighetsstyrt. I stället för ett öppet tillståndslöst system som tillåter okända identiteter att delta i nätverket (vilket kräver protokoll som ”proof of work” för att validera transaktioner och säkra nätverket), registrerar sig medlemmarna i ett Hyperledger Fabric-nätverk genom en betrodd Membership Service Provider (MSP).
Hyperledger Fabric erbjuder också flera olika alternativ som kan anslutas. Huvudboksdata kan lagras i flera olika format, konsensusmekanismer kan bytas ut och in och olika MSP:er stöds.
Hyperledger Fabric erbjuder också möjligheten att skapa kanaler, vilket gör det möjligt för en grupp deltagare att skapa en separat transaktionsbok. Detta är ett särskilt viktigt alternativ för nätverk där vissa deltagare kan vara konkurrenter och inte vill att varje transaktion de gör – t.ex. ett specialpris som de erbjuder vissa deltagare och inte andra – ska vara känd för alla deltagare. Om två deltagare bildar en kanal har dessa deltagare – och inga andra – kopior av huvudboken för den kanalen.
Shared Ledger
Hyperledger Fabric har ett undersystem för huvudboken som består av två komponenter: worldstate och transaktionsloggen. Varje deltagare har en kopia av huvudboken för varje Hyperledger Fabric-nätverk de tillhör.
Den globala delkomponenten beskriver huvudbokens tillstånd vid en viss tidpunkt. Det är huvudbokens databas. Komponenten transaktionslogg registrerar alla transaktioner som har resulterat i det aktuella värdet av världsstatusen; det är uppdateringshistoriken för världsstatusen. Huvudboken är alltså en kombination av världstillståndsdatabasen och transaktionslogghistoriken.
Har huvudboken ett utbytbart datalager för världstillståndet. Som standard är detta en LevelDB-nyckelvärdeslagerdatabas. Transaktionsloggen behöver inte vara pluggbar. Den registrerar helt enkelt före- och eftervärdena för den databas i huvudboken som används av blockkedjenätverket.
Smarta kontrakt
Hyperledger Fabrics smarta kontrakt skrivs i kedjekod och åberopas av ett program som är externt i förhållande till blockkedjan när det programmet behöver interagera med huvudboken. I de flesta fall interagerar chaincode endast med huvudbokens databaskomponent, world state (t.ex. genom att fråga efter den), och inte med transaktionsloggen.
Chaincode kan implementeras i flera programmeringsspråk. För närvarande stöds Go, Node.js och Java chaincode.
Privacy
Avhängigt av ett nätverks behov kan deltagarna i ett B2B-nätverk (Business-to-Business) vara extremt känsliga när det gäller hur mycket information de delar med sig av. För andra nätverk är integritet inte en viktig fråga.
Hyperledger Fabric stöder nätverk där sekretess (genom att använda kanaler) är ett viktigt operativt krav samt nätverk som är jämförelsevis öppna.
Consensus
Transaktioner måste skrivas in i huvudboken i den ordning de sker, även om de kan vara mellan olika uppsättningar av deltagare inom nätverket. För att detta skall kunna ske måste transaktionsordningen fastställas och en metod för att avvisa dåliga transaktioner som felaktigt (eller illvilligt) har lagts in i ledboken måste införas.
Detta är ett grundligt utforskat område inom datavetenskapen, och det finns många sätt att uppnå detta, vart och ett med olika kompromisser. PBFT (PracticalByzantine Fault Tolerance) kan t.ex. tillhandahålla en mekanism för att filrepliker ska kunna kommunicera med varandra för att hålla varje kopia konsekvent, även om den är skadad. I Bitcoin sker ordningen genom en process som kallas mining där konkurrerande datorer tävlar om att lösa ett kryptografiskt pussel som definierar den ordning som alla processer sedan bygger på.
Hyperledger Fabric har utformats så att nätverksstartare kan välja en konsensusmekanism som bäst representerar de relationer som finns mellan deltagarna. Precis som när det gäller integritet finns det ett spektrum av behov, från nätverk som är mycket strukturerade i sina relationer till sådana som är mer peer-to-peer.