Fabric i Composer su kolaborativni blockchain framework projekti otvorenog koda hostovani od strane Linux fondacije. Fabric frameworkt je stvaran u smeru odozdo na gore za aplikacije enterprise nivoa, i predstavlja dozvoljenu mrežu, što znači da su čitaj/piši pristup deljenoj knjizi i učešće u P2P mreži ograničeni samo za pozvane i validirane članove. Takve restrikcije osiguravaju prednosti poput skalabilnosti i pouzdanosti transakcija koji su fundamentalni zahtevi većine enterprise aplikacija.
Ovo je glavna razlika u odnosu na ostale poznate blokchain implementacije poput Bitcoina i Ethereuma, koji su javni i potpuno decentralizovani, otvaraju vrata svima koji žele da se pridruže, učestvuju i održavaju P2P mrežu. Još jedna razlika je to što Fabric blockchain nema ugrađen izvorni token/koin, odnosno svoju kripto valutu kao što Bitcoin i Ethereum imaju bitcoin i ether.
Dijagram ispod prikazuje vezu između Fabric mreže i Composer frameworka. Composer framework se izvršava u svom izolovanom vremenu i povezan je sa Fabric mrežom preko konekcijskih profila koji dozvoljavaju prenos Business Network Definition (BND) arhivnih fajlova (.bna fajlova) koji su generisani od strane Composer frameworka.
BND obuhvata i sadrži sve neophodne komponente (fajlovi, pravila i logika) koje čine rešenje poslovne mreže. Evo nekoliko detalja koji opisuju BND.
- Model fajlovi (sredstva, učesnici, transakcije, događaji): Model podataka napisan je u ekspresivnom JSON serijabilnom modeling jeziku koji su u namespace-u i validirani su kroz vreme(runtime) koje definiše veze i pravila validacije.
- Procesor transakcija (biznis logika i preduslovi): Koristi pribeleženi JavaScript (ES5) kod koji ima set ugrađenih registara JavaScript API-a. Kod se izvršava na mreži kroz vreme (runtime).
- Lista kontrole pristupa: Sprovodi pravila trajanja (runtime-a) za deljenje i dozvolu pristupa resursima.
Postoji nekoliko načina da pokrenete Fabric Network. Imajte na umu da se Hyperledger projekat aktivno razvija od strane fondacije, tako da su se koraci implementacije možda promenili od prošlog puta kada sam instalirao i podesio moje development okruženje.
- (Preporučuje se, tj. recommended) Korišćenje Composera kao baze za razvoj aplikacija.
- Izvorno podešavanje s namerom korišćenja Goolanga za razvoj chaincode-a (pametni ugovori).
(Preporučuje se, tj. j. recommended) Podešavanje Hyperledger Fabric mreže:
Preduslov (postavljanje lokalnog razvojnog okruženja)
-
- (Opciono, ali veoma preporučljivo) Instalirajte virtuelno okruženje:
https://realpython.com/blog/python/python-virtual-environments-a-primer/ - Strpljivo instalirajte (Python 2.7.x+, Git 2.9.x+, Docker Engine -v17.03+, Docker Compose -v1.8+, Node.js -v6.x (Node v7+ nije podržan), i Xcode ako radite na Mac-u). Podesite preporučeni FABRIC_VERSION=hlfv1(v1.0) kao varijablu okruženja. Sledi nekoliko instrukcija kako da počnete. Molim vas da pratite linkove za više instalacionih koraka.# instalirajte git
https://www.atlassian.com/git/tutorials/install-git# instalirajte node version 6
https://medium.com/@katopz/how-to-install-specific-nodejs-version-c6e1cec8aa11~$ brew update
~$ brew install node@6
~$ brew unlink node
~$ brew link node@6
~$ node –version
~$ npm –version
# instalirajte docker
https://docs.docker.com/engine/installation/# podesite varijable okruženja za Fabric v1.0
~$ export FABRIC_VERSION=hlfv1
~$ export FABRIC_START_TIMEOUT=15
- (Opciono, ali veoma preporučljivo) Instalirajte virtuelno okruženje:
-
- Isključite sve prethodno pokrenute docker kontejnere i uklonite sve slike~$ docker kill $(docker ps -q)
~$ docker rm $(docker ps -aq)
~$ docker rmi $(docker images dev-* -q)
- Isključite sve prethodno pokrenute docker kontejnere i uklonite sve slike~$ docker kill $(docker ps -q)
-
- Napravite folder i skinite zip fajl koji sadrži skriptovane alate za composer. Kada ga raspakujete, postavite skripte za preuzimanje, pokretanje i zaustavljanje Fabric mreže u fabric-tool folderu.~$ mkdir ~/fabric-tools && cd ~/fabric-tools
~$ curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.zip
~$ unzip fabric-dev-servers.zip
- Napravite folder i skinite zip fajl koji sadrži skriptovane alate za composer. Kada ga raspakujete, postavite skripte za preuzimanje, pokretanje i zaustavljanje Fabric mreže u fabric-tool folderu.~$ mkdir ~/fabric-tools && cd ~/fabric-tools
-
- Preuzmite i startujte Fabric mrežu i napravite profil kako bi se povezali sa Composerom.~$ cd ~/fabric-tools
~$ ./downloadFabric.sh
~$ ./startFabric.sh
~$ ./createComposerProfile.sh# proverite izvršni docker container. Tu je potrebno da postoje bar peer node, ca node, ordered node i couchdb container.
~$ docker ps
- Preuzmite i startujte Fabric mrežu i napravite profil kako bi se povezali sa Composerom.~$ cd ~/fabric-tools
-
- Do ovog trenutka Fabric mreža bi trebalo da bude postavljena. Na kraju development procesa, možete zaustaviti i ukloniti Fabric mrežu~$ cd ~/fabric-tools
~$ ./stopFabric.sh
~$ ./teardownFabric.sh
- Do ovog trenutka Fabric mreža bi trebalo da bude postavljena. Na kraju development procesa, možete zaustaviti i ukloniti Fabric mrežu~$ cd ~/fabric-tools
- Čestitamo! Fabric mreža je postavljena. Sledeći korak je da završite podešavanje Hyperledger Composer alata za razvoj. Pokrenite sledeće komande kako bi lokalno instalirali Hyperledger Composer u razvojno okruženje.~$ npm install -g composer-cli
~$ npm install -g generator-hyperledger-composer
~$ npm install -g composer-rest-server
~$ npm install -g yo
Za detaljnije informacije, korake i tutorijale za rešavanje problema, posetite:
Introduction | Hyperledger Composer
Installing a development environment | Hyperledger Composer
Tekst prenosimo sa sajta Go Vertical Blockchain Ideation Workshop, a original možete pogledati na sledećm linku.