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

Άποψη: 13646|Απάντηση: 2

Οδηγός ανάπτυξης εφαρμογών Blockchain

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 3/5/2018 3:55:28 μ.μ. | | |
Δήλωση: Το παρακάτω είναι το έγγραφο "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)
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 3/5/2018 4:01:58 μ.μ. |
Δημοσιεύτηκε στις 8/5/2018 2:25:10 μ.μ. |
Έμαθε, ευχαριστώ
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com