Hyperledger Fabric - blockchain w chmurze IBM
Blockchain to technologia z dużym potencjałem rozwoju, która wychodzi z fazy „niemowlęcej” i dojrzewa do fazy produkcyjnej w wielu dziedzinach naszego życia. Dzięki IBM Cloud możesz sam zacząć budować rozwiązania o nią oparte.
Blockchain znajduje zastosowanie w wielu sektorach, w szczególności wszędzie tam, gdzie uczestnicy rynku lub łańcucha wartości, pomimo braku zaufania w stosunku do siebie, mają wspólne interesy i jednocześnie zależy im na przejrzystości transakcji. Takie obszary to finanse, handel, logistyka, sektor publiczny, prawo lub tożsamość cyfrowa.
Czym jest blockchain?
Sama koncepcja blockchaina jest dość prosta: jest to po prostu zdecentralizowany rejestr informacji, zapewniający jej niezaprzeczalność, transparentność i wspólny punkt widzenia na historię transakcji.
Pierwszą implementacją tej technologii był Bitcoin a następnie cała gama innych kryptowalut, co doprowadziło do gwałtownego rozwoju startupów opartych o tę technologię, a następnie do pęknięcia bańki blockchainowej w 2018 roku.
Jednak blockchain to nie tylko kryptowaluty, może być on użyty do potwierdzania wielu innych „transakcji”, takich jak np. zmiana właściciela, zmiana parametrów, wysłanie oraz odbiór towaru, lub fakt oddania głosu. Możemy również wyobrazić sobie realizację projektów wymagających nie tylko transparentności i niezaprzeczalności, ale także bezpieczeństwa i wysokiej wydajności. W ten sposób przed twórcami oprogramowania otwiera się cały wachlarz dodatkowych wyzwań.
Właśnie wyżej wymienione powody jako jedne z założeń były podstawą utworzenia fundacji open source o nazwie Hyperledger. Członkowie-założyciele (w tym IBM) zdecydowanie odcinali się od zjawiska kryptowalut chcąc wykorzystać niezaprzeczalność i transparentność technologii blockchain, jednocześnie gwarantując wysoką wydajność do tworzenia lepszych systemów transakcyjnych w biznesie.
Hyperledger Fabric
Jednym z projektów realizowanych pod parasolem fundacji Hyperledger jest Hyperledger Fabric. Blockchain w wydaniu Hyperledger Fabric wyróżnia się wśród technologii związanych kryptowalutami przede wszystkim modularnością. Możemy sami zdecydować, czy nasza sieć i transakcje będzie miała charakter publiczny, czy też transakcje mają być widoczne tylko dla części uczestników. Możemy sami określić konfigurację sieci blockchain oraz uprawnienia poszczególnych organizacji i użytkowników, co wpływa bezpośrednio na wydajność rozwiązań.
Dla programistów wiedza z tego zakresu i umiejętność tworzenia aplikacji wykorzystujących blockchain jest szansą na naprawdę dobrze płatną pracę w przyszłości oraz pracę przy ciekawych projektach. Według analizy dokonanej przez LinkedIn, znajomość technologii blockchain będzie najbardziej pożądaną umiejętnością w ogłoszeniach o pracy w 2020 roku.
Wśród technologii dostępnych w IBM Cloud znajdziemy również platformę blockchain dostępną jako usługa. Jest dostępna pod nazwą IBM Blockchain Platform. W tym celu wykorzystywany jest protokół Hyperledger Fabric - wybór tej implementacji nie dziwi, bo IBM szeroko współpracował przy jej tworzeniu.
W odróżnieniu od „standardowej” propozycji blockchain, Hyperledger Fabric udostępniony pod postacią usługi IBM Blockchain Platform jest siecią z uprawnieniami - czyli użytkownicy jej są zidentyfikowani. Tą cechą różni się od tradycyjnych implementacji, zezwalającej na (a nawet promującej) anonimowość. Ma to znaczenie dla całej implementacji, bo dzięki temu poszczególny węzły nie muszą odnosić się np. do złożonych obliczeń kryptograficznych w celu zabezpieczania transakcji.
Hyperledger Fabric znajduje zastosowanie wszędzie tam, gdzie uczestnicy danego rynku mają sprzeczne interesy i przez to w naturalny sposób nie ufają sobie nawzajem. Klasyczne rozwiązanie to posiadanie przez każdego uczestnika swojego własnego logu wydarzeń (ledger) potwierdzającego określony stan rzeczy, lub korzystanie z usług zaufanej trzeciej strony.
W pierwszym scenariuszu przesyłanie danych oraz rekoncyliacja sporów pomiędzy poszczególnymi „twierdzami” informacji szybko się komplikuje. Świetnym przykładem mogą tu być przelewy międzybankowe lub transport międzynarodowy. Lepszym rozwiązaniem może być posiadanie współdzielonego rejestru przez wszystkich uczestników danego rynku. Ten rejestr nie może być arbitralnie zmieniony przez żadnego z uczestników.
Istotnym elementem sieci blockchain są tzw. smart contracts. Smart-contract to kod programistyczny opisujący logikę biznesową transakcji, uruchamiany każdorazowo na węzłach sieci blockchain poszczególnych uczestników i zapisujący wynik swojego działania do przyrastającego rejestru blockchain.
Jak zacząć z blockchain – Hyperledger Composer
Zastanawiasz się jak zbudować swoje pierwsze rozwiązanie oparte o blockchain? Z pomocą przyjdzie nam Hyperledger Composer (https://hyperledger.github.io/composer/latest/) gdzie możesz utworzyć poszczególne komponenty sieci i zrozumieć relacje jakie pomiędzy nimi zachodzą, być może zainspiruje cię to do utworzenia w pełni funkcjonalnej aplikacji z wykorzystaniem blockchaina.
Jak uruchomić pierwszą sieć blockchain – Blockchain Platform
Jeżeli jesteś zainteresowany prawdziwą siecią opartą o Hyperledger Fabric, możesz zupełnie za darmo utworzyć na chmurze IBM Cloud usługę o nazwie Blockchain Platform. Plusem tego serwisu jest ukrycie przed użytkownikiem komplikacji tworzenia sieci blockchain i drastyczne przyspieszenie całego procesu. Blockchain Platform pozwala na utworzenie sieci blockchain z wykorzystaniem interfejsu graficznego, dając nam możliwość skupienia się na tworzeniu logiki biznesowej zawartej w smart-contractach.
Krok 1 – rejestracja do chmury IBM Cloud
W celu skorzystania z IBM Blockchain Platform, wystarczy zarejestrować się w IBM Cloud i podpiąć kartę kredytową lub płatniczą do swojego konta (nie zostaną naliczone żadne opłaty, celem jest uzyskanie statusu konta Pay-as-you-go).
Krok 2 – utworzenie klastra Kubernetes
Następnie przechodzimy do katalogu usług i szukamy serwisu Kubernetes Cluster i uruchamiamy jego darmową, 30 dniową instancję. Kluster powinien utworzyć się w ciągu 15 minut.
Krok 3 – utworzenie instancji Blockchain Platform
Kiedy klaster jest już dostępny, w katalogu szukamy w katalogu serwisu Blockchain Platform i uruchamiamy go. Istotne jest zaznaczenie odpowiedniej opcji: „Link an IBM Cloud Kubernetes Service cluster”. W ten sposób utworzymy naszą instancję na nowo utworzonym klastrze Kubernetes. Kiedy instancja zostanie już uruchomiona, możemy rozpocząć budowę własnej sieci.
* Tekst powstał we współpracy z IBM