Cara menulis kontrak Python yang cerdas di jaringan Ontology. Bagian 2: API Penyimpanan

gambar

Ini adalah bagian kedua dari serangkaian tutorial tentang cara membuat kontrak pintar dengan Python di jaringan blockchain Ontology. Pada artikel sebelumnya, kami bertemu dengan API kontrak pintar Ontology Blockchain & Block API .

Hari ini kita akan membahas cara menggunakan modul kedua - API Penyimpanan . API Penyimpanan memiliki lima API terkait yang memungkinkan penambahan, penghapusan, dan modifikasi penyimpanan persisten dalam kontrak pintar di blockchain.

Di bawah ini adalah deskripsi singkat dari lima API ini:

gambar

Mari kita lihat lebih dekat cara menggunakan lima API ini.

0. Buat kontrak SmartX baru

1. Cara menggunakan API Penyimpanan


GetContext & GetReadOnlyContext


GetContext dan GetReadOnlyContext mendapatkan konteks di mana kontrak pintar saat ini dijalankan. Nilai pengembalian adalah kebalikan dari hash saat ini dari kontrak pintar. Sesuai namanya, GetReadOnlyContext mengambil konteks mode hanya-baca. Dalam contoh di bawah ini, nilai kembali adalah kebalikan dari hash kontrak yang ditampilkan di sudut kanan atas.

gambar

Taruh


Fungsi Put bertanggung jawab untuk menyimpan data pada blockchain dalam bentuk kamus. Seperti yang ditunjukkan, Put membutuhkan tiga parameter. GetContext mengambil konteks kontrak pintar yang sedang berjalan, kunci adalah nilai kunci yang diperlukan untuk menyimpan data, dan nilai adalah nilai dari data yang perlu disimpan. Harap dicatat bahwa jika nilai kunci sudah ada di repositori, fungsi tersebut akan memperbarui nilainya.

gambar hashrate-and-shares.ru/images/obzorontology/python/functionput.png

Dapatkan


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

gambar

Hapus


Fungsi Hapus bertanggung jawab untuk menghapus data dalam blockchain dengan menggunakan nilai kunci. Pada contoh di bawah ini, Anda dapat mengisi nilai kunci untuk menjalankan fungsi di panel parameter di sebelah kanan dan menghapus data yang sesuai dengan nilai kunci di blockchain.

gambar

2. Contoh Kode API Penyimpanan


Kode di bawah ini memberikan contoh terperinci menggunakan 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) 

Kata penutup


Penyimpanan Blockchain adalah inti dari keseluruhan sistem blockchain. API Penyimpanan Ontology mudah digunakan dan nyaman bagi pengembang.

Di sisi lain, serangan hacker difokuskan pada penyimpanan, misalnya, risiko keamanan yang kami sebutkan di salah satu artikel sebelumnya, serangan injeksi penyimpanan , pengembang harus memberikan perhatian khusus pada keamanan saat menulis kode yang terkait dengan penyimpanan. Anda dapat menemukan panduan lengkap di github kami di sini.

Pada artikel selanjutnya, kita akan membahas cara menggunakan Runtime API .


Artikel ini diterjemahkan oleh Hashrate & Shares khusus untuk OntologyRussia. klik

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


Buka tugas untuk pengembang. Tutup tugas - dapatkan hadiah.

Terapkan untuk Program Bakat Mahasiswa Ontologi

Ontologi


Situs web Ontologi - GitHub - Perselisihan - Telegram Rusia - Twitter - Reddit

Source: https://habr.com/ru/post/id475618/


All Articles