Πώς να δημιουργήσετε ένα δίκτυο blockchain χρησιμοποιώντας Hyperledger Fabric and Composer

Ένα σεμινάριο για νέους προγραμματιστές blockchain

Πριν ξεκινήσω, το Hyperledger Fabric λειτουργεί μόνο σε λειτουργικά συστήματα που βασίζονται σε Unix. Ως αποτέλεσμα, δεν θα μπορεί να εκτελεστεί σε Windows και θα έχετε περιορισμούς σε ό, τι μπορείτε να κάνετε. Προτείνω να δημιουργήσετε μια εικονική μηχανή εάν χρησιμοποιείτε Windows πριν συνεχίσετε.

Αυτό το άρθρο προϋποθέτει κάποια γνώση της Javascript. Δεν είναι ένα σεμινάριο που απευθύνεται σε αρχάριους προγραμματιστές, αλλά σε προγραμματιστές που είναι αρχάριοι στο blockchain space.

Τι χτίζουμε;

Λοιπόν, θέλετε να δημιουργήσετε μια εφαρμογή blockchain αλλά δεν έχετε ιδέα από πού να ξεκινήσετε; Μην ανησυχείς. Μέσω αυτού του σεμιναρίου, θα δημιουργήσουμε ένα δίκτυο καρτών συναλλαγών. Διαφορετικοί Traderπου έχουν TradingCardπαίκτες μπέιζμπολ, ποδοσφαίρου και κρίκετ, θα μπορούν να ανταλλάσσουν κάρτες μεταξύ τους.

Θα δημιουργήσουμε επίσης έναν διακομιστή REST API για να επιτρέψουμε στο λογισμικό του πελάτη να αλληλεπιδρά με το επιχειρηματικό μας δίκτυο. Τέλος, θα δημιουργήσουμε επίσης μια εφαρμογή Angular 4 που χρησιμοποιεί το REST API για διασύνδεση με το δίκτυό μας.

Μπορείτε να βρείτε τον πλήρη τελικό κώδικα αυτού που πρόκειται να οικοδομήσουμε σε αυτό το repo Github

Είστε έτοιμοι να ξεκινήσετε;

Πίνακας περιεχομένων

  • Εισαγωγή στο Hyperledger Fabric και σχετικές εφαρμογές
  • Εγκατάσταση των προϋποθέσεων, εργαλείων και χρόνου εκτέλεσης Fabric
  • Δημιουργία και ανάπτυξη του επιχειρηματικού μας δικτύου
  • Δοκιμή του επιχειρηματικού μας δικτύου
  • Δημιουργία διακομιστή REST API
  • Δημιουργία γωνιακής εφαρμογής που χρησιμοποιεί το REST API

Εισαγωγή στο Hyperledger Fabric και σχετικές εφαρμογές

Το Hyperledger Fabric είναι ένα πλαίσιο ανοιχτού κώδικα για τη δημιουργία ιδιωτικών (επιτρεπόμενων) επιχειρηματικών δικτύων blockchain, όπου οι ταυτότητες και οι ρόλοι των μελών είναι γνωστά σε άλλα μέλη. Το δίκτυο που βασίζεται στο ύφασμα χρησιμεύει ως back-end, με μια εφαρμογή πελάτη front-end. Τα SDK είναι διαθέσιμα για Nodejs και Java για τη δημιουργία εφαρμογών πελατών, με την υποστήριξη Python και Golang να είναι σύντομα διαθέσιμη.

Το Hyperledger Composer είναι ένα σύνολο εργαλείων και σεναρίων που βασίζονται σε Javascript που απλοποιούν τη δημιουργία δικτύων Hyperledger Fabric. Χρησιμοποιώντας αυτά τα εργαλεία, μπορούμε να δημιουργήσουμε ένα αρχείο επιχειρηματικού δικτύου (BNA) για το δίκτυό μας. Ο συνθέτης καλύπτει γενικά αυτά τα στοιχεία:

  • Αρχείο Επιχειρηματικού Δικτύου (BNA)
  • Παιδική χαρά συνθέτη
  • Διακομιστής REST Composer

Business Network Archive - Ο Συνθέτης μας επιτρέπει να συσκευάσουμε μερικά διαφορετικά αρχεία και να δημιουργήσουμε ένα αρχείο το οποίο στη συνέχεια μπορεί να αναπτυχθεί σε ένα δίκτυο Fabric. Για να δημιουργήσουμε αυτό το αρχείο, χρειαζόμαστε:

  • Μοντέλο δικτύου - Ένας ορισμός των πόρων που υπάρχουν στο δίκτυο. Αυτοί οι πόροι περιλαμβάνουν στοιχεία ενεργητικού, συμμετέχοντες και συναλλαγές. Θα επανέλθουμε σε αυτά αργότερα.
  • Business Logic - Λογική για τις συναλλαγές
  • Περιορισμοί ελέγχου πρόσβασης - Περιέχει διάφορους κανόνες που καθορίζουν τα δικαιώματα διαφόρων συμμετεχόντων στο δίκτυο. Αυτό περιλαμβάνει, αλλά δεν περιορίζεται σε, ορισμό των περιουσιακών στοιχείων που μπορούν να ελέγχουν οι συμμετέχοντες.
  • Αρχείο ερωτημάτων (προαιρετικό) - Ένα σύνολο ερωτημάτων που μπορούν να εκτελεστούν στο δίκτυο. Αυτά μπορεί να θεωρηθούν παρόμοια με τα ερωτήματα SQL. Μπορείτε να διαβάσετε περισσότερα σχετικά με τα ερωτήματα εδώ.

Το Composer Playground είναι μια διεπαφή χρήστη μέσω διαδικτύου που μπορούμε να χρησιμοποιήσουμε για να μοντελοποιήσουμε και να δοκιμάσουμε το επιχειρηματικό μας δίκτυο. Το Playground είναι καλό για τη μοντελοποίηση απλών Proofs of Concept, καθώς χρησιμοποιεί την τοπική αποθήκευση του προγράμματος περιήγησης για την προσομοίωση του δικτύου blockchain. Ωστόσο, εάν εκτελούμε έναν τοπικό χρόνο εκτέλεσης Fabric και έχουμε αναπτύξει ένα δίκτυο σε αυτό, μπορούμε επίσης να αποκτήσουμε πρόσβαση σε αυτό χρησιμοποιώντας το Playground. Σε αυτήν την περίπτωση, το Playground δεν προσομοιώνει το δίκτυο, επικοινωνεί απευθείας με τον τοπικό χρόνο εκτέλεσης Fabric.

Το Composer REST Server είναι ένα εργαλείο που μας επιτρέπει να δημιουργήσουμε έναν διακομιστή REST API με βάση τον ορισμό του επιχειρηματικού μας δικτύου. Αυτό το API μπορεί να χρησιμοποιηθεί από εφαρμογές πελατών και μας επιτρέπει να ενσωματώσουμε εφαρμογές χωρίς blockchain στο δίκτυο.

Εγκατάσταση των προϋποθέσεων, εργαλείων και χρόνου εκτέλεσης Fabric

1. Εγκατάσταση προαπαιτήσεων

Τώρα που έχουμε υψηλό επίπεδο κατανόησης του τι απαιτείται για τη δημιουργία αυτών των δικτύων, μπορούμε να αρχίσουμε να αναπτύσσουμε. Πριν το κάνουμε, ωστόσο, πρέπει να βεβαιωθούμε ότι έχουμε εγκαταστήσει τις προϋποθέσεις στο σύστημά μας. Μπορείτε να βρείτε μια ενημερωμένη λίστα εδώ.

  • Docker Engine και Docker Compose
  • Nodejs και NPM
  • Γκιτ
  • Python 2.7.x

Για χρήστες του Ubuntu, το Hyperledger διαθέτει ένα σενάριο bash για να κάνει αυτή τη διαδικασία εξαιρετικά εύκολη. Εκτελέστε τις ακόλουθες εντολές στο τερματικό σας:

Δυστυχώς, οι χρήστες Mac πρέπει να εγκαταστήσουν με μη αυτόματο τρόπο τα προαναφερθέντα εργαλεία και να βεβαιωθούν ότι έχουν όλες τις προϋποθέσεις στο σύστημά τους. Αυτή η σελίδα ενημερώνεται με οδηγίες εγκατάστασης.

2. Εγκατάσταση εργαλείων για διευκόλυνση της ανάπτυξης

Εκτελέστε τις ακόλουθες εντολές στο τερματικό σας και βεβαιωθείτε ότι ΔΕΝ χρησιμοποιείτε sudo κατά την εκτέλεση εντολών npm.

Το συνθέτη-cli είναι το μόνο απαραίτητο πακέτο. Τα υπόλοιπα δεν είναι βασικά συστατικά αλλά θα αποδειχθούν εξαιρετικά χρήσιμα με την πάροδο του χρόνου. Θα μάθουμε περισσότερα για το τι κάνουν καθένα από αυτά καθώς τα συναντάμε.

3. Εγκατάσταση τοπικού χρόνου εκτέλεσης Hyperledger Fabric

Ας δούμε τις εντολές και να δούμε τι σημαίνουν. Πρώτα, δημιουργούμε και εισάγουμε έναν νέο κατάλογο. Στη συνέχεια, κατεβάζουμε και εξάγουμε τα εργαλεία που απαιτούνται για την εγκατάσταση του Hyperledger Fabric.

Στη συνέχεια, καθορίζουμε την έκδοση του Fabric που θέλουμε, κατά τη στιγμή της γραφής χρειαζόμαστε 1.2, επομένως hlfv12 . Στη συνέχεια, κατεβάζουμε το χρόνο εκτέλεσης του υφάσματος και το ξεκινάμε.

Τέλος, δημιουργούμε μια PeerAdminκάρτα. Οι συμμετέχοντες σε ένα δίκτυο Fabric μπορούν να έχουν επαγγελματικές κάρτες δικτύου, ανάλογες με τις πραγματικές επαγγελματικές κάρτες. Όπως αναφέραμε προηγουμένως, το Fabric είναι ένα βασικό στρώμα για την ανάπτυξη ιδιωτικών μπλοκ αλυσίδων. Ο κάτοχος της επαγγελματικής κάρτας PeerAdmin έχει την εξουσία να αναπτύσσει, να διαγράφει και να διαχειρίζεται επιχειρηματικά δίκτυα σε αυτόν τον χρόνο εκτέλεσης Fabric (γνωστός και εσείς!)

Εάν όλα πήγαν καλά, θα πρέπει να δείτε μια έξοδο ως εξής:

Επίσης, αν πληκτρολογήσετε lsθα δείτε αυτό:

Βασικά αυτό που κάναμε εδώ ήταν απλώς να κατεβάσετε και να ξεκινήσετε ένα τοπικό δίκτυο Fabric. Μπορούμε να σταματήσουμε τη χρήση ./stopFabric.shαν θέλουμε. Στο τέλος της αναπτυξιακής μας περιόδου, πρέπει να τρέξουμε./teardownFabric.sh

ΣΗΜΕΙΩΣΗ: Αυτός ο τοπικός χρόνος εκτέλεσης προορίζεται να ξεκινά συχνά, να σταματά και να καταρρέει για αναπτυξιακή χρήση. Για χρόνο εκτέλεσης με πιο επίμονη κατάσταση, θα θελήσετε να αναπτύξετε το δίκτυο εκτός του περιβάλλοντος προγραμματιστή. Μπορείτε να το κάνετε αυτό εκτελώντας το δίκτυο σε Kubernetes ή σε διαχειριζόμενες πλατφόρμες όπως το IBM Blockchain. Ωστόσο, θα πρέπει πρώτα να ακολουθήσετε αυτό το σεμινάριο για να πάρετε μια ιδέα.

Δημιουργία και ανάπτυξη του επιχειρηματικού μας δικτύου

Θυμάστε τα πακέτα yoκαι generator-hyperledger-composerεγκαταστήσαμε νωρίτερα;

yoμας παρέχει ένα οικοσύστημα γεννήτριας όπου οι γεννήτριες είναι πρόσθετα που μπορούν να εκτελεστούν με την εντολή yo. Αυτό χρησιμοποιείται για τη ρύθμιση δειγμάτων εφαρμογών για διάφορα έργα. generator-hyperledger-composerείναι η γεννήτρια Yo που θα χρησιμοποιούμε καθώς περιέχει προδιαγραφές για τη δημιουργία επιχειρηματικών δικτύων boilerplate μεταξύ άλλων.

1. Δημιουργία επιχειρηματικού δικτύου

Ανοίξτε το τερματικό σε έναν κατάλογο επιλογής και τύπου yo hyperledger-composer

Θα σας υποδεχτεί κάτι παρόμοιο με τα παραπάνω. Επιλέξτε Business Networkκαι ονομάστε το cards-trading-networkόπως φαίνεται παρακάτω:

2. Μοντελοποίηση του επιχειρηματικού μας δικτύου

Το πρώτο και πιο σημαντικό βήμα προς τη δημιουργία ενός επιχειρηματικού δικτύου είναι ο προσδιορισμός των πόρων που υπάρχουν. Έχουμε τέσσερις τύπους πόρων στη γλώσσα μοντελοποίησης:

  • Περιουσιακά στοιχεία
  • Συμμετέχοντες
  • Συναλλαγές
  • Εκδηλώσεις

Για μας cards-trading-network, θα ορίσουμε έναν τύπο στοιχείου TradingCard, έναν τύπο συμμετέχοντα Trader, μια συναλλαγή TradeCardκαι ένα συμβάν TradeNotification.

Προχωρήστε και ανοίξτε τα δημιουργημένα αρχεία σε έναν επεξεργαστή κώδικα της επιλογής σας. Άνοιγμα org.example.biznet.ctoπου είναι το αρχείο μοντελοποίησης. Διαγράψτε όλο τον κωδικό που υπάρχει σε αυτόν καθώς θα τον ξαναγράψουμε (εκτός από τη δήλωση χώρου ονομάτων).

Αυτό περιέχει τις προδιαγραφές για το περιουσιακό μας στοιχείο TradingCard. Όλα τα στοιχεία και οι συμμετέχοντες πρέπει να έχουν ένα μοναδικό αναγνωριστικό για αυτά που καθορίζουμε στον κώδικα, και στην περίπτωσή μας, είναιcardId

Επίσης, το περιουσιακό μας στοιχείο έχει μια GameType cardTypeιδιότητα που βασίζεται στον απαριθμητή που ορίζεται παρακάτω. Τα αθροίσματα χρησιμοποιούνται για να καθορίσουν έναν τύπο που μπορεί να έχει έως και N πιθανές τιμές, αλλά τίποτα άλλο. Στο παράδειγμά μας, δεν TradingCardμπορεί να έχει cardTypeάλλο από Baseball, FootballήCricket

Τώρα, για να καθορίσετε τον Traderτύπο πόρου των συμμετεχόντων, προσθέστε τον ακόλουθο κώδικα στο αρχείο μοντελοποίησης

Αυτό είναι σχετικά απλούστερο και αρκετά κατανοητό. Έχουμε έναν τύπο συμμετέχοντα Traderκαι αναγνωρίζονται μοναδικά από τους δικούς traderIdτους.

Τώρα, πρέπει να προσθέσουμε μια αναφορά TradingCardστα δικά μας για να έχουμε μια αναφορά που να δείχνει στον κάτοχό του, ώστε να γνωρίζουμε σε ποιον ανήκει η κάρτα. Για να το κάνετε αυτό, προσθέστε την ακόλουθη γραμμή μέσα στο TradingCardστοιχείο σας :

--> Trader owner

έτσι ώστε ο κώδικας να μοιάζει με αυτόν:

Αυτή είναι η πρώτη φορά που χρησιμοποιήσαμε το --&gt. και πρέπει να αναρωτιέστε τι είναι αυτό. Αυτό είναι ένα σημείο σχέσης r. oa nd -> είναι το πώς διαφοροποιούμε τις ιδιότητες ενός πόρου έναντι μιας σχέσης με έναν άλλο τύπο πόρου. Δεδομένου ότι ο κάτοχος is a Trader που συμμετέχει στο δίκτυο, θέλουμε μια αναφορά στο that Trader απευθείας, και αυτό ακριβώς συμβαίνει whστο ->.

Τέλος, προχωρήστε και προσθέστε αυτόν τον κώδικα στο αρχείο μοντελοποίησης που καθορίζει ποιες παραμέτρους θα απαιτηθούν για να πραγματοποιήσετε μια συναλλαγή και να εκπέμψετε ένα συμβάν.

3. Προσθήκη λογικής για τις συναλλαγές μας

Για να προσθέσουμε λογική πίσω από τη TradeCardσυνάρτηση, χρειαζόμαστε ένα αρχείο λογικής Javascript. Δημιουργήστε έναν νέο κατάλογο με το όνομα libτου φακέλου του έργου σας και δημιουργήστε ένα νέο αρχείο logic.jsμε τον ακόλουθο κώδικα:

ΣΗΜΕΙΩΣΗ: Ο διακοσμητής στα σχόλια πάνω από τη λειτουργία είναι πολύ σημαντικός. Χωρίς το @param {org.example.biznet.TradingCard} trade, η συνάρτηση δεν έχει ιδέα στην οποία Transactionαναφέρεται ο κώδικας από τη γλώσσα μοντελοποίησης. Επίσης, βεβαιωθείτε ότι το όνομα παραμέτρου που περνά (δηλαδή trade) είναι αυτό που περνάτε στον ορισμό της συνάρτησης αμέσως μετά.

Αυτός ο κωδικός ελέγχει ουσιαστικά αν η συγκεκριμένη κάρτα έχει forTrade == trueκαι ενημερώνει τον κάτοχο της κάρτας σε αυτήν την περίπτωση. Στη συνέχεια, ενεργοποιεί την TradeNotificationεκδήλωση για αυτήν την κάρτα.

4. Καθορισμός δικαιωμάτων και κανόνων πρόσβασης

Προσθέστε έναν νέο κανόνα για permissions.aclνα δώσετε στους συμμετέχοντες πρόσβαση στους πόρους τους. Στην παραγωγή, θα θέλατε να είστε πιο αυστηροί με αυτούς τους κανόνες πρόσβασης. Μπορείτε να διαβάσετε περισσότερα για αυτά εδώ.

5. Δημιουργία αρχείου επιχειρηματικού δικτύου (BNA)

Τώρα που ολοκληρώθηκε η κωδικοποίηση, ήρθε η ώρα να δημιουργήσετε ένα αρχείο αρχειοθέτησης για το επιχειρηματικό μας δίκτυο, ώστε να μπορούμε να το αναπτύξουμε στον τοπικό χρόνο εκτέλεσης του Fabric. Για να το κάνετε αυτό, ανοίξτε το Terminal στον κατάλογο του έργου σας και πληκτρολογήστε το:

composer archive create --sourceType dir --sourceName .

Αυτή η εντολή λέει στο Hyperledger Composer ότι θέλουμε να δημιουργήσουμε ένα BNA από έναν κατάλογο που είναι ο τρέχων ριζικός μας φάκελος.

ΣΗΜΕΙΩΣΗ: Το όνομα και η έκδοση BNA προέρχονται από το package.jsonαρχείο. Όταν προσθέτετε περισσότερο κώδικα, θα πρέπει να αλλάξετε τον αριθμό έκδοσης εκεί για να αναπτύξετε μοναδικά αρχεία ικανά να αναβαθμίσουν υπάρχοντα επιχειρηματικά δίκτυα.

6. Εγκαταστήστε και αναπτύξτε το αρχείο BNA

Μπορούμε να εγκαταστήσουμε και να αναπτύξουμε το δίκτυο στον τοπικό χρόνο εκτέλεσης Fabric χρησιμοποιώντας τον PeerAdminχρήστη. Για να εγκαταστήσετε το επιχειρηματικό δίκτυο, πληκτρολογήστε

composer network install --archiveFile [email protected] --card [email protected]

Για να αναπτύξετε το επιχειρηματικό δίκτυο, πληκτρολογήστε

composer network start --networkName cards-trading-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card [email protected] --file cards-trading-admin.card

Το networkNameκαι networkVersionπρέπει να είναι το ίδιο με αυτό που ορίζεται package.jsonδιαφορετικά, δεν θα λειτουργήσει.

--fileπαίρνει το όνομα του αρχείου που θα δημιουργηθεί για την επαγγελματική κάρτα αυτού του δικτύου. Αυτή η κάρτα πρέπει στη συνέχεια να εισαχθεί για να μπορεί να χρησιμοποιηθεί πληκτρολογώντας

composer card import --file cards-trading-admin.card

Φοβερο. Μπορούμε τώρα να επιβεβαιώσουμε ότι το δίκτυό μας λειτουργεί και πληκτρολογώντας

composer network ping --card [email protected]

--card αυτή τη φορά παίρνει την κάρτα διαχειριστή του δικτύου που θέλουμε να κάνουμε ping.

Εάν όλα πήγαν καλά, θα πρέπει να δείτε κάτι παρόμοιο με αυτό:

Δοκιμή του επιχειρηματικού μας δικτύου

Τώρα που το δίκτυό μας λειτουργεί και λειτουργεί στο Fabric, μπορούμε να ξεκινήσουμε το Composer Playground για να επικοινωνήσουμε μαζί του. Για να το κάνετε αυτό, πληκτρολογήστε composer-playgroundτο Terminal και ανοίξτε το //localhost:8080/στο πρόγραμμα περιήγησής σας και θα πρέπει να δείτε κάτι παρόμοιο με αυτό:

Πατήστε Σύνδεση τώρα για [email protected]και θα σας υποδεχτεί με αυτήν την οθόνη:

Η σελίδα Ορισμός είναι όπου μπορούμε να κάνουμε αλλαγές στον κώδικά μας, να αναπτύξουμε αυτές τις αλλαγές για να αναβαθμίσουμε το δίκτυό μας και να εξάγουμε αρχεία επιχειρηματικών δικτύων.

Μεταβείτε στη δοκιμαστική σελίδα από το επάνω μενού και θα δείτε αυτό:

Επιλέξτε Traderαπό συμμετέχοντες, κάντε κλικ στο Δημιουργία νέου συμμετέχοντα κοντά επάνω δεξιά και κάντε ένα νέο Traderπαρόμοιο με αυτό:

Πηγαίνετε μπροστά και κάντε μερικά ακόμη Trader. Δείτε πώς φαίνονται οι τρεις έμποροι μου με τα ονόματα Haardik, John και Tyrone.

Τώρα, ας κάνουμε μερικά περιουσιακά στοιχεία. Κάντε κλικ στο TradingCardαριστερό μενού και πατήστε Δημιουργία νέου περιουσιακού στοιχείου . Παρατηρήστε πώς το ownerπεδίο είναι ιδιαίτερα ενδιαφέρον εδώ, μοιάζει με αυτό:

Αυτή είναι μια σχέση. Αυτό είναι το --> που σημαίνει. Καθορίζουμε τον ακριβή τύπο πόρου ακολουθούμενο από το μοναδικό αναγνωριστικό και το voila τους, έχουμε δείκτη σχέσης.

Προχωρήστε και τελειώστε κάνοντας TradingCardκάτι παρόμοιο με αυτό:

Παρατηρήστε πώς τα ownerπεδία δείχνουν Trader#1aka Haardikγια εμένα. Προχωρήστε και δημιουργήστε μερικά ακόμη φύλλα και δώστε τη δυνατότητα σε ένα ζευγάρι να έχει forTradeαληθινό.

Παρατηρήστε πώς Card#2έχει forTrade == true;

Τώρα για τα διασκεδαστικά πράγματα, ας δοκιμάσουμε κάρτες συναλλαγών: Δ

Κάντε κλικ στο Υποβολή συναλλαγής στα αριστερά και κάντε το cardσημείο TradingCard#2και το newOwnerσημείο για να σας Trader#3αρέσει αυτό:

Πατήστε Υποβολή και ρίξτε μια ματιά στα δικά σας TradingCard, θα δείτε ότι Card#2τώρα έχει τον ιδιοκτήτη Trader#3: Δ

Δημιουργία διακομιστή API REST

Η πραγματοποίηση συναλλαγών με το Playground είναι ωραία, αλλά όχι βέλτιστη. Πρέπει να δημιουργήσουμε λογισμικό από την πλευρά των πελατών για να τους παρέχουμε μια απρόσκοπτη εμπειρία, δεν χρειάζεται καν να γνωρίζουν απαραίτητα για την υποκείμενη τεχνολογία blockchain. Για να το κάνουμε αυτό, χρειαζόμαστε έναν καλύτερο τρόπο αλληλεπίδρασης με το επιχειρηματικό μας δίκτυο. Ευτυχώς, έχουμε την composer-rest-serverενότητα για να μας βοηθήσει με αυτό ακριβώς.

Πληκτρολογήστε composer-rest-serverτο τερματικό σας, καθορίστε [email protected], επιλέξτε μην χρησιμοποιείτε ποτέ χώρους ονομάτων και συνεχίστε με τις προεπιλεγμένες επιλογές για τα υπόλοιπα ως εξής:

Ανοίξτε //localhost:3000/explorer/και θα σας υποδεχτεί μια τεκμηριωμένη έκδοση ενός REST API που δημιουργείται αυτόματα: D

Δημιουργία γωνιακής εφαρμογής που χρησιμοποιεί το REST API

Θυμάστε τη yo hyperledger-composerγεννήτρια; Μπορεί να κάνει περισσότερα από τη δημιουργία ενός επιχειρηματικού δικτύου. Μπορεί επίσης να δημιουργήσει μια εφαρμογή Angular 4 που εκτελείται ενάντια στο REST API που δημιουργήσαμε παραπάνω.

Για να δημιουργήσετε την εφαρμογή web Angular, πληκτρολογήστε yo hyperledger-composerτο τερματικό σας, επιλέξτε Angular, επιλέξτε να συνδεθείτε σε ένα υπάρχον επιχειρηματικό δίκτυο με την κάρτα [email protected]και συνδεθείτε σε ένα υπάρχον REST API επίσης. ( Επεξεργασία: Οι νεότερες εκδόσεις του λογισμικού ενδέχεται να ζητούν το αρχείο κάρτας αντί μόνο το όνομα της κάρτας)

Αυτό θα συνεχίσει να τρέχει npm install, θα το δώσει ένα λεπτό και μόλις ολοκληρωθούν θα μπορείτε να φορτώσετε //localhost:4200/και να σας υποδεχτούν με μια σελίδα παρόμοια με αυτήν:

Επεξεργασία: Οι νεότερες εκδόσεις του λογισμικού ενδέχεται να απαιτούν την εκτέλεση του npm installεαυτού σας και στη συνέχεια την εκτέλεσηnpm start

Τώρα μπορείτε να παίξετε με το δίκτυό σας απευθείας από αυτήν την εφαρμογή, η οποία επικοινωνεί με το δίκτυο μέσω του διακομιστή REST που εκτελείται στη θύρα 3000.

Συγχαρητήρια! Μόλις δημιουργήσατε το πρώτο σας επιχειρηματικό δίκτυο blockchain χρησιμοποιώντας Hyperledger Fabric και Hyperledger Composer: D

Μπορείτε να προσθέσετε περισσότερες δυνατότητες στο δίκτυο συναλλαγών καρτών, να ορίσετε τιμές στις κάρτες και να δώσετε υπόλοιπο σε όλους Trader. Μπορείτε επίσης να έχετε περισσότερες συναλλαγές που επιτρέπουν στο Traders να αλλάξει την τιμή του forTrade. Μπορείτε να το ενσωματώσετε σε εφαρμογές χωρίς blockchain και να επιτρέψετε στους χρήστες να αγοράσουν νέες κάρτες που προστίθενται στον λογαριασμό τους, τις οποίες στη συνέχεια μπορούν να πραγματοποιήσουν περαιτέρω συναλλαγές στο δίκτυο.

Οι δυνατότητες είναι ατελείωτες, τι θα τις κάνετε; Ενημερώστε με στα σχόλια: Δ

ΓΝΩΡΙΖΟΥΜΕ ΣΤΟΙΧΕΙΑ: Η εφαρμογή web Angular δεν χειρίζεται σωστά τις συναλλαγές;

Τη στιγμή της γραφής, η γωνιακή γεννήτρια έχει ένα πρόβλημα όπου το μοβ κουμπί Invoke στη σελίδα συναλλαγών δεν κάνει τίποτα. Για να το διορθώσουμε, πρέπει να κάνουμε μερικές αλλαγές στην γωνιακή εφαρμογή που δημιουργήθηκε.

1. Αποκτήστε ένα μέσο για άνοιγμα όταν πατάτε το κουμπί

Η πρώτη αλλαγή που πρέπει να κάνουμε είναι να ανοίξει το κουμπί το παράθυρο του τρόπου. Ο κώδικας περιέχει ήδη το απαιτούμενο παράθυρο τρόπου, το κουμπί λείπει απλώς (click)και τα data-targetχαρακτηριστικά.

Για να το επιλύσετε, ανοίξτε το /cards-trading-angular-app/src/app/TradeCard/TradeCard.component.html

Το όνομα του αρχείου μπορεί να διαφέρει ανάλογα με το transactionόνομά σας . Εάν έχετε πολλά transactions στο επιχειρηματικό σας δίκτυο, θα πρέπει να κάνετε αυτήν την αλλαγή σε όλα τα αρχεία HTML τύπου πόρου συναλλαγής.

Μετακινηθείτε προς τα κάτω μέχρι το τέλος και θα δείτε ένα on> tag. Go ahead and add these two attributes to that tag:

(click)="resetForm();" data-target="#addTransactionModal"

so the line looks like this:

Invoke<;/button>

The (click) attribute calls resetForm(); which sets all the input fields to empty, and data-target specifies the modal window to be opened upon click.

Save the file, open your browser, and try pressing the invoke button. It should open this modal:

2. Removing unnecessary fields

Just getting the modal to open isn’t enough. We can see it requests transactionId and timestamp from us even though we didn’t add those fields in our modeling file. Our network stores these values which are intrinsic to all transactions. So, it should be able to figure out these values on it’s own. And as it turns out, it actually does. These are spare fields and we can just comment them out, the REST API will handle the rest for us.

In the same file, scroll up to find the input fields and comment out the divs responsible for those input fields inside addTransactionModal

Save your file, open your browser, and press Invoke. You should see this:

You can now create transactions here by passing data in these fields. Since card and newOwner are relationships to other resources, we can do a transaction like this:

Press Confirm, go back to the Assets page, and you will see that TradingCard#2 now belongs to Trader#1:

Congratulations! You have successfully built and deployed a blockchain business network on Hyperledger Fabric. You also generated a REST API server for that network and learnt how to make web apps which interact with that API.

If you have any questions or doubts, drop it in the comments and I will get back to you.

Email: [email protected]

LinkedIn: //www.linkedin.com/in/haardikkk