Ontologiya tarmog'ida Python-da aqlli shartnomani qanday yozish mumkin. 2-qism: Saqlash API

Ontologiya tarmog'ida Python-da aqlli shartnomani qanday yozish mumkin. 2-qism: Saqlash API

Bu Ontology blokcheyn tarmog'ida Python-da aqlli shartnomalar yaratish bo'yicha o'quv maqolalari seriyasining ikkinchi qismi. Oldingi maqolada biz tanishgan edik Blockchain & Block API Ontologiya aqlli shartnoma.

Bugun biz ikkinchi moduldan qanday foydalanishni muhokama qilamiz - Saqlash API. Storage API-da blokcheyndagi aqlli shartnomalarda doimiy saqlashni qo'shish, o'chirish va o'zgartirish imkonini beruvchi beshta tegishli API mavjud.

Quyida ushbu beshta APIning qisqacha tavsifi keltirilgan:

Ontologiya tarmog'ida Python-da aqlli shartnomani qanday yozish mumkin. 2-qism: Saqlash API

Keling, ushbu beshta APIdan qanday foydalanishni batafsil ko'rib chiqaylik.

0. Keling, yangi shartnoma tuzamiz SmartX

1. Storage API dan qanday foydalanish kerak

GetContext va GetReadOnlyContext

GetContext и GetReadOnlyContext joriy aqlli shartnoma amalga oshirilayotgan kontekstni oling. Qaytish qiymati joriy aqlli kontrakt xeshiga teskari qiymatdir. Nomidan ko'rinib turibdiki, GetReadOnlyContext faqat o'qish uchun kontekstni oladi. Quyidagi misolda qaytarish qiymati yuqori o'ng burchakda ko'rsatilgan shartnoma xeshining teskarisidir.

Ontologiya tarmog'ida Python-da aqlli shartnomani qanday yozish mumkin. 2-qism: Saqlash API

qo'yish

vazifa qo'yish lug'at shaklida blokcheyndagi ma'lumotlarni saqlash uchun javobgardir. Ko'rsatilganidek, qo'yish uchta parametrni oladi. GetContext hozirda ishlayotgan aqlli shartnoma kontekstini oladi, kalit ma'lumotlarni saqlash uchun zarur bo'lgan kalitning qiymati va qiymat - saqlanishi kerak bo'lgan ma'lumotlarning qiymati. E'tibor bering, agar kalitning qiymati allaqachon do'konda bo'lsa, funktsiya mos keladigan qiymatni yangilaydi.

Ontologiya tarmog'ida Python-da aqlli shartnomani qanday yozish mumkin. 2-qism: Saqlash APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

oling

vazifa oling joriy blokcheyndagi ma'lumotlarni kalit qiymati orqali o'qish uchun javobgardir. Quyidagi misolda siz funktsiyani bajarish uchun o'ngdagi variantlar panelida kalit qiymatini to'ldirishingiz va blokcheyndagi kalit qiymatiga mos keladigan ma'lumotlarni o'qishingiz mumkin.

Ontologiya tarmog'ida Python-da aqlli shartnomani qanday yozish mumkin. 2-qism: Saqlash API

o'chirish

vazifa o'chirish kalit qiymati orqali blokcheyndagi ma'lumotlarni o'chirish uchun javobgardir. Quyidagi misolda siz o'ngdagi variantlar panelida funksiya uchun kalit qiymatini to'ldirishingiz va blokcheyndagi kalit qiymatiga mos keladigan ma'lumotlarni o'chirishingiz mumkin.

Ontologiya tarmog'ida Python-da aqlli shartnomani qanday yozish mumkin. 2-qism: Saqlash API

2. Storage API kodi misoli

Quyidagi kod beshta API dan foydalanishning batafsil misolini beradi: GetContext, Get, Put, Delete va GetReadOnlyContext. API ma'lumotlarini ishga tushirishga urinib ko'rishingiz mumkin 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)

So'zdan keyin

Blokcheyn saqlash butun blokcheyn tizimining yadrosidir. Ontology Storage API-dan foydalanish oson va ishlab chiquvchilar uchun qulay.

Boshqa tomondan, saqlash xakerlik hujumlarining diqqat markazida bo'ladi, masalan, biz oldingi maqolalardan birida aytib o'tgan xavfsizlik tahdidi— saqlashga qarshi hujumSaqlash bilan bog'liq kodni yozishda ishlab chiquvchilar xavfsizlikka alohida e'tibor berishlari kerak. To'liq qo'llanmani bizning saytimizda topishingiz mumkin GitHub Bu erda.

Keyingi maqolada biz qanday foydalanishni muhokama qilamiz Runtime API.

Maqola Hashrate&Shares muharrirlari tomonidan ayniqsa OntologyRussia uchun tarjima qilingan. yig'lamoq

Siz dasturchimisiz? Bizning texnologik hamjamiyatimizga qo'shiling Tanqid. Bundan tashqari, ko'rib chiqing Dasturchilar markazi Ontologiya, siz u erda ko'proq vositalar, hujjatlar va boshqa ko'p narsalarni topishingiz mumkin.

Ishlab chiquvchilar uchun ochiq vazifalar. Vazifani bajaring va mukofot oling.

Ro'yxatdan o'tish talabalar uchun Ontologiya iste'dod dasturi uchun

Ontologiya

Ontologiya veb-sayti - GitHub - Tanqid - Telegram ruscha - Twitter - Digg

Manba: www.habr.com

a Izoh qo'shish