如何在本體網路上用Python編寫智能合約。 第 2 部分:儲存 API

如何在本體網路上用Python編寫智能合約。 第 2 部分:儲存 API

這是關於在本體區塊鏈網路上使用 Python 創建智能合約的一系列教育文章的第二部分。 在上一篇文章中我們認識了 區塊鏈和區塊 API 本體智能合約。

今天我們將討論如何使用第二個模組—— 儲存API。 儲存API有五個相關的API,允許對區塊鏈上的智慧合約中的持久性儲存進行新增、刪除和更改。

以下簡單介紹一下這五個API:

如何在本體網路上用Python編寫智能合約。 第 2 部分:儲存 API

讓我們仔細看看如何使用這五個 API。

0. 讓我們創建一個新合約 智能X

1. 如何使用儲存API

取得上下文和取得只讀上下文

取得上下文 и 取得唯讀上下文 取得目前智能合約執行的上下文。 傳回值是當前智慧合約雜湊值的倒數。 顧名思義, 取得唯讀上下文 取得只讀上下文。 在下面的範例中,傳回值是右上角顯示的合約雜湊值的倒數。

如何在本體網路上用Python編寫智能合約。 第 2 部分:儲存 API

功能 負責以字典的形式將資料儲存在區塊鏈上。 如圖所示, 採用三個參數。 取得上下文 取得目前運行的智能合約的上下文,key是保存資料所需的key的值,value是需要保存的資料的值。 請注意,如果鍵的值已在儲存中,則該函數將更新其對應的值。

如何在本體網路上用Python編寫智能合約。 第 2 部分:儲存 APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

積極

功能 積極 負責透過key值讀取目前區塊鏈中的資料。 在下面的範例中,您可以在右側的選項面板中填入鍵值來執行函數並讀取區塊鏈中鍵值對應的資料。

如何在本體網路上用Python編寫智能合約。 第 2 部分:儲存 API

刪除

功能 刪除 負責透過鍵值刪除區塊鏈中的資料。 在下面的範例中,您可以在右側的選項面板中填入該功能的鍵值,並刪除區塊鏈中該鍵值對應的資料。

如何在本體網路上用Python編寫智能合約。 第 2 部分:儲存 API

2. 儲存API程式碼範例

下面的程式碼給出了五個 API 的使用的詳細範例:GetContext、Get、Put、Delete 和 GetReadOnlyContext。 您可以嘗試執行 API 數據 智能X.

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)

後記

區塊鏈儲存是整個區塊鏈系統的核心。 本體儲存API易於使用且對開發人員友善。

另一方面,儲存是駭客攻擊的重點,例如我們在之前的一篇文章中提到的安全威脅—— 儲存注入攻擊開發人員在編寫與儲存相關的程式碼時需要特別注意安全性。 您可以在我們的網站上找到完整的指南 GitHub上 在這裡。

在下一篇文章中我們將討論如何使用 運行時API.

該文章由 Hashrate&Shares 的編輯特別為 OntologyRussia 翻譯。

你是開發者嗎? 加入我們的技術社區 不和. 另外,看看 開發者中心 Ontology,您可以在那裡找到更多工具、文件等等。

為開發人員開放任務。 完成任務並獲得獎勵。

申請 本體人才計畫學生

本體論

本體網站 - GitHub上 - 不和 - 電報俄語 - Twitter - 書籤交易

來源: www.habr.com

添加評論