Πώς να γράψετε ένα έξυπνο συμβόλαιο στην Python στο δίκτυο Ontology. Μέρος 2: API αποθήκευσης

Πώς να γράψετε ένα έξυπνο συμβόλαιο στην Python στο δίκτυο Ontology. Μέρος 2: API αποθήκευσης

Αυτό είναι το δεύτερο μέρος μιας σειράς εκπαιδευτικών άρθρων σχετικά με τη δημιουργία έξυπνων συμβολαίων στην Python στο δίκτυο blockchain Ontology. Στο προηγούμενο άρθρο γνωρίσαμε Blockchain & Block API Έξυπνο συμβόλαιο οντολογίας.

Σήμερα θα συζητήσουμε πώς να χρησιμοποιήσετε τη δεύτερη ενότητα— API αποθήκευσης. Το Storage API έχει πέντε σχετικά API που επιτρέπουν την προσθήκη, τη διαγραφή και τις αλλαγές στη μόνιμη αποθήκευση σε έξυπνες συμβάσεις στο blockchain.

Παρακάτω είναι μια σύντομη περιγραφή αυτών των πέντε API:

Πώς να γράψετε ένα έξυπνο συμβόλαιο στην Python στο δίκτυο Ontology. Μέρος 2: API αποθήκευσης

Ας ρίξουμε μια πιο προσεκτική ματιά στον τρόπο χρήσης αυτών των πέντε API.

0. Ας δημιουργήσουμε ένα νέο συμβόλαιο SmartX

1. Πώς να χρησιμοποιήσετε το Storage API

GetContext & GetReadOnlyContext

GetContext и GetReadOnlyContext λάβετε το πλαίσιο στο οποίο εκτελείται το τρέχον έξυπνο συμβόλαιο. Η τιμή επιστροφής είναι το αντίστροφο του τρέχοντος κατακερματισμού έξυπνων συμβολαίων. Όπως υποδηλώνει το όνομα, GetReadOnlyContext παίρνει το πλαίσιο μόνο για ανάγνωση. Στο παρακάτω παράδειγμα, η τιμή επιστροφής είναι το αντίστροφο του κατακερματισμού συμβολαίου που εμφανίζεται στην επάνω δεξιά γωνία.

Πώς να γράψετε ένα έξυπνο συμβόλαιο στην Python στο δίκτυο Ontology. Μέρος 2: API αποθήκευσης

Βάζω

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

Πώς να γράψετε ένα έξυπνο συμβόλαιο στην Python στο δίκτυο Ontology. Μέρος 2: API αποθήκευσηςhashrate-and-shares.ru/images/obzorontology/python/functionput.png

ΕΠΙΚΟΙΝΩΝΗΣΤΕ

Λειτουργία ΕΠΙΚΟΙΝΩΝΗΣΤΕ είναι υπεύθυνος για την ανάγνωση των δεδομένων στην τρέχουσα αλυσίδα μπλοκ μέσω της τιμής κλειδιού. Στο παρακάτω παράδειγμα, μπορείτε να συμπληρώσετε την τιμή κλειδιού στον πίνακα επιλογών στα δεξιά για να εκτελέσετε τη συνάρτηση και να διαβάσετε τα δεδομένα που αντιστοιχούν στην τιμή κλειδιού στο blockchain.

Πώς να γράψετε ένα έξυπνο συμβόλαιο στην Python στο δίκτυο Ontology. Μέρος 2: API αποθήκευσης

Διαγραφή

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

Πώς να γράψετε ένα έξυπνο συμβόλαιο στην Python στο δίκτυο Ontology. Μέρος 2: API αποθήκευσης

2. Παράδειγμα κώδικα API αποθήκευσης

Ο παρακάτω κώδικας δίνει ένα λεπτομερές παράδειγμα χρήσης πέντε API: GetContext, Get, Put, Delete και GetReadOnlyContext. Μπορείτε να δοκιμάσετε να εκτελέσετε τα δεδομένα API SmartX.

from ontology.interop.System.Storage import GetContext, Get, Put, Delete, GetReadOnlyContext
from ontology.interop.System.Runtime import Notify

def Main(operation,args):
    if operation == 'get_sc':
        return get_sc()
    if operation == 'get_read_only_sc':
        return get_read_only_sc()
    if operation == 'get_data':
        key=args[0]
        return get_data(key)
    if operation == 'save_data':
        key=args[0]
        value=args[1]
        return save_data(key, value)
    if operation == 'delete_data':
        key=args[0]
        return delete_data(key)
    return False

def get_sc():
    return GetContext()
    
def get_read_only_sc():
    return GetReadOnlyContext()

def get_data(key):
    sc=GetContext() 
    data=Get(sc,key)
    return data
    
def save_data(key, value):
    sc=GetContext() 
    Put(sc,key,value)
    
def delete_data(key):
    sc=GetContext() 
    Delete(sc,key)

Επίλογος

Η αποθήκευση Blockchain είναι ο πυρήνας ολόκληρου του συστήματος blockchain. Το Ontology Storage API είναι εύκολο στη χρήση και φιλικό προς τους προγραμματιστές.

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

Στο επόμενο άρθρο θα συζητήσουμε πώς να το χρησιμοποιήσετε Runtime API.

Το άρθρο μεταφράστηκε από τους συντάκτες του Hashrate&Shares ειδικά για την OntologyRussia. κραυγή

Είστε προγραμματιστής; Γίνετε μέλος της τεχνολογικής μας κοινότητας στο Διχόνοια. Επίσης, ρίξτε μια ματιά στο Κέντρο προγραμματιστών Οντολογία, μπορείτε να βρείτε περισσότερα εργαλεία, τεκμηρίωση και πολλά άλλα εκεί.

Ανοίξτε εργασίες για προγραμματιστές. Ολοκληρώστε την εργασία και λάβετε μια ανταμοιβή.

Ισχύουν για το πρόγραμμα ταλέντων Ontology για φοιτητές

Οντολογία

Ιστοσελίδα οντολογίας - GitHub - Διχόνοια - Ρωσικό τηλεγράφημα - Twitter - Reddit

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο