Δήλωση: Το παρακάτω είναι το έγγραφο "Xunlei Global Blockchain Application Competition Development Guide" που γράφτηκε από την Xunlei Company, γιατί να χρησιμοποιήσετε το έγγραφο που γράφτηκε από την Xunlei Company ως οδηγό ανάπτυξης blockchain;
Το Thunder είναι στην πραγματικότητα μια ιδιωτική αλυσίδα που δημιουργήθηκε με έξυπνα συμβόλαια Ethereum, η τεχνολογία ήταν πολύ ώριμη και έχει εις βάθος έρευνα για την τεχνολογία blockchain, η οποία έχει καθοδηγητική σημασία για την ανάπτυξη του blockchain μας.
Όπως λέει και η παροιμία, «βγάλτε συμπεράσματα από ένα παράδειγμα», μπορούμε να αναπτύξουμε άλλες εφαρμογές blockchain διαβάζοντας το έγγραφο του οδηγού ανάπτυξης blockchain που γράφτηκε από τον Xunlei, χάρη στον Xunlei.
Το έγγραφο αναφέρει:
1/16 Οδηγός ανάπτυξης ανταγωνισμού εφαρμογών Thunder Global Blockchain Ανάπτυξη σύμβασης στη σύσταση γραμμής 1. Πριν γράψετε έξυπνα συμβόλαια, πρέπει να έχετε μια ορισμένη κατανόηση των βασικών αρχών του blockchain (επισυνάπτεται: Επισκόπηση Ethereum). 2. Μάθετε τη γλώσσα solidity (solidity API). 3. Μάθετε να χρησιμοποιείτε το πλαίσιο τρούφας σε συνδυασμό με τη μάθηση solidity. Χρησιμοποιήστε τρούφα αναπτύξτε τοπικά Εκτελέστε συμβόλαια σε περιβάλλον blockchain. 4. Μάθετε και χρησιμοποιήστε το zeppelin-solidty (ένα τυποποιημένο πλαίσιο συμβολαίου αφιερωμένο στην ασφάλεια) και την ολοκλήρωση του σχεδιασμού Λειτουργία σύμβασης, ξεχωριστά δεδομένα και λογικά συμβόλαια, έλεγχος ασφάλειας αδειών και εξέταση της λογικής αναβάθμισης. 5. Μάθετε να αλληλεπιδράτε με συμβόλαια χρησιμοποιώντας web3.js. Χρησιμοποιήστε το πρόσθετο Metamask και την υπηρεσία web με blockchain ΑΛΛΗΛΕΠΙΔΡΑΣΗ. 6. Φόρουμ Q&A: http://wanke.xunlei.com/forum.php; mod=forumdisplay&fid=53 (Τυχόν προβλήματα που αντιμετωπίζετε μπορούν να αναιρεθούν σε αυτό το φόρουμ.) Θα σας απαντήσουμε εντός 3 εργάσιμων ημερών) Βασικές έννοιες Αλυσίδα μπλοκ Το Blockchain είναι ένα αποκεντρωμένο κατανεμημένο υπολογιστικό σύστημα, κύριο χαρακτηριστικό του οποίου είναι η μόνιμη αμετάβλητη των δεδομένων, Δεν μπορεί να πλαστογραφηθεί και έχει υψηλό βαθμό ανοιχτότητας, διαφάνειας και εμπιστοσύνης. Οι βασικές τεχνολογίες περιλαμβάνουν τον Βυζαντινό Αλγόριθμο Συναίνεσης Ανοχής Σφαλμάτων (PBFT), τεχνολογία κρυπτογράφησης, τεχνολογία P2P κ.λπ. Συναλλαγή Το Blockchain μπορεί να γίνει κατανοητό ως ένα παγκόσμιο κοινό σύστημα βάσης δεδομένων συναλλαγών. Οποιοδήποτε λογισμικό με άδεια μπορεί να το διαβάσει Πάρτε δεδομένα από το δίκτυο blockchain. Όταν είναι απαραίτητο να αλλάξετε τα δεδομένα στο δίκτυο μπλοκ, πρέπει να ξεκινήσει μια κουβέρτα Υπάρχουν αιτήματα που γίνονται δεκτά από κόμβους μπλοκ, τα οποία αναφέρονται συλλογικά ως συναλλαγές στο σύστημα. Οι συναλλαγές είναι συναλλακτικές και υποβάλλονται στο blockchain, είτε δεν εκτελούνται όλες είτε όλες. Ένα στέλεχος συναλλαγών Αφού ολοκληρωθεί η σειρά, αποθηκεύεται μόνιμα στο blockchain και δεν μπορεί να τροποποιηθεί ή να εκτελεστεί ξανά. Οι συναλλαγές ξεκινούν και υπογράφονται από τον λογαριασμό στο σύστημα και μέσω κρυπτογραφίας, οι συναλλαγές μπορούν να διατηρηθούν μόνο από το ιδιωτικό κλειδί 2/16 Κάποιος το ξεκινά, άλλοι δεν μπορούν να το τροποποιήσουν και να σφυρηλατήσουν. Αυτό διασφαλίζει τη γνησιότητα και την ασφάλεια της συναλλαγής. Λογαριασμός Υπάρχουν δύο τύποι λογαριασμών στο σύστημα blockchain, ο ένας είναι εξωτερικός και ο άλλος είναι ο λογαριασμός συμβολαίου. Εξωτερικός λογαριασμός που ανήκει Τα δικά σας μοναδικά δημόσια και ιδιωτικά κλειδιά και ο λογαριασμός σας ελέγχεται από αυτό το ζεύγος κλειδιών. Οι λογαριασμοί ΣΜΕ έχουν τον δικό τους κωδικό και ο λογαριασμός δημιουργείται από Έλεγχος ίδιου κώδικα. Ο λογαριασμός προσδιορίζεται από μια διεύθυνση και το μήκος της διεύθυνσης είναι το ίδιο και δεν υπάρχει διαφορά μεταξύ των δύο τύπων λογαριασμών. Η διεύθυνση του εξωτερικού λογαριασμού παρέχεται από Δημιουργείται το δημόσιο κλειδί και η διεύθυνση σύμβασης χρησιμοποιεί τη διεύθυνση από την οποία δημιουργήθηκε ο λογαριασμός σύμβασης και τον αριθμό των συναλλαγών που δημιούργησαν τον λογαριασμό σύμβασης (nonce). Οι συμβάσεις αναπτύσσονται από την επίσημη διεύθυνση και οι απλοί λογαριασμοί δεν μπορούν να δημοσιεύσουν απευθείας συμβάσεις. Ο συνδυασμός του χρήστη Πρέπει να αναθεωρηθεί επίσημα και να κυκλοφορήσει από την Xunlei. Μέσα στο σύστημα, δεν υπάρχει διαφορά μεταξύ των δύο τύπων λογαριασμών. Κάθε λογαριασμός έχει 256 bit μέσα στο σύστημα Η δομή αποθήκευσης κλειδιού-τιμής έως 256 bit ονομάζεται αποθήκευση. Κάθε λογαριασμός έχει ένα υπόλοιπο που ονομάζεται Το υπόλοιπο, σε wei, μπορεί να τροποποιηθεί στέλνοντας μια συναλλαγή με αριθμητική τιμή στον λογαριασμό. Συμβόλαιο Ένα συμβόλαιο είναι ένας λογαριασμός blockchain που αποθηκεύει τον κωδικό και η κλήση συμβολαίου πραγματοποιείται με την αποστολή συναλλαγών σε αυτόν τον λογαριασμό. Όταν Η προηγούμενη πιο δημοφιλής γλώσσα προγραμματισμού συμβολαίων ήταν η Solidity. Προς το παρόν, ο διαγωνισμός υποστηρίζει μόνο την υποβολή συμβάσεων στη γλώσσα Solidity. Η σύμβαση χωρίζεται σε δύο μέρη, αποθήκευση δεδομένων και λειτουργία, τα δεδομένα αποθηκεύουν την κατάσταση της σύμβασης και η λειτουργία είναι η σύμβαση Η εξωτερική διεπαφή πραγματοποιεί ερωτήματα δεδομένων και τροποποίηση κατάστασης καλώντας συναρτήσεις. Γράψτε ένα συμβόλαιο μέσω μιας γλώσσας προγραμματισμού και λάβετε τον bytecode EVM μετά τη μεταγλώττιση. Με την αποστολή μιας συναλλαγής στον λογαριασμό συμβολαίου, Τρέχουσα κλήση σύμβασης. Αέριο Το αέριο είναι η μονάδα πληρωμής του blockchain και όταν δημιουργείται μια συναλλαγή, θα καθορίζεται μια συγκεκριμένη ποσότητα αερίου. Λόρδος Εάν πρόκειται να περιορίσει το ποσό υπολογισμού της συναλλαγής και να πληρώσει ένα τέλος για την εκτέλεση της συναλλαγής. Κατά την εκτέλεση της συναλλαγής, η Gas Θα καταναλωθεί από έναν κανόνα που ορίζεται από το EVM. Η τιμή του φυσικού αερίου είναι μια τιμή που καθορίζεται από τον δημιουργό της συναλλαγής και τον αριθμό των τελών που απαιτούνται για την εκτέλεση της συναλλαγής Η ποσότητα είναι Gas_Price*Αέριο. Η συναλλαγή τελειώνει Εάν περισσέψει αέριο, το υπόλοιπο μέρος επιστρέφεται στην πρόταση του δημιουργού χρήστες. Εάν το αέριο είναι ανεπαρκές, η εκτέλεση της συναλλαγής θα αποτύχει και η συναλλαγή θα αποτύχει να αποτρέψει τις επιθέσεις πλημμύρας για την ασφάλεια του συστήματος Το τέλος διεκπεραίωσης δεν επιστρέφεται. Η μικρότερη μονάδα τιμής φυσικού αερίου είναι wei, 10^18 wei = 1 γραμμάριο αλυσίδας. Στερεότητα 3/16 Η Solidity είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου σχεδιασμένη για έξυπνα συμβόλαια, που τρέχει σε EVM (Ethereum). Εικονική μηχανή)。 Η υλοποίηση του σχεδιασμού της γλώσσας επηρεάζεται από τη C++/Python/JavaScript. Η Solidity είναι μια γλώσσα με ισχυρούς τύπους που υποστηρίζει κληρονομικότητα, πολυμορφισμό, διεπαφές, αφαίρεση, βιβλιοθήκες, προσαρμοσμένους τύπους δεδομένων και πολλά άλλα Φύλο. Το Solidity υποστηρίζει προγραμματισμό εντολών συναρμολόγησης και ο κώδικας μεταγλωττίζεται σε bytecode και εκτελείται στο EVM. Η στερεότητα είναι Η πιο δημοφιλής γλώσσα ανάπτυξης έξυπνων συμβολαίων είναι επίσης η γλώσσα που προτείνεται και υποστηρίζεται από την πλατφόρμα Thunder Contract. Σημειώσεις: 1. Η εικονική μηχανή Ethereum είναι ένα εικονικό περιβάλλον στο Ethereum που παρέχει ένα περιβάλλον χρόνου εκτέλεσης για έξυπνα συμβόλαια Προσομοιωμένη μηχανή. Η πλατφόρμα του διαγωνισμού είναι συμβατή με το EVM, αλλά πρέπει να συμμορφώνεται με τους περιορισμούς χρήσης της επίσημης πλατφόρμας. 2. Οι τύποι λογαριασμών χωρίζονται σε εξωτερικούς λογαριασμούς (συνήθεις διευθύνσεις λογαριασμών συναλλαγών) και λογαριασμούς μελλοντικής εκπλήρωσης. Δημιουργία σύμβασης Είναι η διαδικασία αποστολής μιας συναλλαγής στη διεύθυνση λογαριασμού προορισμού 0. 3. Ο διαγωνισμός καθορίζει τη χρήση τρούφας (truffle v4.1.5 solidity v0.4.21) για την ανάπτυξη έξυπνων συνδυασμών Η πλατφόρμα θα επαληθεύσει τον bytecode σύμφωνα με τον πηγαίο κώδικα του εγγράφου που υποβάλλεται από τον συμμετέχοντα. , Αναπτύξτε συμβόλαια με τρούφα Τρούφα πλαισίου ανάπτυξης σταθερότητας έξυπνων συμβολαίων. Παρέχει ένα πλήρες σύνολο ανάπτυξης, εντοπισμού σφαλμάτων και επεξεργασίας Μετάφραση, ανάπτυξη και δοκιμή περιβαλλόντων εσωτερικής εγκατάστασης. Μπορείτε να χρησιμοποιήσετε γρήγορα την εντολή unbox της εντολής προτύπου με βάση ορισμένα πρότυπα Δημιουργήστε την αντίστοιχη δομή συμβολαίου. Εγκαταστήστε το Truffle npm i -g τρούφα [root@opennode sandai]# έκδοση τρούφας Τρούφα v4.1.5 (πυρήνας: 4.1.5) Στερεότητα v0.4.21 (solc-js) Έναρξη 1. Αρχικοποιήστε το έργο της σύμβασης με τρούφα 4/16 MKDIR Simple-Storage CD απλής αποθήκευσης τρούφα init 2. Δημιουργήστε ένα νέο αρχείο συμβολαίου: Μπορείτε να χρησιμοποιήσετε την τρούφα για να δημιουργήσετε συμβόλαιο Μπορείτε επίσης να δημιουργήσετε ένα νέο αρχείο απευθείας από τη γραμμή εντολών του SimpleStorage συμβόλαιο/SimpleStorage.sol SimpleStorage.sol σταθερότητα pragma ^0.4.21; συμβόλαιο SimpleStorage { uint myVariable; σύνολο συναρτήσεων(uint x) public { myVariable = x;
} συνάρτηση get() σταθερές δημόσιες επιστροφές (uint) { επιστροφή myVariable;
}
} 3. Προσθήκη σεναρίων μετεγκατάστασης: Μπορείτε να χρησιμοποιήσετε τη μετεγκατάσταση δημιουργίας τρούφας 2_deploy_contract Προστίθεται η μέθοδος γραμμής εντολών και μπορείτε επίσης να δημιουργήσετε απευθείας ένα νέο αρχείο μεταναστεύσεις/2_deploy_contract.js 2_deploy_contract.js; η εκτέλεση της μετανάστευσης τρούφας Η σειρά γραμμών σχετίζεται με το όνομα του αρχείου, επομένως πρέπει να ονομαστούν πολλά σενάρια ανάπτυξης με τη σειρά var SimpleStorage = artifacts.require("SimpleStorage"); module.exports = function(deployer) { deployer.deploy(SimpleStorage); 5/16 }; 4. Εκτελέστε το συμβόλαιο μεταγλώττισης τρούφας και το μεταγλωττισμένο συμβόλαιο βρίσκεται στο φάκελο κατασκευής. ανά συμβόλαιο Για την ανάπτυξη απαιτείται ένα αντίστοιχο αρχείο json που περιέχει bytecode, abiCode κ.λπ. 5. Επεξεργαστείτε το truffle.js για να ρυθμίσετε το συμβόλαιο ανάπτυξης τρούφας και τη σύνδεση RPC για αλληλεπίδραση με το blockchain. [root@localhost opennode]# vi truffle.js module.exports = {
networks: {
development: {
host: "127.0.0.1",
port: 8545, network_id: "*"
}
} }; 6. Ενεργοποιήστε το προεπιλεγμένο περιβάλλον blockchain του Truffle στην κονσόλα. Ανάπτυξη τρούφας Η Truffle Develop ξεκίνησε στις
http://127.0.0.1:9545/
Accounts: (0) 0x627306090abab3a6e1400e9345bc60c78a8bef57 (1) 0xf17f52151ebef6c7334fad080c5704d77216b732 (2) 0xc5fdf4076b8f3a5357c5e395ab970b5b54098fef (3) 0x821aea9a577a9b44299b9c15c88cf3087f3b5544 (4) 0x0d1d4e623d10f9fba5db95830f7d3839406c6af2 (5) 0x2932b7a2355d6fecc4b5c0b6bd44cc31df247a2e (6) 0x2191ef87e392377ec08e7c08eb105ef5448eced5 (7) 0x0f4f2ac550a1b4e2280d04c21cea7ebd822934b5 (8) 0x6330a553fc93768f612722bb8c2ec78ac90b3bbc (9) 0x5aeda56215b167893e80b4fe645ba6d5bab767de 6/16 Ιδιωτικά κλειδιά: (0) C87509A1C067BBDE78BEB793E6FA76530B6382A4C0241E5E 4a9ec0a0f44dc0d3 (1) ae6ae8e5ccbfb04590405997ee2d52d2b330726137b87505 3c36d94e974d162f (2) 0dbbe8e4ae425a6d2687f1a7e3ba17bc98c673636790f1b8 ad91193c05875ef1 (3) c88b703fb08cbea894b6aeff5a544fb92e78a18e19814cd8 5da83b71f772aa6γ (4) 388C684F0BA1EF5017716ADB5D21A053EA8E90277D086833 7519f97bede61418 (5) 659cbb0e2411a44db63778987b1e22153c086a95eb6b18bd F89DE078917ABC63 (6) 82D052C865F5763AAD42ADD438569276C00D3D88A2D062D3 6b2bae914d58b8c8 (7) AA3680D5D48A8283413F7A108367C7299CA73F553735860A 87b08f39395618b7 (8) 0f62d96d6675f32685bbdb8ac13cda7c23436f63efbb9d07 700d8669ff12b7c4 (9) 8d5366123cb560bb606379f90a0bfd4769eecc0557f1b362 DCAE9012B548B1E5
Mnemonic: candy maple cake sugar pudding cream Γλυκιά απόλαυση Honey Rich Smooth Crumble ⚠ Σημαντικό ⚠ : Αυτό το μνημονικό δημιουργήθηκε για εσείς από την Τρούφα. Δεν είναι ασφαλές. Βεβαιωθείτε ότι δεν το χρησιμοποιείτε στην παραγωγή 7/16 blockchains, διαφορετικά κινδυνεύετε να χάσετε κεφάλαια. τρούφα(ανάπτυξη)> Αυτό παρέχει ένα εγγενές περιβάλλον blockchain για την Truffle για την εκτέλεση συμβολαίων, δημιουργώντας 10 λογαριασμούς από προεπιλογή, καθένας από τους οποίους δημιουργείται Το αρχικό υπόλοιπο του λογαριασμού είναι 100 αιθέρας. Μπορείτε επίσης να χρησιμοποιήσετε τη γραφική διεπαφή που παρέχεται από το Ganache , πρέπει να τροποποιήσετε τη θύρα στην οποία είναι συνδεδεμένη η διαμόρφωση. 7. Εκτελέστε το συμβόλαιο ανάπτυξης θύρας μετεγκατάστασης τρούφας σε μια νέα κονσόλα (ή σε ανάπτυξη κονσόλας για την εκτέλεση μετεγκατάστασης). 8. Δοκιμάστε τον κωδικό συμβολαίου με τρούφα αναπτύσσω. SimpleStorage.deployed().then(function(instance ){επιστροφή instance.get.call(); }).then(συνάρτηση(τιμή) {επιστροφή τιμής.toNumber()}) // 0 SimpleStorage.deployed().then(function(instance ){return instance.set(100); }); Πληροφορίες συναλλαγής εξόδου SimpleStorage.deployed().then(function(instance ){επιστροφή instance.get.call(); }).then(συνάρτηση(τιμή) {επιστροφή τιμής.toNumber()}); // 100 9. Δοκιμάστε το συμβόλαιο με δοκιμή τρούφας Χρησιμοποιήστε τη δοκιμή δημιουργίας τρούφας SimpleStorage για να δημιουργήσετε ένα νέο ή Δημιουργήστε ένα νέο αρχείο δοκιμής/SimpleStorage.test.js απευθείας. const SimpleStorage = artifacts.require('SimpleStorage'); contract('SimpleStorage', function(accounts) { 8/16 it("should assert true", function(done)
{ var simpleStorage = SimpleStorage.deployed(); var παράδειγμα; simpleStorage.then(res => { instance = res; επιστροφή instance.get() }).then(τιμή => { assert.equal('0', value.toNumber(), 'δεν ισούται με 0') }).then(() => { instance.set(100) }).then(() => { επιστροφή instance.get() }).then(τιμή => { assert.equal('100', value.toNumber(), 'δεν ισούται με 100') }) done(); }); }); Στη νέα κονσόλα, πληκτρολογήστε truffle test ./test/SimpleStorage.test.js. 10. Συμβόλαια δοκιμής με remix Βάλτε συμβόλαια που αναπτύχθηκαν χρησιμοποιώντας τρούφα σε remix για γρήγορη τροποποίηση Ανάπτυξη και επίκληση της προτεινόμενης σύμβασης. Το Remix παρέχει ένα περιβάλλον χρόνου εκτέλεσης μεταγλώττισης για συμβόλαια και μπορεί να ελεγχθεί από το συμβόλαιο Ο πίνακας μπορεί να δει τις λεπτομερείς πληροφορίες κάθε συναλλαγής της σύμβασης, όπως παραμέτρους εισόδου και εξόδου, δεδομένα υπογεγραμμένης μεθόδου, κατακερματισμός συναλλαγής και άλλες πληροφορίες. Υποστήριξη εντοπισμού σφαλμάτων. 1. Χρησιμοποιήστε τη λεπτομέρεια μεταγλώττισης για να δείτε τις λεπτομέρειες της σύνταξης της σύμβασης. Συμπεριλαμβανομένου bytecode, abi και χρησιμοποιώντας web3.js ταχεία ανάπτυξη της μεθόδου Drip Ah. 9/16 2. Χρησιμοποιήστε την εκτέλεση για να δημιουργήσετε μια σύμβαση και η κονσόλα μπορεί να προβάλει τη συναλλαγή που δημιούργησε τη σύμβαση. Χρησιμοποιήστε το Truffle Unbox για να δημιουργήσετε διαδραστικές εφαρμογές συμβολαίων Τα παραπάνω βήματα δημιουργούν ένα περιβάλλον συμβολαίου που μπορεί να μεταγλωττιστεί, να αναπτυχθεί και να διορθωθεί χρησιμοποιώντας βασική τρούφα init. Παρακάτω Δημιουργήστε ένα νέο έργο με το Truffle Unbox, το οποίο μας παρέχει ένα πρότυπο έργου τρούφας, μέσα στο Ορισμένες εξαρτήσεις περιβάλλοντος αλληλεπίδρασης εφαρμογών συμβάσεων. Μπορείτε να δείτε τις επίσημες προσφορές στο Truffle Boxes Πλαίσια προτύπων. Το παρακάτω είναι το πρότυπο αντίδρασης. 1. Νέο έργο truf-react mkdir truf-react 10/16 cd truf-react Τρούφα Unbox React Η διαδικασία unbox κατεβάζει το πρότυπο εξαγωγής και εκτελεί λειτουργίες όπως η εγκατάσταση npm. 2. Διαμορφώστε το truffle.js του έργου module.exports = { Βλέπω <http://truffleframework.com/docs/advanced/confi τροποποίηση> για να προσαρμόσετε την τρούφα σας διαμόρφωση!
networks: {
development: {
host: '127.0.0.1',
port: '9545', network_id: '*' // Ταίριασμα οποιοδήποτε αναγνωριστικό δικτύου
}
} }; 3. Ξεκινήστε α ανάπτυξη τρούφας 4. Τροποποίηση του SRC/App.js import React, { Component } από το 'react' εισαγωγή SimpleStorageContract από '.. /κατασκευή/συμβόλαια/SimpleStorage.json' εισαγάγετε το getWeb3 από το './utils/getWeb3' εισαγωγή './css/oswald.css' εισαγωγή './css/open-sans.css' εισαγωγή './css/pure-min.css' 11/16 εισαγωγή './App.css' const contract = require('truffle-contract') const simpleStorage = σύμβαση(SimpleStorageContract) class Η εφαρμογή επεκτείνει το στοιχείο { κατασκευαστής(στηρίγματα) { σούπερ (στηρίγματα) this.state = {
storageValue: 0,
web3: null,
inputValue: 0,
address: null
} this.changeValueHandle = this.changeValueHandle.bind(αυτό) this.setHandle = this.setHandle.bind(αυτό)
} componentWillMount() { Αποκτήστε φορέα κινητής τηλεφωνίας και web3 παράδειγμα. Δείτε utils/getWeb3 για περισσότερα πληροφορίες. πάρτεWeb3 .then(αποτελέσματα => { this.setState({
web3: αποτελέσματα.web3 }) Στιγμιαίο συμβόλαιο Μόλις παρέχεται το web3. 12/16 this.instantiateContract() }) .catch(() => { console.log('Σφάλμα εύρεση web3.») })
} instantiateContract() {
/* * ΠΑΡΆΔΕΙΓΜΑ ΈΞΥΠΝΟΥ ΣΥΜΒΟΛΑΊΟΥ
* * Κανονικά αυτές οι λειτουργίες θα καλείται στο πλαίσιο μιας * κρατική βιβλιοθήκη διαχείρισης, αλλά για ευκολία τα έχω τοποθετήσει εδώ. */ this.simpleStorageSet(5)
} changeValueHandle(συμβάν) { this.setState({
inputValue: Αριθμός(event.target.value) })
} setHandle() { this.simpleStorageSet(this.state.inputValue)
} simpleStorageSet(x) { simpleStorage.setProvider(this.state.web3.curren tΠάροχος) Δηλώνοντας αυτό για αργότερα έτσι ώστε 13/16 μπορούμε να αλυσοδέσουμε λειτουργίες στο SimpleStorage. var simpleStorageInstance Λήψη λογαριασμών. this.state.web3.eth.getAccounts((error, λογαριασμοί) => { simpleStorage.deployed().then((instance) => { simpleStorageInstance = παρουσία this.setState({
address: instance.address }) Αποθηκεύει ένα δεδομένη τιμή, 5 από προεπιλογή. Επιστροφή simpleStorageInstance.set(x, {από: λογαριασμοί[0]}) }).then((αποτέλεσμα) => { Αποκτήστε την αξία από τη σύμβαση για να αποδείξει ότι λειτούργησε. Επιστροφή simpleStorageInstance.get.call(λογαριασμοί[0]) }).then((αποτέλεσμα) => { Κατάσταση ενημέρωσης με το αποτέλεσμα. Επιστροφή this.setState({ storageValue: result.c[0] }) }) })
} render() { επιστροφή ( <div className="Εφαρμογή"> <nav className="navbar pure-menu pure-menuhorizontal"> 14/16 <a href="#" className="pure-menu-heading puremenu-link">Τρούφα Κουτί</a> </nav> <κύρια className="περιέκτης"> <div className="pure-g"> <div className="pure-u-1-1"> <h1>Καλό να πάμε!</h1> <p>Το κουτί τρούφας σας είναι εγκατεστημένο και έτοιμο.</p> <h2>Παράδειγμα έξυπνου συμβολαίου</h2> <p>Εάν τα συμβόλαιά σας μεταγλωττίστηκαν και μετεγκαταστάθηκαν με επιτυχία, παρακάτω θα εμφανιστεί μια αποθηκευμένη τιμή 5 (από προεπιλογή).</p> <p>Δοκιμάστε να αλλάξετε την τιμή που είναι αποθηκευμένη στο <strong>διαδίκτυο 59</strong> της App.js.</p> <p>Η αποθηκευμένη αξία είναι: {this.state.storageValue}</p> <p>Διεύθυνση σύμβασης που έχει αναπτυχθεί: {this.state.address}</p> </div> <div> <input type="αριθμός" onChange= {this.changeValueHandle}/> <κουμπί onClick={this.setHandle}>set</button> 15/16 </div> </div> </main> </div> );
}
} εξαγωγή προεπιλεγμένης εφαρμογής Προστέθηκε η μέθοδος κλήσης του συνόλου συμβολαίων. Και δείξτε τη διεύθυνση της σύμβασης. 5. Ανοίξτε μια νέα κονσόλα και εκτελέστε το npm run start 6. Ανοίξτε το http://lcoalhost:3000 στο πρόγραμμα περιήγησής σας για να δείτε τα αποτελέσματα της σύμβασης. 7. Ορίστε την αξία της αποθηκευμένης σύμβασηςΔεδομένα μέσω των πλαισίων συνόλου και εισαγωγής. 8. Μπείτε στο trufle αναπτύξτε
//将xxx替换为address SimpleStorage.at('xxxx').then(res => {επιστροφή res.get()}) Λαμβάνεται η τιμή επιστροφής του τύπου BigNUmber και ορίζεται η τιμή στον πίνακα c αποθηκευμέναδεδομένα. Χρησιμοποιήστε το πρόσθετο προγράμματος περιήγησης Metamask για να αλληλεπιδράσετε με το blockchain Αναφορά http://truffleframework.com/tutorials/pet-shop Οι συμμετέχοντες υποβάλλουν έγγραφα Ο διαγωνισμός καθορίζει τη χρήση του Truffle για την ανάπτυξη έξυπνων συμβολαίων, με την έκδοση Truffle v4.1.5 να αντιστοιχεί στην έκδοση solcjs v0.4.21. Οι προγραμματιστές πρέπει να υποβάλουν το πακέτο zip του έργου Truffle και τα σχετικά έγγραφα εισαγωγής του έργου, τα οποία περιλαμβάνουν, τουλάχιστον Τα ακόλουθα: 16/16 1. Βασική δομή αρχείου Truffle Project: Δοκιμή μετεγκατάστασης συμβάσεων κατασκευής package.json truffle.js truffle-config.js README.md // Περιγραφή της μηχανικής τεκμηρίωσης Δεν απαιτείται node_modules 2. Ανάγκη παροχής επεξήγησης PPT ή PDF ολόκληρου του προϊόντος του έργου, συμπεριλαμβανομένης της εισαγωγής ιστορικού προϊόντος, της σημασίας του προϊόντος, Διεύθυνση λήψης εφαρμογής (προαιρετικό), εισαγωγή διαδικασίας χρήσης προϊόντος. Οι επόμενοι προγραμματιστές τρίτων μπορούν να εφαρμόσουν εφαρμογές συμβολαίων και τσέπες αλυσίδας σύμφωνα με το επερχόμενο έγγραφο καθοδήγησης ThunderChain ΑΛΛΗΛΕΠΙΔΡΑΣΗ. Τεκμηρίωση & Εργαλεία API στερεότητας τεκμηρίωση τρούφας Το Ganache παρέχει μια γραφική διεπαφή για το εγγενές περιβάλλον blockchain Η Zeppelin-Solidty δεσμεύεται σε ένα ασφαλές και τυποποιημένο πλαίσιο συμβάσεων Το MetaMask παρέχει προσθήκες προγράμματος περιήγησης για προγράμματα περιήγησης με περιβάλλον blockchain μέσω συνδέσεων RPC web3.js JS με ενθυλάκωση Ethereum για αλληλεπίδραση με το blockchain Τέλος, κατεβάστε το έγγραφο pdf:
Dev_Guide_zh.pdf
(373.55 KB, Αριθμός λήψεων: 6)
|