Hvad er Hyperledger Fabric?¶
Linux Foundation grundlagde Hyperledger-projektet i 2015 for at fremme blockchain-teknologier på tværs af brancher. I stedet for at erklære en enkelt blockchain-standard tilskynder det til en samarbejdsbaseret tilgang til udvikling af blockchain-teknologier via en fællesskabsproces med intellektuelle ejendomsrettigheder, der tilskynder til åben udvikling og vedtagelse af vigtige standarder i løbet af tiden.
Hyperledger Fabric er et af blockchain-projekterne inden for Hyperledger.Ligesom andre blockchain-teknologier har det en hovedbog, bruger smart contracts og er et system, hvormed deltagerne administrerer deres transaktioner.
Der hvor Hyperledger Fabric adskiller sig fra nogle andre blockchain-systemer er, at det er privat og tilladelsesstyret. I stedet for et åbent tilladelsesløst system, der tillader ukendte identiteter at deltage i netværket (hvilket kræver protokoller som “proof of work” for at validere transaktioner og sikre netværket), tilmelder medlemmerne af et Hyperledger Fabric-netværk sig gennem en betroet Membership Service Provider (MSP).
Hyperledger Fabric tilbyder også flere muligheder for tilslutning. Hovedbogsdata kan lagres i flere forskellige formater, konsensusmekanismer kan udskiftes, og forskellige MSP’er understøttes.
Hyperledger Fabric giver også mulighed for at oprette kanaler, så en gruppe af deltagere kan oprette en separat hovedbog over transaktioner. Dette er en særlig vigtig mulighed for netværk, hvor nogle deltagere kan være konkurrenter og ikke ønsker, at hver eneste transaktion, de foretager – f.eks. en særlig pris, som de tilbyder nogle deltagere og ikke andre – skal være kendt af alle deltagere. Hvis to deltagere danner en kanal, så har disse deltagere – og ingen andre – kopier af hovedbogen for den kanal.
Shared Ledger
Hyperledger Fabric har et hovedbogssubsystem, der består af to komponenter: worldstate og transaktionsloggen. Hver deltager har en kopi af hovedbogen til hvert Hyperledger Fabric-netværk, som de tilhører.
Den globale tilstandskomponent beskriver hovedbogens tilstand på et givet tidspunkt. Det er hovedbogens database. I transaktionslogkomponenten registreres alle transaktioner, som har resulteret i den aktuelle værdi af verdenstilstanden; det er opdateringshistorikken for verdenstilstanden. Hovedbogen er således en kombination af databasen for verdenstilstanden og transaktionsloghistorikken.
Ledbogen har et udskifteligt datalager for verdenstilstanden. Som standard er dette en LevelDB key-value store-database. Transaktionsloggen behøver ikke at være udskiftelig. Den registrerer blot før- og efterværdierne af den ledgerdatabase, der anvendes af blockchain-netværket.
Smarte kontrakter
Hyperledger Fabric-smarte kontrakter er skrevet i kædekode og påkaldes af en applikation eksternt til blockchainen, når denne applikation skal interagere med ledger’en. I de fleste tilfælde interagerer chaincode kun med hovedbogens databasekomponent, verdenstilstanden (f.eks. ved at forespørge den), og ikke med transaktionsloggen.
Chaincode kan implementeres i flere programmeringssprog. I øjeblikket understøttes Go, Node.js og Java chaincode.
Privatliv
Afhængigt af et netværks behov kan deltagerne i et Business-to-Business(B2B)-netværk være meget følsomme over for, hvor mange oplysninger de deler.
For andre netværk vil privatlivets fred ikke være en af de største bekymringer.
Hyperledger Fabric understøtter netværk, hvor privatlivets fred (ved hjælp af kanaler) er et vigtigt operationelt krav, såvel som netværk, der er forholdsvis åbne.
Consensus
Transaktioner skal skrives til hovedbogen i den rækkefølge, de forekommer, selv om de kan være mellem forskellige grupper af deltagere inden for det pågældende netværk. For at dette kan ske, skal rækkefølgen af transaktioner fastlægges, og der skal indføres en metode til at afvise dårlige transaktioner, som er blevet indsat i hovedbogen ved en fejl (eller i ond hensigt).
Dette er et grundigt undersøgt område inden for computervidenskab, og der er mange måder at opnå dette på, hver med forskellige kompromiser. F.eks. kan PBFT (PracticalByzantine Fault Tolerance) give filreplikaer en mekanisme til at kommunikere med hinanden for at holde hver enkelt kopi konsistent, selv i tilfælde af korruption. Alternativt sker ordneringen i Bitcoin gennem en proces kaldet mining, hvor konkurrerende computere kappes om at løse et kryptografisk puslespil, som definerer den rækkefølge, som alle processer efterfølgende bygger på.
Hyperledger Fabric er designet til at give netværksstartere mulighed for at vælge en konsensusmekanisme, der bedst repræsenterer de relationer, der eksisterer mellem deltagerne. Ligesom med privatlivets fred er der et spektrum af behov; fra netværk, der er meget strukturerede i deres relationer, til dem, der er mere peer-to-peer.