Czym jest Hyperledger Fabric?
Fundacja Linuksa założyła projekt Hyperledger w 2015 roku, aby rozwinąć międzybranżowe technologie blockchain. Zamiast deklarować jeden standard blockchain, zachęca do podejścia opartego na współpracy do rozwoju technologii blockchain poprzez proces społecznościowy, z prawami własności intelektualnej, które zachęcają do otwartego rozwoju i przyjęcia kluczowych standardów w godzinach nadliczbowych.
Hyperledger Fabric to jeden z projektów blockchain w ramach Hyperledger. Podobnie jak inne technologie blockchain, posiada księgę główną, wykorzystuje inteligentne kontrakty i jest systemem, za pomocą którego uczestnicy zarządzają swoimi transakcjami.
To, co odróżnia Hyperledger Fabric od niektórych innych systemów blockchain, to fakt, że jest to system prywatny i oparty na zezwoleniach. Zamiast otwartego systemu bez zezwoleń, który pozwala nieznanym tożsamościom uczestniczyć w sieci (wymagającego protokołów takich jak „dowód pracy” do walidacji transakcji i zabezpieczenia sieci), członkowie sieci Hyperledger Fabric zapisują się za pośrednictwem zaufanego dostawcy usług członkowskich (MSP).
Hyperledger Fabric oferuje również kilka opcji wtyczek. Dane księgi mogą być przechowywane w wielu formatach, mechanizmy konsensusu mogą być wymieniane, a różne MSP są obsługiwane.
Hyperledger Fabric oferuje również możliwość tworzenia kanałów, pozwalając grupie uczestników na stworzenie oddzielnej księgi transakcji. Jest to szczególnie ważna opcja dla sieci, w których niektórzy uczestnicy mogą być konkurentami i nie chcą, aby każda ich transakcja – na przykład specjalna cena, którą oferują niektórym uczestnikom, a innym nie – była znana każdemu uczestnikowi. Jeśli dwóch uczestników tworzy kanał, wtedy ci uczestnicy – i żadni inni – mają kopie księgi głównej dla tego kanału.
Shared Ledger
Hyperledger Fabric ma podsystem księgi głównej składający się z dwóch komponentów: worldstate i dziennika transakcji. Każdy uczestnik posiada kopię księgi głównej w każdej sieci Hyperledger Fabric, do której należy.
Komponent worldstate opisuje stan księgi głównej w danym punkcie w czasie. Jest to baza danych księgi. Komponent dziennika transakcji rejestruje wszystkie transakcje, które doprowadziły do uzyskania bieżącej wartości stanu światowego; jest to historia aktualizacji stanu światowego. Księga główna jest więc połączeniem bazy danych stanu świata i historii dziennika transakcji.
Księga główna posiada wymienny magazyn danych dla stanu świata. Domyślnie jest to baza danych LevelDB typu key-value store. Dziennik transakcji nie musi być podłączany. Zapisuje on po prostu wartości przed i po bazie danych księgi używanej przez sieć blockchain.
Smart Contracts
Smart Contracts
Hyperledger Fabric smart contracts są napisane w chaincode i są wywoływane przez aplikację zewnętrzną w stosunku do blockchaina, gdy aplikacja ta musi wejść w interakcję z księgą. W większości przypadków chaincode wchodzi w interakcję jedynie z bazą danych księgi, czyli stanem świata (np. zadając pytania), a nie z dziennikiem transakcji.
Chaincode może być zaimplementowany w kilku językach programowania. Obecnie obsługiwane są Go, Node.js i Java chaincode.
Prywatność
Zależnie od potrzeb sieci, uczestnicy sieci Business-to-Business(B2B) mogą być bardzo wrażliwi na temat tego, jak wiele informacji udostępniają.Dla innych sieci, prywatność nie będzie głównym problemem.
Hyperledger Fabric obsługuje sieci, w których prywatność (z wykorzystaniem kanałów) jest kluczowym wymogiem operacyjnym, jak również sieci, które są stosunkowo otwarte.
Konsensus
Transakcje muszą być zapisywane w księdze w kolejności, w jakiej występują, nawet jeśli mogą być pomiędzy różnymi zestawami uczestników w sieci. Aby tak się stało, kolejność transakcji musi zostać ustalona, a metoda odrzucania złych transakcji, które zostały błędnie (lub złośliwie) wprowadzone do księgi, musi zostać wprowadzona w życie.
Jest to dokładnie zbadany obszar informatyki i istnieje wiele sposobów, aby to osiągnąć, każdy z różnymi kompromisami. Na przykład PBFT (PracticalByzantine Fault Tolerance) może zapewnić mechanizm komunikacji replik plików ze sobą, aby każda kopia była spójna, nawet w przypadku korupcji. Alternatywnie, w Bitcoin, porządkowanie odbywa się poprzez proces zwany wydobywaniem, gdzie konkurujące ze sobą komputery ścigają się w rozwiązywaniu zagadki kryptograficznej, która definiuje porządek, na którym następnie opierają się wszystkie procesy.
Hyperledger Fabric został zaprojektowany tak, aby umożliwić uczestnikom sieci wybór mechanizmu konsensusu, który najlepiej reprezentuje relacje istniejące między uczestnikami. Podobnie jak w przypadku prywatności, istnieje spektrum potrzeb; od sieci, które są bardzo ustrukturyzowane w swoich relacjach do tych, które są bardziej peer-to-peer.
.