4.1 Έξυπνα συμβόλαια και dApps
1 de 1 paso pasado
Editar
Γεια σου! Είναι η διαδικτυακή σειρά "Dominar Web3 con ondas". 4νότητα 4.
Σε αυτή την ενότητα θα ασχοληθούμε με έξυπνες συμβάσεις kai θα μάθουμε επίσης πώς να συνεργαστούμε με τις κύριες βιβλιοθήκες των olas.
Θέματα αυτής της ενότητας:
– Έξυπνα συμβόλαια και dApps
– Bazar κουπονιών Web3.0 dApp
– Commitηφοφορία Commit-Reveal
– κουίζ και προκλήσεις
Μια έξυπνη σύμβαση είναι ένας πηγαίος κώδικας του υπολογιστή ή ένα πρόγραμμα που μπορεί να εκτελεστεί μέσα σε ένα κατανεμημένο περιβάλλον όπως ένα δίκτυο . Όλες οι λειτουργίες και τα αποτελέσματα εκτέλεσης αποθηκεύονται στο .
Αε αυτόν τον ορισμό, μια έξυπνη σύμβαση δεν αποτελεί σύμβαση μεταξύ συμβαλλομένων, αλλά είναι ένα πρωτόκολλο συνεργασίας μεταξύ χρηστών, χρηστών και ηλεκτρονικών υπολογιστών ή ακόμη και μεταξύ υπολογιστών σύμφωνα με τους κανόνες που περιγράφονται στον πηγαίο κώδικα του έξυπνου συμβολαίου.
Τα συμβόλαια Smart Waves αντιπροσωπεύονται από δύο διαφορετικούς τύπους: Έξυπνοι λογαριασμοί και έξυπνα τόκε. Οποιοσδήποτε λογαριασμός Waves μπορεί να μετατραπεί σε έξυπνο λογαριασμό, εφαρμόζοντας ένα ειδικό σενάριο λογαριασμού . Το σενάριο λογαριασμού είναι ένας κώδικας προγράμματος γραμμένος στη γλώσσα PASEO που περιέχει ένα σύνολο συνθηκών που επιτρέπουν και απορρίπτουν διαφορετικούς τύπους εξερχόμενων συναλλαγών.
Για να διευκολυνθεί η ανάπτυξη της διαδικασίας dApp για τους προγραμματιστές, το RIDE- (Waves inteligente contrato de idioma
Οι λειτουργίες @Callable μπορούν να καλούνται από εξωτερικούς χρήστες. Ως αποτέλεσμα της εκτέλεσης, μπορούν να εισαχθούν ή να ενημερωθούν νέες πληροφορίες στην αποθήκευση δεδομένων DAPP clave-valor ή / και τα κονδύλια μπορούν να μεταφερθούν από το υπόλοιπο DAPP στον καλούντα ή σε οποιαδήποτε άλλη διεύθυνση ανάλογα με τη λογική του DAPP. Στην δική μας περίπτωση το dApps και οι έξυπνοι λογαριασμοί είναι οι ίδιοι.
Οι λειτουργίες @Callable () λειτουργούν με δύο τύπους παραμέτρων εισόδου: args και πληρωμή . APIο API Waves έχει μια ειδική λειτουργία για να λειτουργεί με λειτουργίες @Callable – invokeScript () . Δείτε το παρακάτω παράδειγμα: “Εδώ μπορείτε να δείτε το WriteSet () στον έξυπνο συμβατικό κώδικα RIDE. Αυτό σημαίνει ότι το αποτέλεσμα αυτής της κλήσης θα εγγραφεί στην αποθήκευση κλειδιών της dApp ".
Δείτε το δεύτερο παράδειγμα παρακάτω: “Εδώ μπορείτε να δείτε ένα TransferSet () και ScriptResult () στον έξυπνο συμβατικό κώδικα RIDE. Αυτό σημαίνει ότι το αποτέλεσμα αυτής της επίκλησης θα εγγραφεί στην αποθήκευση βασικής αξίας του dApp. να μεταφερθεί ταυτόχρονα σε μια συγκεκριμένη διεύθυνση “.
Μπορούμε να χρησιμοποιήσουμε όλους τους συνδυασμούς του WriteSet () , του TransferSet () ή και των δύο με τη χρήση μεθόδων ScriptResult () .
Όλες οι λειτουργίες είναι ατομικές!
4.2 Cupón Bazar Web 3.0 dApp
1 de 1 paso pasado
Editar
Θυμηθείτε: Κατασκευάζουμε μια αποκεντρωμένη αγορά κουπονιών Web3 – “Bazar de cupones”.
Οι χρήστες αναζητούν εκπτώσεις για αγαθά και υπηρεσίες που μπορούν να αγοράσουν για μια μικρή τιμή σράν.
Κάθε κουπόνι – είναι ένα ψηφιακό στοιχείο που αντιπροσωπεύει μια ειδική έκπτωση που προσφέρεται απόρήμμθθαπόπυυθθθ α ππθ α αό πΚάθ πέ πΚάθ πΚάθ πΚάθ πο αο κο οο α αοαα αψαα αψαφα ααααααα ααααα αοααα αοααα αο αεή ύοοιή ύ α αήή η αήή οόόή α αο ήό α.
“Ο "Coupon Bazaar" είναι μια αγορά. Παρέχει πληρωμές και συντονισμό υπηρεσιών παράδοσης μεταξύ προμηθευτών και πελατών.
Ας χρησιμοποιήσουμε τις λειτουργίες @Callable για την υλοποίηση του dApp για όλες τις λειτουργίες πογιον πογιον Εργαζόμαστε κυρίως με την αποθήκευση κλειδιών αξίας dApp έτσι, ας εφαρμόσουμε κάποιες λειτουργίες γι ’αυτ.
Τώρα, είμαστε έτοιμοι να εφαρμόσουμε τη λειτουργικότητα των προμηθευτών: “Προσθήκη στοιχείου”.
Ανοίξτε το Waves IDE και προσθέστε αυτή τη λειτουργία.
4.3 Δημόσια ψηφοφορία δέσμευσης-απόδειξης
1 de 1 paso pasado
Editar
ΚΚΚΚ Μπορούν να το κάνουν χρησιμοποιώντας ιδιωτική διαδικασία ψηφοφορίας.
Αλλά … περιμένετε μια στιγμή …
Τα πάντα στο δημόσιο δίκτυο είναι δημόσια και διαφανή. ,Τσι, όλες οι ψήφοι θα είναι ανοικτές για τους άλλους κατά τη διάρκεια των εκλογών και οι ψήφοι ενός μέλους θα μπορούσαν να επηρεάσουν τις αποφάσεις των άλλων.
Ένα πρόγραμμα “Commit-Reveal” θα μας βοηθήσει με αυτό.
Έχουμε δύο βήματα τώρα:
Επαναλάβετε το βήμα – εδώ συλλέγουμε κρυπτογραφημένες ψήφους χρησιμοποιώντας μια συνάρτηση κατακερματισμού και κτπαί (saltα)
Αποκαλύψτε το βήμα – εδώ συλλέγουμε αποκρυπτογραφημένες ψήφοι και συγκρίνουμε τα hashes τους με τα καταγεγραμμένα hashes.
Όπως μπορείτε να δείτε, δεν υπάρχει τρόπος να αλλάξετε την ψήφο μετά την ολοκλήρωση ενός βήματος δέσμεσόης. Κανείς δεν γνωρίζει τα αποτελέσματα ψηφοφορίας πριν εκτελεστεί το βήμα αποκάλυψης.
Ας το εφαρμόσουμε! Αλλά πρώτα απ ‘όλα πρέπει να δηλώσουμε μεταβλητές και λειτουργίες:
Ενεργοποιήστε το βήμα – εδώ συλλέγουμε κρυπτογραφημένες ψήφους χρησιμοποιώντας τη λειτουργία κατακερματισμού και κάά (saltαιοιιιιιαιιιιιιιιιιιιιι)
Επόμενο
4.4 Άσκηση
1 de 1 paso pasado
Editar
Θυμηθείτε: Κατασκευάζουμε μια αποκεντρωμένη αγορά κουπονιών Web3 – “Bazar de cupones”.
Οι χρήστες αναζητούν εκπτώσεις για αγαθά και υπηρεσίες και μπορούν να τα αγοράσουν σε μικρή τιμή σε?
Κάθε κουπόνι – είναι ένα ψηφιακό στοιχείο που αντιπροσωπεύει μια ειδική έκπτωση που προσφέρεται απόρήμμθθαπόπυυθθθ α ππθ α αό πΚάθ πέ πΚάθ πΚάθ πΚάθ πο αο κο οο α αοαα αψαα αψαφα ααααααα ααααα αοααα αοααα αο αεή ύοοιή ύ α αήή η αήή οόόή α αο ήό α.
Αε αυτό το βήμα, θα προσπαθήσουμε να βελτιώσουμε την εφαρμογή repetitivo από την “Ενότητα 1”.
Ανοίξτε το GitHub και πιέστε το αποθετήριο mweb3waves (https://github.com/AlekseiPupyshev/mweb3waves) στο λογαριασμό σας στο GitHub.
Κλωνοποιήστε τον στον τοπικό σας υπολογιστή και μεταβείτε στον κλάδο bchintegration.
git clone https://github.com/**your*account**/mweb3waves.git;git checkout bchintegration; npm install; npm run build; npm run server;
Εκτελέστε εντολές npm μετά από αυτό και ανοίξτε http: // localhost: 5000 /. Πρόκειται για ένα νέο έργο για το “Bazar κουπονιών”.
Ας δούμε τον πηγαίο κώδικα ( package.json και index.jsx ):
Εδώ μπορείτε να δείτε μερικές αλλαγές:
1. Νέες σημαντικές libs συμπεριλήφθηκαν στο έργο – κύματα-συναλλαγές και κύματα-cripto .
2. Οι πιο σημαντικές λειτουργίες εισήχθησαν στην εφαρμογή αντίδρασης.
Είστε ήδη εξοικειωμένοι με τις λειτουργίες { invokeScript, broadcast, waitForTx } από τις περιπτώσεις δοκιμών JavaScript του IDE.
nodoInteracción – μα μπορέσουμε να λάβουμε δεδομένα από την αποθήκευση κλειδιών dApp.
Ας κάνουμε κάποιες ασκήσεις!