這是關於在本體區塊鏈網路上使用 Python 創建智能合約的一系列教育文章的第二部分。 在上一篇文章中我們認識了
今天我們將討論如何使用第二個模組—— 儲存API。 儲存API有五個相關的API,允許對區塊鏈上的智慧合約中的持久性儲存進行新增、刪除和更改。
以下簡單介紹一下這五個API:
讓我們仔細看看如何使用這五個 API。
0. 讓我們創建一個新合約
1. 如何使用儲存API
取得上下文和取得只讀上下文
取得上下文 и 取得唯讀上下文 取得目前智能合約執行的上下文。 傳回值是當前智慧合約雜湊值的倒數。 顧名思義, 取得唯讀上下文 取得只讀上下文。 在下面的範例中,傳回值是右上角顯示的合約雜湊值的倒數。
放
功能 放 負責以字典的形式將資料儲存在區塊鏈上。 如圖所示, 放 採用三個參數。 取得上下文 取得目前運行的智能合約的上下文,key是保存資料所需的key的值,value是需要保存的資料的值。 請注意,如果鍵的值已在儲存中,則該函數將更新其對應的值。
積極
功能 積極 負責透過key值讀取目前區塊鏈中的資料。 在下面的範例中,您可以在右側的選項面板中填入鍵值來執行函數並讀取區塊鏈中鍵值對應的資料。
刪除
功能 刪除 負責透過鍵值刪除區塊鏈中的資料。 在下面的範例中,您可以在右側的選項面板中填入該功能的鍵值,並刪除區塊鏈中該鍵值對應的資料。
2. 儲存API程式碼範例
下面的程式碼給出了五個 API 的使用的詳細範例:GetContext、Get、Put、Delete 和 GetReadOnlyContext。 您可以嘗試執行 API 數據
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易於使用且對開發人員友善。
另一方面,儲存是駭客攻擊的重點,例如我們在之前的一篇文章中提到的安全威脅——
在下一篇文章中我們將討論如何使用 運行時API.
該文章由 Hashrate&Shares 的編輯特別為 OntologyRussia 翻譯。
哭
你是開發者嗎? 加入我們的技術社區
本體論
來源: www.habr.com