オントロジー ネットワーク上で Python でスマート コントラクトを作成する方法。 パート 2: ストレージ API

オントロジー ネットワーク上で Python でスマート コントラクトを作成する方法。 パート 2: ストレージ API

これは、オントロジー ブロックチェーン ネットワーク上で Python でスマート コントラクトを作成することに関する一連の教育記事の第 XNUMX 部です。 前回の記事で知りました ブロックチェーンとブロックAPI オントロジーのスマートコントラクト。

今日は XNUMX 番目のモジュールの使用方法について説明します。 ストレージAPI。 ストレージ API には、ブロックチェーン上のスマート コントラクトの永続ストレージへの追加、削除、変更を可能にする XNUMX つの関連 API があります。

以下に、これら XNUMX つの API について簡単に説明します。

オントロジー ネットワーク上で Python でスマート コントラクトを作成する方法。 パート 2: ストレージ API

これら XNUMX つの API の使用方法を詳しく見てみましょう。

0. 新しい契約を作成しましょう SmartX

1. ストレージAPIの使用方法

GetContext と GetReadOnlyContext

GetContext и GetReadOnlyContext 現在のスマート コントラクトが実行されるコンテキストを取得します。 戻り値は、現在のスマート コントラクト ハッシュの逆数です。 その名の通り、 GetReadOnlyContext は読み取り専用コンテキストを受け取ります。 以下の例では、戻り値は右上隅に表示されるコントラクト ハッシュの逆数です。

オントロジー ネットワーク上で Python でスマート コントラクトを作成する方法。 パート 2: ストレージ API

入れ

機能 入れ 辞書の形式でブロックチェーン上にデータを保存する責任があります。 示されているように、 入れ は XNUMX つのパラメータを取ります。 GetContext は現在実行中のスマート コントラクトのコンテキストを受け取り、key はデータを保存するために必要なキーの値、value は保存する必要があるデータの値です。 キーの値がすでにストアにある場合、関数は対応する値を更新することに注意してください。

オントロジー ネットワーク上で Python でスマート コントラクトを作成する方法。 パート 2: ストレージ APIhashrate-and-shares.ru/images/obzorontology/python/functionput.png

入手

機能 入手 キー値を通じて現在のブロックチェーン内のデータを読み取る責任があります。 以下の例では、右側のオプション パネルにキー値を入力して関数を実行し、ブロックチェーン内のキー値に対応するデータを読み取ることができます。

オントロジー ネットワーク上で Python でスマート コントラクトを作成する方法。 パート 2: ストレージ API

削除

機能 削除 キー値を通じてブロックチェーン内のデータを削除する責任があります。 以下の例では、右側のオプション パネルに関数のキー値を入力し、ブロックチェーン内のキー値に対応するデータを削除できます。

オントロジー ネットワーク上で Python でスマート コントラクトを作成する方法。 パート 2: ストレージ API

2. ストレージ API コード例

以下のコードは、GetContext、Get、Put、Delete、GetReadOnlyContext の XNUMX つの API の使用例を詳しく示しています。 API データを実行してみることができます。 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)

後書き

ブロックチェーン ストレージは、ブロックチェーン システム全体の中核です。 Ontology Storage API は使いやすく、開発者にとって使いやすいものです。

一方で、ストレージは、以前の記事で述べたセキュリティ上の脅威など、ハッカー攻撃の中心となっています。 ストレージインジェクション攻撃開発者は、ストレージに関連するコードを作成するとき、セキュリティに特別な注意を払う必要があります。 完全なガイドは次のサイトでご覧いただけます。 GitHubの ここに。

次の記事では使い方について説明します ランタイムAPI.

この記事は、Hashrate&Shares の編集者によって特に OntologyRussia 向けに翻訳されました。 クリック

あなたは開発者ですか? 弊社の技術コミュニティに参加してください。 Discord。 また、こちらもご覧ください 開発者センター オントロジーでは、さらに多くのツール、ドキュメントなどを見つけることができます。

開発者向けのオープンタスク。 タスクを完了して報酬を獲得してください。

申し込み 学生向けオントロジー人材プログラム向け

オントロジー

オントロジーのウェブサイト - GitHubの - Discord - 電報ロシア語 - Twitter - Reddit

出所: habr.com

コメントを追加します