これは、オントロジー ブロックチェーン ネットワーク上で Python でスマート コントラクトを作成することに関する一連の教育記事の第 XNUMX 部です。 前回の記事で知りました
今日は XNUMX 番目のモジュールの使用方法について説明します。 ストレージAPI。 ストレージ API には、ブロックチェーン上のスマート コントラクトの永続ストレージへの追加、削除、変更を可能にする XNUMX つの関連 API があります。
以下に、これら XNUMX つの API について簡単に説明します。
これら XNUMX つの API の使用方法を詳しく見てみましょう。
0. 新しい契約を作成しましょう
1. ストレージAPIの使用方法
GetContext と GetReadOnlyContext
GetContext и GetReadOnlyContext 現在のスマート コントラクトが実行されるコンテキストを取得します。 戻り値は、現在のスマート コントラクト ハッシュの逆数です。 その名の通り、 GetReadOnlyContext は読み取り専用コンテキストを受け取ります。 以下の例では、戻り値は右上隅に表示されるコントラクト ハッシュの逆数です。
入れ
機能 入れ 辞書の形式でブロックチェーン上にデータを保存する責任があります。 示されているように、 入れ は XNUMX つのパラメータを取ります。 GetContext は現在実行中のスマート コントラクトのコンテキストを受け取り、key はデータを保存するために必要なキーの値、value は保存する必要があるデータの値です。 キーの値がすでにストアにある場合、関数は対応する値を更新することに注意してください。
入手
機能 入手 キー値を通じて現在のブロックチェーン内のデータを読み取る責任があります。 以下の例では、右側のオプション パネルにキー値を入力して関数を実行し、ブロックチェーン内のキー値に対応するデータを読み取ることができます。
削除
機能 削除 キー値を通じてブロックチェーン内のデータを削除する責任があります。 以下の例では、右側のオプション パネルに関数のキー値を入力し、ブロックチェーン内のキー値に対応するデータを削除できます。
2. ストレージ API コード例
以下のコードは、GetContext、Get、Put、Delete、GetReadOnlyContext の XNUMX つの API の使用例を詳しく示しています。 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)
後書き
ブロックチェーン ストレージは、ブロックチェーン システム全体の中核です。 Ontology Storage API は使いやすく、開発者にとって使いやすいものです。
一方で、ストレージは、以前の記事で述べたセキュリティ上の脅威など、ハッカー攻撃の中心となっています。
次の記事では使い方について説明します ランタイムAPI.
この記事は、Hashrate&Shares の編集者によって特に OntologyRussia 向けに翻訳されました。
クリック
あなたは開発者ですか? 弊社の技術コミュニティに参加してください。
オントロジー
出所: habr.com