Cara menulis kontrak pintar dengan Python di jaringan Ontology. Bagian 2: API Penyimpanan

Cara menulis kontrak pintar dengan Python di jaringan Ontology. Bagian 2: API Penyimpanan

Ini adalah bagian kedua dari serangkaian artikel pendidikan tentang cara membuat kontrak pintar dengan Python di jaringan blockchain Ontology. Pada artikel sebelumnya kita berkenalan Blockchain & Blokir API Kontrak pintar ontologi.

Hari ini kita akan membahas cara menggunakan modul keduaβ€” API Penyimpanan. Storage API memiliki lima API terkait yang memungkinkan penambahan, penghapusan, dan perubahan pada penyimpanan persisten dalam kontrak pintar di blockchain.

Berikut penjelasan singkat mengenai kelima API tersebut:

Cara menulis kontrak pintar dengan Python di jaringan Ontology. Bagian 2: API Penyimpanan

Mari kita lihat lebih dekat cara menggunakan kelima API ini.

0. Ayo buat kontrak baru SmartX

1. Cara menggunakan API Penyimpanan

DapatkanContext & DapatkanReadOnlyContext

Dapatkan Konteks ΠΈ DapatkanReadOnlyContext dapatkan konteks di mana kontrak pintar saat ini dijalankan. Nilai pengembalian adalah kebalikan dari hash kontrak pintar saat ini. Seperti namanya, DapatkanReadOnlyContext mengambil konteks read-only. Pada contoh di bawah, nilai kembalian adalah kebalikan dari hash kontrak yang ditampilkan di sudut kanan atas.

Cara menulis kontrak pintar dengan Python di jaringan Ontology. Bagian 2: API Penyimpanan

Menempatkan

Fungsi Menempatkan bertanggung jawab untuk menyimpan data di blockchain dalam bentuk kamus. Seperti yang ditunjukkan, Menempatkan mengambil tiga parameter. Dapatkan Konteks mengambil konteks kontrak pintar yang sedang berjalan, kunci adalah nilai kunci yang diperlukan untuk menyimpan data, dan nilai adalah nilai data yang perlu disimpan. Perhatikan bahwa jika nilai kunci sudah ada di penyimpanan, fungsi akan memperbarui nilainya yang sesuai.

Cara menulis kontrak pintar dengan Python di jaringan Ontology. Bagian 2: API Penyimpananhashrate-and-shares.ru/images/obzorontology/python/functionput.png

Dapatkan

Fungsi Dapatkan bertanggung jawab untuk membaca data di blockchain saat ini melalui nilai kunci. Pada contoh di bawah, Anda dapat mengisi nilai kunci di panel opsi di sebelah kanan untuk menjalankan fungsi dan membaca data yang sesuai dengan nilai kunci di blockchain.

Cara menulis kontrak pintar dengan Python di jaringan Ontology. Bagian 2: API Penyimpanan

Delete

Fungsi Delete bertanggung jawab untuk menghapus data di blockchain melalui nilai kunci. Pada contoh di bawah, Anda dapat mengisi nilai kunci untuk fungsi tersebut di panel opsi di sebelah kanan dan menghapus data yang sesuai dengan nilai kunci di blockchain.

Cara menulis kontrak pintar dengan Python di jaringan Ontology. Bagian 2: API Penyimpanan

2. Contoh kode API penyimpanan

Kode di bawah ini memberikan contoh detail penggunaan lima API: GetContext, Get, Put, Delete, dan GetReadOnlyContext. Anda dapat mencoba menjalankan data API di 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)

penutup

Penyimpanan blockchain adalah inti dari keseluruhan sistem blockchain. Ontology Storage API mudah digunakan dan ramah pengembang.

Di sisi lain, penyimpanan adalah fokus serangan peretas, seperti ancaman keamanan yang kami sebutkan di salah satu artikel sebelumnyaβ€” serangan injeksi penyimpananPengembang diharuskan memberikan perhatian khusus pada keamanan saat menulis kode yang berhubungan dengan penyimpanan. Anda dapat menemukan panduan lengkapnya di kami GitHub di sini.

Pada artikel selanjutnya kita akan membahas cara menggunakannya API Waktu Proses.

Artikel tersebut diterjemahkan oleh editor Hashrate&Shares khususnya untuk OntologyRussia. menangis

Apakah Anda seorang pengembang? Bergabunglah dengan komunitas teknologi kami di Discord. Juga, lihatlah Pusat Pengembang Ontologi, Anda dapat menemukan lebih banyak alat, dokumentasi, dan banyak lagi di sana.

Buka tugas untuk pengembang. Selesaikan tugas dan dapatkan hadiah.

Berlaku untuk program bakat Ontologi bagi siswa

Ontologi

Situs ontologi - GitHub - Discord - Telegram Rusia - Twitter - Reddit

Sumber: www.habr.com

Tambah komentar