Βήμα 2: Δημιουργήστε τη δική σας πύλη προγραμματιστών έξυπνων συμβολαίων

    Δεύτερα βήματα

    Σε αυτήν την ενότητα πρόκειται να παρουσιάσουμε μερικά ισχυρά εργαλεία για να κάνουμε την εμπειρία ανάπτυξης όσο το δυνατόν πιο εύκολη. Θα εγκαταστήσουμε ένα περιβάλλον ανάπτυξης που ονομάζεται Truffle, θα εξερευνήσουμε τη Στερεότητα, θα καλύψουμε τις βασικές αρχές ενός έξυπνου συμβολαίου (θα κάνουμε ακόμη και το δικό μας!) Και θα ξεκινήσουμε τον δικό μας κόμβο στον τοπικό μας υπολογιστή. Μόλις αναπτυχθεί με επιτυχία σε τοπικό επίπεδο, θα χρησιμοποιήσουμε το Remix για να αλληλεπιδράσουμε με το συμβόλαιό μας και να εμβαθύνουμε στη διαδικασία ανάπτυξης!

    Εξοικειωθείτε με την τρούφα

    Υτανο

    Το Truffle είναι ένα εξαιρετικό περιβάλλον ανάπτυξης που σας επιτρέπει να συνδεθείτε και να δοκιμάσετε χρησιμοποιώντας την Εικονική Μηχανή Ethereum. Το Truffle δημιουργήθηκε για να διευκολύνει την ανάπτυξη και με αλληλεπιδράσεις που συμβαίνουν τοπικά, αυτό βοηθά στη μείωση του άγχους της ανάπτυξης τόσο σε ένα testnet (όπως το Ropsten ή το Rinkeby) όσο και στο mainnet.

    Για περισσότερες πληροφορίες σχετικά με το Truffle ρίξτε μια ματιά εδώ:

    Στιγμιότυπο οθόνης 2020 08 26 στις 5 49 43 μ.μ.

    Για να εγκαταστήσετε το Truffle στο τερματικό σας, προχωρήστε και εκτελέστε τα εξής:

    npm εγκατάσταση τρούφας -g

    Σημείωση: Προτάσεις για Windows

    Εάν χρησιμοποιείτε το Truffle σε Windows, ενδέχεται να αντιμετωπίσετε κάποιες διενέξεις ονομάτων που θα μπορούσαν να εμποδίσουν την σωστή εκτέλεση του Truffle. Παρακαλώ δες την ενότητα για την επίλυση διενέξεων ονομασίας για λύσεις.

    Ganache 

    Ενώ είμαστε σε αυτό, ας προχωρήσουμε και εγκαταστήστε το CLI για ganache

    Μια γρήγορη αναδρομή στο ganache είναι ότι είναι ένα προσωπικό blockchain που μπορείτε να χρησιμοποιήσετε τοπικά για γρήγορη περιστροφή και δοκιμή της λειτουργικότητας των έργων. Το Ganache είναι ένα εργαλείο που μπορείτε να χρησιμοποιήσετε σε ολόκληρο τον κύκλο ανάπτυξης. Όχι μόνο μπορείτε να αναπτύξετε, αλλά και να αναπτύξετε και να δοκιμάσετε τα dApps σας. Όλα αυτά συμβαίνουν τοπικά στο μηχάνημά σας, οπότε αυτό είναι το χαμηλότερο περιβάλλον τριβής / κινδύνου για να εργαστείτε στα έργα σας!

    Χρήση npm:


    npm εγκατάσταση -g ganache-cli

    Εντάξει, επιστροφή στην τρούφα!

    Μερικές από τις προσφορές που προσφέρει η Truffle:

    • Ενσωματωμένη συλλογή έξυπνων συμβολαίων, σύνδεση, ανάπτυξη και δυαδική διαχείριση.
    • Αυτοματοποιημένη δοκιμή συμβολαίων για ταχεία ανάπτυξη.
    • Γραπτή, επεκτάσιμη ανάπτυξη & πλαίσιο μεταναστεύσεων.
    • Διαχείριση δικτύου για ανάπτυξη σε οποιοδήποτε κοινό & ιδιωτικά δίκτυα.
    • Διαχείριση πακέτων με EthPM & NPM, χρησιμοποιώντας το πρότυπο ERC190.
    • Διαδραστική κονσόλα για άμεση επικοινωνία με συμβόλαια.
    • Διαμορφώσιμος αγωγός κατασκευής με υποστήριξη για στενή ενσωμάτωση.
    • Εξωτερικός δρομέας σεναρίων που εκτελεί σενάρια σε περιβάλλον Truffle.

    Για το σεμινάριό μας πρόκειται να φτιάξουμε κάτι από την αρχή, ωστόσο σας ενθαρρύνουμε να δείτε μερικά από τα έργα λέβητα που η Truffle έχει ήδη δημιουργήσει με την ονομασία Truffle Boxes (βρέθηκε εδώ).

    Τώρα που έχουμε εγκαταστήσει τρούφα και ganache, ας συζητήσουμε τη σταθερότητα!

    Στερεότητα 

    Το Solidity είναι μια απίστευτα δημοφιλής αντικειμενοστρεφής γλώσσα υψηλού επιπέδου για την υλοποίηση έξυπνων συμβάσεων που εκτελούνται στο Ethereum Virtual Machine (EVM). Τα έξυπνα συμβόλαια είναι προγράμματα που διέπουν τη συμπεριφορά λογαριασμών στην πολιτεία Ethereum. Αν δεν έχετε ξαναδεί ποτέ μια σειρά Στερεότητας, αλλά είστε εξοικειωμένοι με το C ++ και το JavaScript θα παρατηρήσετε περισσότερες από μερικές ομοιότητες. 

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

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

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

    Ξεκινώντας ένα έργο τρούφας 

    Με αυτό είπε ας ξεκινήσουμε το έργο μας και να το ονομάσουμε “eth-hello-world”

    Μεταβείτε στο τερματικό σας και ας δημιουργήσουμε έναν νέο κενό φάκελο 

    mddir eth-hello-world

    Μόλις έχουμε τον κενό κατάλογό μας, προχωρήστε και μεταβείτε στο φάκελο και εκτελέστε την εντολή

    τρούφα init

    Μόλις ολοκληρωθεί η διαδικασία, θα πρέπει να είμαστε σε θέση να δούμε μερικά αρχεία που δημιουργήθηκαν για εμάς:

    Στιγμιότυπο οθόνης 2020 08 26 στις 7 21 53 μ.μ.

    Έχουμε πλέον επαφές, μετεγκαταστάσεις, δοκιμαστικό φάκελο και αρχείο truffle-config. Ας ρίξουμε μια ματιά σε αυτά τα αρχεία και να συζητήσουμε σε υψηλότερο επίπεδο τι είναι.

    Συμβάσεις

    Αυτός ο φάκελος θα περιέχει όλα τα έξυπνα συμβόλαιά σας (τα οποία σε αυτό το παράδειγμα θα δημιουργούμε χρησιμοποιώντας το Solidity). Εάν δεν έχετε ακούσει ποτέ έξυπνες επαφές, ένας τρόπος να τις σκεφτείτε είναι: κομμάτια κώδικα που εκτελούνται στο blockchain (αυτό μπορεί να είναι τοπικό, δοκιμαστικό ή mainnet) που είναι εγγυημένα ότι θα παράγουν τα ίδια αποτελέσματα για όλους που τα εκτελούν. Οι Έξυπνες συμβάσεις χρησιμοποιούνται στο dApps (αποκεντρωμένες εφαρμογές) και έχουν τεράστιο αριθμό περιπτώσεων χρήσης. Ψηφοφορία, τυχερά παιχνίδια, αλυσίδα εφοδιασμού, νομίσματα, οικονομικά αρχεία και αυτό είναι μόνο μερικά!

    Για να το αναλύσουμε ακόμη περισσότερο, ο Nick Szabo δίνει το παράδειγμα του αυτόματου πωλητή. Εάν βάλετε τη σωστή ποσότητα νομισμάτων στο μηχάνημα, εσείς (και όλοι πριν / μετά από εσάς) μπορείτε να περιμένετε το ίδιο ακριβές αποτέλεσμα σε αντάλλαγμα. Το ίδιο ισχύει και για τις έξυπνες επαφές που είναι ενσωματωμένες στο Ethereum, περιέχουν μια τιμή και έως ότου πληρούνται οι προϋποθέσεις τους (δηλαδή το σωστό ποσό νομισμάτων στο παράδειγμά μας) θα ξεκλειδώσει και θα απελευθερώσει τις πληροφορίες που προσπαθείτε να ανακτήσετε.

    Θα επιστρέψουμε στη συζήτηση για τη Στερεότητα και τα έξυπνα συμβόλαια λίγο αργότερα, ας προχωρήσουμε στις μεταναστεύσεις!

    Μετεγκαταστάσεις

    Οι μετεγκαταστάσεις είναι αρχεία Javascript που σας επιτρέπουν να αναπτύξετε τα συμβόλαιά σας στο δίκτυο Ethereum. Αυτό που είναι πραγματικά ενδιαφέρον για αυτούς είναι ότι υπάρχει μια υποκείμενη υπόθεση ότι η εργασία σας θα εξελιχθεί και η ανάπτυξή σας θα αλλάξει με την πάροδο του χρόνου. Καθώς κάνετε ενημερώσεις, θα δημιουργήσετε νέα σενάρια μετεγκατάστασης κατά την εξέλιξη του έργου σας. Ένας τρόπος να σκεφτείτε τα αρχεία μετεγκατάστασης είναι ότι είναι κατά κύριο λόγο υπεύθυνοι για τη σταδιοποίηση και την ανάπτυξη των εργασιών σας. Ένας απλός τρόπος να τα σκεφτείτε είναι οι μετεγκαταστάσεις είναι ένα σύνολο σεναρίων διαχειριζόμενης ανάπτυξης. Καθώς ενημερώνετε την εργασία σας, ένα αρχείο καταγραφής των προηγουμένως εκτελεμένων μετεγκαταστάσεων καταγράφεται μέσω αλυσίδας μέσω ενός ενσωματωμένου συμβολαίου μετεγκατάστασης.

    Ρίξτε μια ματιά, έχετε ήδη ένα συμβόλαιο μετανάστευσης! Μεταβείτε στον κατάλογο συμβολαίων και ανοίξτε τον, θα δείτε ένα αρχείο Migrations.sol που περιέχει μια σύμβαση που θα πρέπει να μοιάζει με αυτό:

    Screen Shot 2020 08 27 στις 4 49 03 π.μ.

    Αυτό είναι ένα προεπιλεγμένο συμβόλαιο που δημιουργείται για εμάς όταν τρέχουμε truffle init. Το Truffle από τη φύση σας απαιτεί να έχετε συμβόλαιο μετεγκατάστασης για να χρησιμοποιήσετε τη δυνατότητα μετεγκατάστασης, επομένως μην το διαγράψετε!

    Σημείωση: Πρέπει να αναπτύξετε αυτό το συμβόλαιο εντός της πρώτης σας μετεγκατάστασης για να επωφεληθείτε από τη δυνατότητα Μετεγκαταστάσεις.

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

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

    Screen Shot 2020 08 27 στις 5 09 25 π.μ.

    Καθώς δημιουργείτε συμβόλαια, θα πρέπει να βεβαιωθείτε ότι έχετε ένα αρχείο migrasi.js σε συνδυασμό με αυτά. Χωρίς βαθιά βουτιά στα artifacts.require (), deployer.deploy, κλπ εδώ είναι μια εξαιρετική τεκμηρίωση από την ομάδα τρούφας για να εξηγήσει περαιτέρω τη χρήση αυτών των μεθόδων.

    Για να συντάξετε ένα έργο Truffle, μεταβείτε στη ρίζα του καταλόγου όπου βρίσκεται το έργο και, στη συνέχεια, πληκτρολογήστε τα ακόλουθα σε ένα τερματικό:

    συλλογή τρούφας

    Για να εκτελέσετε τις μετακινήσεις σας στο τερματικό σας, θα εκτελέσετε τελικά (περιμένετε, δεν χρειάζεται να το κάνουμε ακόμα!)

    μετανάστευση τρούφας

    Αυτό θα εκτελέσει όλες τις μετεγκαταστάσεις που βρίσκονται στον κατάλογο μετεγκαταστάσεων του έργου σας.

    Αυτό που είναι ενδιαφέρον να σημειωθεί είναι ότι αυτή η εντολή θα εκτελεί μόνο μετεγκαταστάσεις που δημιουργήθηκαν πρόσφατα. Επομένως, εάν η προηγούμενη μετεγκατάσταση σας εκτελέστηκε με επιτυχία, δεν θα την εκτελέσετε ξανά. Επίσης, εάν δεν υπάρχουν νέες μετεγκαταστάσεις για εκτέλεση, απλά δεν θα εκτελεστούν. Εάν χρειαστεί, μπορείτε να χρησιμοποιήσετε την επιλογή –ρυθμίστε για να εκτελέσετε όλες τις μετακινήσεις σας από την αρχή.

    Τεκμηριώνονται και άλλες επιλογές εντολών εδώ.

    Σημείωση: Εγκαταστήσαμε νωρίτερα, αλλά για τοπικές δοκιμές βεβαιωθείτε ότι έχετε δοκιμαστική blockchain όπως Ganache εγκατασταθεί και εκτελείται πριν από την εκτέλεση μετεγκατάστασης.

    Δοκιμές

    Όσον αφορά τις δοκιμές γραφής, η τρούφα είναι γεμάτη με μερικά εξαιρετικά εργαλεία για να γίνει αυτό διαισθητικό. Ειδικά εάν σκοπεύετε να αναπτύξετε τα συμβόλαιά σας στο mainnet, (αλλά είναι καλή πρακτική, ακόμη και στο testnet), είναι πολύ σημαντικό να εκτελέσετε δοκιμές και να ελέγξετε τα συμβόλαιά σας με τον καλύτερο δυνατό τρόπο. Το Truffle έχει καταστήσει απλό και εύχρηστο τον έλεγχο / δοκιμή της ανάπτυξής σας.

    Το Truffle χρησιμοποιεί το Μόκα πλαίσιο δοκιμών και Τσα για ισχυρισμούς που θα σας παρέχουν ένα σταθερό πλαίσιο από το οποίο θα γράψετε τις δοκιμές σας JavaScript. 

    Σημείωση: Εάν δεν είστε εξοικειωμένοι με τις δοκιμές μονάδας γραφής στο Mocha, δείτε Η τεκμηρίωση του Mocha πριν συνεχίσετε.

    Συμπληρωματική σημείωση: Ένα εξαιρετικό εργαλείο που μπορείτε να χρησιμοποιήσετε για να ελέγξετε καλά τις συμβάσεις σας είναι Μύθος, η κορυφαία υπηρεσία ανάλυσης ασφάλειας στον τομέα που προσφέρει σε βάθος κριτικές για έξυπνα συμβόλαια. Η αποστολή τους είναι όχι μόνο να διασφαλίσουν ότι αποφεύγετε τα δαπανηρά λάθη αλλά και να κάνετε το Ethereum μια πιο ασφαλή και αξιόπιστη πλατφόρμα συνολικά.

    Όλα τα δοκιμαστικά αρχεία πρέπει να βρίσκονται στον κατάλογο./test. Το Truffle θα εκτελεί δοκιμαστικά αρχεία μόνο με τις ακόλουθες επεκτάσεις αρχείων: .js, .ts, .es, .es6, .jsx και.sol. Όλα τα άλλα αρχεία αγνοούνται.

    Για να εκτελέσετε όλες τις δοκιμές, απλώς εκτελέστε:

    δοκιμή τρούφας

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

    Σύνταξη έξυπνης σύμβασης

    Ας περάσουμε στον κατάλογο συμβολαίων και γράψτε το πρώτο μας συμβόλαιο που σκοπεύουμε να αναπτύξουμε στο τοπικό περιβάλλον δοκιμών (ganache)!

    Θα ξεκινήσουμε δημιουργώντας το αρχείο μας.sol, το οποίο θα ονομάσουμε HelloWorld.sol

    Στη συνέχεια μπορούμε να προσθέσουμε το βασικό μας συμβόλαιο που θα μοιάζει με αυτό

    σταθερότητα πραγμάτων >= 0,5.8 <0.7.0; συμβόλαιο HelloWorld {string δημόσιο μήνυμα; buildor (string memory initMessage) δημόσιο {message = initMessage; } ενημέρωση λειτουργίας (μνήμη συμβολοσειράς newMessage) δημόσια {message = newMessage; }}

    Κοιτάζοντας το συμβόλαιό μας λίγο πιο κοντά μπορούμε να αναλύσουμε μερικά στοιχεία

    Θυμηθείτε, ένα συμβόλαιο είναι μια συλλογή λειτουργιών και δεδομένων (η κατάστασή του).

    Η λέξη-κλειδί pragma μπορεί να χρησιμοποιηθεί για την ενεργοποίηση ορισμένων χαρακτηριστικών ή ελέγχων του μεταγλωττιστή. Μια οδηγία pragma είναι πάντα τοπική σε ένα αρχείο προέλευσης, οπότε πρέπει να προσθέσετε το pragma σε όλα τα αρχεία σας, εάν θέλετε να είναι ενεργοποιημένο στο έργο σας. Χωρίς δήλωση πραγμάτων στην αρχή του (ή οποιουδήποτε) αρχείου αλληλεγγύης, το συμβόλαιό μας δεν θα ξέρει πώς να συντάξει.

    (εδώ είναι ένας σύνδεσμος προς τα έγγραφα σταθερότητας για να μάθετε τα σκαμπανεβάσματα των αποχρώσεων σταθερότητας)

    Τελικά, ένα συμβόλαιο είναι μια συλλογή λειτουργιών και δεδομένων (η κατάστασή του) που βρίσκεται σε μια συγκεκριμένη διεύθυνση στο blockchain Ethereum.

    Κοιτάζοντας τη λειτουργικότητα του συμβολαίου μας μπορούμε να δούμε ότι θέτουμε το μήνυμά μας να είναι δημόσια συμβολοσειρά με δυνατότητα προβολής. 

    Η λέξη-κλειδί «δημόσιο» καθιστά προσβάσιμες τις μεταβλητές έξω από μια σύμβαση και δημιουργεί μια λειτουργία την οποία μπορούν να καλέσουν άλλα συμβόλαια ή SDK για πρόσβαση στο δημόσιο μήνυμα συμβολοσειράς αξίας.

    συμβόλαιο HelloWorld {string δημόσιο μήνυμα;

    Εδώ είναι μια λειτουργία που εκτελείται μόνο κατά τη δημιουργία του συμβολαίου 

    buildor (string memory initMessage) δημόσιο {message = initMessage; }

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

    Στη συνέχεια μπορούμε να προετοιμάσουμε ένα μήνυμα που μεταδίδεται ως παράμετρος και μπορεί να τροποποιηθεί / ενημερωθεί με τη λειτουργία ενημέρωσης.

    Αυτή είναι μια δημόσια προσβάσιμη λειτουργία που παίρνει μια συμβολοσειρά ως παράμετρο και ενημερώνει το «μήνυμα» (δείτε παρακάτω).

    ενημέρωση λειτουργίας (string memory newMessage) public {message = newMessage; }}

    Εκεί το έχετε, ένα βασικό αλλά εύπεπτο συμβόλαιο HelloWorld!

    Τώρα που έχουμε προσθέσει το συμβόλαιό μας, μπορούμε τώρα να βεβαιωθούμε ότι έχει τη δυνατότητα να συντάξει!

    Μεταβείτε στο φάκελο Migration στο έργο μας και τώρα θα δημιουργήσουμε ένα αρχείο a.js αφιερωμένο στη σύμβαση HelloWorld.

    Θα δημιουργήσουμε ένα νέο αρχείο και το όνομα είναι 2_deploy_contracts.js

    Θυμηθείτε τη σημείωση για συμβάσεις ονομασίας από νωρίτερα!

    const HelloWorld = artifacts.require ("Γειά σου Κόσμε"); module.exports = function (deployer) {deployer.deploy (HelloWorld), "σειρά"); };

    Ωραία δουλειά! Είμαστε σχεδόν έτοιμοι να αναπτύξουμε το συμβόλαιό μας, αλλά πρώτα πρέπει να βεβαιωθούμε ότι τα αρχεία truffle-config γνωρίζουν σε ποιον να μιλήσουν. Όπως αναφέρθηκε προηγουμένως, θα επικεντρωθούμε στο τοπικό μας περιβάλλον σε αυτήν την ενότητα, αλλά στην ενότητα 3 (spolier) όχι μόνο δημιουργούμε και αναπτύσσουμε τοπικά, το φέρνουμε σε ένα δοκιμαστικό δίκτυο!

    Κάντε κύλιση προς τα κάτω στο αρχείο truffle-config.js μέχρι να δείτε την ενότητα που αφορά τα δίκτυα

    αποσύνδεση / προσθήκη των παρακάτω 

    δίκτυα: {ανάπτυξη: {host: "127.0.0.1", θύρα: 8545, network_id: "*", },

    Τώρα το αρχείο σας πρέπει να μοιάζει με αυτό:

     

    Στιγμιότυπο 2020 08 31 στις 6 14 45 π.μ.

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

    Ξεκινήστε το Ganache

    Με αυτό είπε ας προχωρήσουμε και ξεκινήστε το ganache μας 

    στο τερματικό σας προχωρήστε και τρέξτε 

    ganache-cli

    Στιγμιότυπο 2020 08 31 στις 6 20 12 π.μ.

    Τσέκαρέ το! Τώρα εκτελείτε το δικό σας TestRPC εκεί ακριβώς στο τερματικό σας! 

    (περισσότερα για αυτό εδώ)

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

    Γρήγορη κριτική 

    Ας επιστρέψουμε στο έργο μας και ας ρίξουμε μια σύντομη κριτική για το τι έχουμε κάνει. 

    • Δημιουργήσαμε ένα νέο έργο
    • Αρχικοποιημένη τρούφα
    • Μια γρήγορη περιήγηση στα ικριώματα
    • Δημιουργήσαμε το συμβόλαιο HelloWorld
    • Προστέθηκε λογική στο φάκελο μετεγκαταστάσεων για το συμβόλαιό μας
    • Πήγαμε στο αρχείο ρυθμίσεων και προσαρμόσαμε τις πληροφορίες του δικτύου μας 

    Ήρθε η ώρα να τεθεί σε λειτουργία το συμβόλαιό μας! 

    Στο νέο μας παράθυρο τερματικού (αφού έχουμε τρέξει το ganache στο άλλο) 

    ας προχωρήσουμε και τρέξουμε 

    συλλογή τρούφας

    Τώρα θα πρέπει να το βλέπετε αυτό ως αποτέλεσμα στο τερματικό σας:

    Screen Shot 2020 08 31 στις 7 07 17 π.μ.

    Εάν πηγαίνετε τώρα στο έργο σας, θα δείτε ότι έχετε πλέον ένα φάκελο build / contract πάνω από το φάκελο συμβολαίου που περιέχει αρχεία two.json. Πρέπει να δεις: 

    • Γεια σου World.json
    • Migrations.json 

    Το αρχείο.json σε υψηλό επίπεδο περιγράφει το αναπτυσσόμενο συμβόλαιο και τις λειτουργίες του. Μας επιτρέπει να προσαρμόσουμε τη σύμβαση και να καλέσουμε τις λειτουργίες της.

    Εάν ρίξουμε μια ματιά στο εσωτερικό, μπορούμε να δούμε μια πληθώρα πληροφοριών:

     

    Στιγμιότυπο 2020 08 31 στις 8 01 28 π.μ.

    Βυθίζουμε αυτές τις πληροφορίες πιο βαθιά στο τρίτο βήμα, αλλά κάτι σημαντικό να ρίξουμε μια ματιά είναι το ABI.

    Το Application Binary Interface είναι ένα σχήμα κωδικοποίησης δεδομένων που χρησιμοποιείται στο Ethereum για εργασία με έξυπνα συμβόλαια.

    Ρίξτε μια ματιά στις πληροφορίες που είναι σχετικά διαισθητικό να κατανοήσετε. Το ABI καθορίζει επίσης τον τρόπο με τον οποίο ο χρήστης μπορεί να καλέσει τις συναρτήσεις – δηλαδή, τη θέση της συνάρτησης σε σχέση με τη διεύθυνση έξυπνης σύμβασης. Μια περίληψη υψηλού επιπέδου είναι το ABI είναι η περιγραφή της διεπαφής της σύμβασης. Δεν περιέχει κώδικα και δεν έχει τη δυνατότητα να εκτελεστεί από μόνη της. Στη συνέχεια, έχετε τον bytecode, ο οποίος είναι ο εκτελέσιμος κώδικας EVM, αλλά από μόνο του είναι χωρίς περιβάλλον.

    Ώρα για μετεγκατάσταση

    Εντάξει! 

    Τώρα λοιπόν που έχουμε τρέξει το ganache-cli και έχουμε συντάξει το έξυπνο συμβόλαιό μας, οπότε τώρα ήρθε η ώρα να πραγματοποιήσουμε μετεγκατάσταση των συμβολαίων μας! 

    στο τερματικό σας προχωρήστε και τρέξτε 

    μετανάστευση τρούφας

    ΝΑΙ! Τα κατάφερες!

    Στιγμιότυπο 2020 08 31 στις 8 37 37 π.μ.

    Μπορούμε να δούμε ότι έχουμε αναπτύξει με επιτυχία το έξυπνο συμβόλαιό μας. Μπορείτε να δείτε ότι δημιουργήθηκαν μερικές πολύ χρήσιμες πληροφορίες και αν κατευθυνθείτε στην άλλη καρτέλα σας με το ganachi-cli να εκτελείται, θα πρέπει να δείτε ένα TransactionReceipt (ρίξτε μια ματιά στον εαυτό σας).

    Δοκιμή ETH 

    Προτού κατευθυνθούμε στο Remix, πρέπει να ελέγξουμε κάποια δοκιμή ETH, ώστε να μπορέσουμε να πληρώσουμε τα τέλη αερίου στο Remix (μην ανησυχείτε ότι αυτό δεν θα σας κοστίσει πραγματικά χρήματα). 

    Προχωρήστε προς αυτή τη βρύση και πιάσε λίγο το Rinkeby. Βυθίζουμε σε ποια δοκιμή είναι το ETH στο βήμα 3, αλλά σε αυτό το βήμα απλά γνωρίζουμε ότι θα χρησιμοποιούμε το Rinkeby, το οποίο είναι ένα δίκτυο απόδειξης εξουσίας, αντί να πούμε ότι το Ropsten που είναι ένα δοκιμαστικό δίκτυο Proof of Work (το οποίο μοιάζει περισσότερο με το κοινό καθαρά). Αφού ολοκληρώσετε τα βήματα 2 και 3, θα έχετε μερικά από τα δύο στο πορτοφόλι MetaMask για να πειραματιστείτε!

    Remix

    Εντάξει, τώρα που έχουμε κάποια δοκιμή EHT, ήρθε η ώρα να κατευθυνθούμε στο Remix και να αναπτύξουμε το συμβόλαιό μας εκτός του τοπικού μας περιβάλλοντος και ακόμη και να έχουμε τη δυνατότητα να αλληλεπιδράσουμε με αυτό!

    “Τι είναι το Remix;” 

    Χαίρομαι που ρωτήσατε! 

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

    Λαμβάνοντας κατάλληλες πείσεις και δοκιμάστε (ξανά και ξανά) την ανάπτυξή σας πριν από μια πιθανή έναρξη στο κύριο δίκτυο ethereum μπορεί να σας σώσει ίσως περισσότερο από έναν πονοκέφαλο!

    Τώρα ας πάρουμε το ίδιο συμβόλαιο και να το αναπτύξουμε εκτός του τοπικού μας περιβάλλοντος χρησιμοποιώντας το Remix 

    Σύνδεσμος εδώ 

    Το συμβόλαιό μας 

    Κάντε κλικ στο νέο αρχείο και ας το ονομάσουμε HelloWorld.sol

    (εδώ είναι το συμβόλαιο που θα χρησιμοποιήσουμε ξανά) 

    σταθερότητα πραγμάτων >= 0,5.8 <0.7.0; συμβόλαιο HelloWorld {string δημόσιο μήνυμα; buildor (string memory initMessage) δημόσιο {message = initMessage; } ενημέρωση λειτουργίας (μνήμη συμβολοσειράς newMessage) δημόσια {message = newMessage; }}

    Μπορούμε τώρα να προχωρήσουμε και να προσθέσουμε το συμβόλαιό μας στο πεδίο. (Δείτε το παρακάτω) 

    Στιγμιότυπο 2020 08 31 στις 9 47 48 π.μ.

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

    Μεταγλωττιστής

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

    Να θυμάστε ότι η λέξη-κλειδί pragma χρησιμοποιείται για την ενεργοποίηση ορισμένων δυνατοτήτων ή ελέγχων του μεταγλωττιστή. 

    Έτσι μπορούμε να ρυθμίσουμε το μεταγλωττιστή μας στο 0,6,0 που βρίσκεται μεταξύ της παρεχόμενης περιοχής μας 

    Στιγμιότυπο 2020 09 08 στις 8 44 41 π.μ.

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

    Στη συνέχεια θα δημιουργήσουμε το Περιβάλλον μας για να αναπτύξουμε το συμβόλαιό μας! 

    Ανάπτυξη και εκτέλεση συναλλαγών

    περιβάλλον 

    Θα παρατηρήσετε μερικές διαφορετικές επιλογές όταν επιλέγετε το περιβάλλον σας:

    JavaScript VM: Όλες οι συναλλαγές θα εκτελεστούν σε ένα blockchain sandbox στο πρόγραμμα περιήγησης. Αυτό σημαίνει ότι τίποτα δεν θα επιμείνει κατά τη φόρτωση της σελίδας. Το JsVM είναι το δικό του blockchain και σε κάθε επαναφόρτωση θα ξεκινήσει ένα νέο blockchain, το παλιό δεν θα αποθηκευτεί.

    Πάροχος ένεσης: Το Remix θα συνδεθεί σε έναν πάροχο web3 που έχει εισαχθεί. Μεταμασκ είναι ένα παράδειγμα ενός παρόχου που εισάγει το web3.

    Πάροχος Web3: Το Remix θα συνδεθεί σε έναν απομακρυσμένο κόμβο. Θα πρέπει να δώσετε τη διεύθυνση URL στον επιλεγμένο πάροχο: geth, parity ή οποιονδήποτε πελάτη Ethereum.

    Σε αυτό το παράδειγμα πρόκειται να χρησιμοποιήσουμε: Έγχυση Web3

    Θα χρησιμοποιήσουμε το πορτοφόλι MetaMask και θα βεβαιωθούμε ότι είμαστε συνδεδεμένοι στο δίκτυο δοκιμών Rinkeby 

    Μπορούμε να δούμε στην αριστερή πλευρά ότι είμαστε συνδεδεμένοι στο Rinkeby και επίσης να βλέπουμε τη διεύθυνση του συνδεδεμένου λογαριασμού μας! 

    Στιγμιότυπο 2020 09 08 στις 8 30 29 π.μ.

    Μόλις ορίσουμε τα πάντα, ας προχωρήσουμε και αναπτύξουμε το συμβόλαιό μας!

    Στιγμιότυπο 2020 09 08 στις 8 57 35 π.μ.

    &# 127881; Το κάναμε! &# 127881; 

    Ελέγξτε το παρεχόμενο τερματικό και μπορείτε να δείτε την επιβεβαίωση

    Στιγμιότυπο 2020 09 08 στις 8 58 11 π.μ.

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

    Μόλις επιβεβαιώσουμε, θα δούμε ότι το μήνυμά μας έχει ενημερωθεί!

    Στιγμιότυπο 2020 09 08 στις 9 18 54 π.μ.

    &# 129395; Μπράβο! &# 129395; 

    Έχουμε αναλάβει το συμβόλαιο που αρχικά ξεκινήσαμε τοπικά και έχουμε αναπτύξει αυτό το συμβόλαιο στο Remix για να έχουμε μια οπτική αναπαράσταση της αλληλεπίδρασης των συμβολαίων. Αυτή είναι μια υγιής ροή για προγραμματιστές καθώς αρχίζουν να δημιουργούνται σε αυτόν τον χώρο. Το Remix είναι ένα απίστευτο εργαλείο που πρέπει να χρησιμοποιείται συχνά. Στο Βήμα 3 θα προχωρήσουμε ένα βήμα παραπέρα και θα συνδέσουμε όλες τις πληροφορίες που έχουμε μάθει στα Βήματα 1 & 2 και δέστε τα Truffle + Infura + React μαζί! 

      Ενσωμάτωση προγραμματιστή: Βήμα 1Βήμα 1 Ενσωμάτωση προγραμματιστή

      Ενσωμάτωση προγραμματιστή: Βήμα 1

      Ενσωμάτωση προγραμματιστή: Βήμα 3Βήμα 3 Ενσωμάτωση προγραμματιστή

      Ενσωμάτωση προγραμματιστή: Βήμα 3

      Προσανατολισμός 10 λεπτών Ethereum10 λεπτά προσανατολισμού Ethereum

      Προσανατολισμός 10 λεπτών Ethereum
    Mike Owergreen Administrator
    Sorry! The Author has not filled his profile.
    follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map