IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッドの特許一覧

特許7072103ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体
<>
  • 特許-ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体 図1
  • 特許-ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体 図2
  • 特許-ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体 図3
  • 特許-ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-11
(45)【発行日】2022-05-19
(54)【発明の名称】ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体
(51)【国際特許分類】
   G06F 9/445 20180101AFI20220512BHJP
   G06F 9/54 20060101ALI20220512BHJP
【FI】
G06F9/445
G06F9/54
【請求項の数】 23
(21)【出願番号】P 2021100850
(22)【出願日】2021-06-17
(65)【公開番号】P2021153331
(43)【公開日】2021-09-30
【審査請求日】2021-06-17
(31)【優先権主張番号】202010677698.6
(32)【優先日】2020-07-15
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】512015127
【氏名又は名称】バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
(74)【代理人】
【識別番号】100118913
【弁理士】
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【弁理士】
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100201466
【弁理士】
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】シャオ, ウェイ
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2019-200580(JP,A)
【文献】特表2019-524018(JP,A)
【文献】特表2020-509443(JP,A)
【文献】米国特許出願公開第2020/0120019(US,A1)
【文献】国際公開第2019/186282(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
G06F 9/54
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ブロックチェーンのスマートコントラクト実現方法であって、ブロックチェーンノードに適用され、
常駐のスマートコントラクトの起動条件が生成される場合、前記常駐のスマートコントラクトに対して常駐プロセスを作成し、前記常駐プロセスを介して仮想マシンを作成するステップと、
前記仮想マシンを介して前記常駐のスマートコントラクトのコードをメモリにロードするステップと、
前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信するステップと、
前記仮想マシンによって前記常駐のスマートコントラクトを実行して、前記データアクセス要求を処理し、データアクセス結果を前記通常のスマートコントラクトに戻すステップと、
を含み、
メモリにおける前記通常のスマートコントラクトのプロセスの生存期間が、1つのブロック生成期間であり、メモリにおける前記常駐のスマートコントラクトの常駐プロセスの生存期間が、1つのブロック生成期間よりも大きい、ブロックチェーンのスマートコントラクト実現方法。
【請求項2】
常駐のスマートコントラクトの起動条件を生成するステップが、
ブロックチェーンシステムがローカルマシンブロックチェーンノードで起動される場合、前記常駐のスマートコントラクトの起動条件を生成するステップと、
前記常駐のスマートコントラクトが初めて呼び出される場合、前記常駐のスマートコントラクトの起動条件を生成するステップとの少なくとも1つを含む請求項1に記載の方法。
【請求項3】
常駐のスマートコントラクトの終了条件が生成される場合、前記常駐のスマートコントラクトのメモリに格納されているデータをソリッド化して磁気ディスクに書き込み、前記常駐のスマートコントラクトに割当てられた仮想マシンのプロセスとメモリ空間を終了するステップを含む請求項1に記載の方法。
【請求項4】
常駐のスマートコントラクトの終了条件を生成するステップが、
ブロックチェーンシステムがローカルマシンブロックチェーンノードで終了する場合、前記常駐のスマートコントラクトの終了条件を生成するステップと、
ローカルマシンブロックチェーンノードの実行リソースがダウングレード需要を生成する場合、前記常駐のスマートコントラクトの終了条件を生成するステップであって、前記実行リソースが、メモリリソース又は計算リソースを含むステップとの少なくとも1つを含む請求項3に記載の方法。
【請求項5】
常駐のスマートコントラクトの保留条件が生成される場合、前記常駐プロセスに対してプロセスハンドルを保持し、前記常駐のスマートコントラクトのメモリに格納されているデータを磁気ディスク内の一時記憶領域に書き込み、前記常駐のスマートコントラクトに割当てられた仮想マシンのプロセスとメモリ空間を終了するステップを含む請求項1に記載の方法。
【請求項6】
前記クロスコントラクト呼び出しインターフェースが、プロセス間通信プロトコルに基づいて実現される請求項1に記載の方法。
【請求項7】
現在のブロックの処理を起動する場合、前記現在のブロックのブロック依存データを前記常駐プロセスに伝送して、前記常駐プロセスメモリ空間中のデータを現在のブロック中のデータと一致するように更新するステップを含む請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信するステップと同時に、
常駐のスマートコントラクトのメモリ空間中のデータが現在のブロックデータと一致するように維持するために、前記クロスコントラクト呼び出しインターフェースを介して、通常のスマートコントラクトで伝送されたブロック依存データを取得して、前記常駐プロセスのメモリ空間中に更新するステップを含む請求項1から6のいずれか一項に記載の方法。
【請求項9】
前記データアクセス要求のアクセス対象が、ブロックチェーンアカウント情報、トランザクション要求カウント値、ブロックカウント値及びクロスブロックデータを含む請求項1から6のいずれか一項に記載の方法。
【請求項10】
ブロックロールバックイベントが生成される場合、ブロックチェーンシステムのマスタプログラムを介して常駐プロセスに通知し、少なくとも1つのロールバックブロックのトランザクション要求に基づいてロールバック操作を行って、前記常駐のスマートコントラクトのメモリ空間中のデータを更新するステップ、又は、
ブロックロールバックイベントが生成される場合、ブロックチェーンシステムのマスタプログラムを介して前記常駐プロセスが終了して再起動するように通知して、ロールバックされたブロックデータを磁気ディスクから再ロードするステップ、
を含む請求項1から6のいずれか一項に記載の方法。
【請求項11】
ブロックチェーンのスマートコントラクト実現装置であって、ブロックチェーンノードに配置され、
常駐のスマートコントラクトの起動条件が生成される場合、前記常駐のスマートコントラクトに対して常駐プロセスを作成し、前記常駐プロセスを介して仮想マシンを作成するためのプロセス作成モジュールと、
前記仮想マシンを介して前記常駐のスマートコントラクトのコードをメモリにロードするためのコントラクトロードモジュールと、
前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信するためのコントラクト呼び出しモジュールと、
前記仮想マシンによって前記常駐のスマートコントラクトを実行して、前記データアクセス要求を処理し、データアクセス結果を前記通常のスマートコントラクトに戻すための結果戻しモジュールと、
を備え、
メモリにおける前記通常のスマートコントラクトのプロセスの生存期間が、1つのブロック生成期間であり、メモリにおける前記常駐のスマートコントラクトの常駐プロセスの生存期間が、1つのブロック生成期間よりも大きい、ブロックチェーンのスマートコントラクト実現装置。
【請求項12】
常駐のスマートコントラクトの起動条件を生成することが、
ブロックチェーンシステムがローカルマシンブロックチェーンノードで起動される場合、前記常駐のスマートコントラクトの起動条件を生成することと、
常駐のスマートコントラクトが初めて呼び出される場合、前記常駐のスマートコントラクトの起動条件を生成することと、
の少なくとも1つを含む請求項11に記載の装置。
【請求項13】
プロセス終了モジュールを備え、該プロセス終了モジュールが、常駐のスマートコントラクトの終了条件が生成される場合、前記常駐のスマートコントラクトのメモリに格納されているデータをソリッド化して磁気ディスクに書き込み、前記常駐のスマートコントラクトに割当てられた仮想マシンのプロセスとメモリ空間を終了する請求項11に記載の装置。
【請求項14】
常駐のスマートコントラクトの終了条件を生成することが、
ブロックチェーンシステムがローカルマシンブロックチェーンノードで終了する場合、前記常駐のスマートコントラクトの終了条件を生成することと、
ローカルマシンブロックチェーンノードの実行リソースがダウングレード需要を生成する場合、前記常駐のスマートコントラクトの終了条件を生成し、前記実行リソースが、メモリリソース又は計算リソースを含むことと、
の少なくとも1つを含む請求項13に記載の装置。
【請求項15】
プロセス保留モジュールを備え、該プロセス保留モジュールが、常駐のスマートコントラクトの保留条件が生成される場合、前記常駐プロセスに対してプロセスハンドルを保持し、前記常駐のスマートコントラクトのメモリに格納されているデータを磁気ディスク内の一時記憶領域に書き込み、前記常駐のスマートコントラクトに割当てられた仮想マシンのプロセスとメモリ空間を終了する請求項11に記載の装置。
【請求項16】
前記クロスコントラクト呼び出しインターフェースが、プロセス間通信プロトコルに基づいて実現される請求項11に記載の装置。
【請求項17】
第1のデータ更新モジュールを備え、該第1のデータ更新モジュールが、現在のブロックの処理を起動する場合、前記現在のブロックのブロック依存データを前記常駐プロセスに伝送して、前記常駐プロセスメモリ空間中のデータを現在のブロック中のデータと一致するように更新する請求項11から16のいずれか一項に記載の装置。
【請求項18】
第2のデータ更新モジュールを備え、該第2のデータ更新モジュールが、前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信すると同時に、常駐のスマートコントラクトのメモリ空間中のデータが現在のブロックデータと一致するように維持するために、前記クロスコントラクト呼び出しインターフェースを介して、通常のスマートコントラクトで伝送されたブロック依存データを取得して、前記常駐プロセスのメモリ空間中に更新する請求項11から16のいずれか一項に記載の装置。
【請求項19】
前記データアクセス要求のアクセス対象が、ブロックチェーンアカウント情報、トランザクション要求カウント値、ブロックカウント値及びクロスブロックデータを含む請求項11から16のいずれか一項に記載の装置。
【請求項20】
ブロックロールバックイベントが生成される場合、ブロックチェーンシステムのマスタプログラムを介して常駐プロセスに通知し、少なくとも1つのロールバックブロックのトランザクション要求に基づいてロールバック操作を行って、前記常駐のスマートコントラクトのメモリ空間中のデータを更新するための第1のロールバックモジュール、または、
ブロックロールバックイベントが生成される場合、ブロックチェーンシステムのマスタプログラムを介して前記常駐プロセスが終了して再起動するように通知して、ロールバックされたブロックデータを磁気ディスクから再ロードするための第2のデータ更新モジュール、
を備える請求項11から16のいずれか一項に記載の装置。
【請求項21】
少なくとも1つのプロセッサと、
該少なくとも1つのプロセッサに通信可能に接続されるメモリと、
を備え、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令が、前記少なくとも1つのプロセッサが請求項1から10のいずれか一項に記載のブロックチェーンのスマートコントラクト実現方法を実行できるように、前記少なくとも1つのプロセッサによって実行される電子機器。
【請求項22】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータ命令が、コンピュータに請求項1から10のいずれか一項に記載のブロックチェーンのスマートコントラクト実現方法を実行させる非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項23】
コンピュータに請求項1から10のいずれか一項に記載のブロックチェーンのスマートコントラクト実現方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願の実施例は、コンピュータ技術の分野に関し、具体的には、ブロックチェーン技術に関する。
【背景技術】
【0002】
ブロックチェーンシステムは、スマートコントラクトシステムを備えることができ、ブロックチェーンシステムのマスタプログラムは、スマートコントラクトを呼び出すことによって様々な機能を実現する。ブロックチェーンのマスタプログラムがスマートコントラクトを呼び出す過程は、外部プログラムを呼び出すためにWEBサーバによって使用される共通ゲートウェイインタフェース(Common Gateway Interface、CGI)モデルに似ている。具体的には、マスタプログラムがスマートコントラクトを呼び出す1つの呼び出しのライフサイクルでは、当該スマートコントラクトには、完全なデータストリームがあり、磁気ディスクからデータをロードし、データ計算を実行してから、計算結果を磁気ディスクにライトバックする。呼び出しのライフサイクルが終了した後、スマートコントラクトは、メモリからデータをクリアする。
【0003】
しかしながら、上記スマートコントラクト実現方法は、ブロックチェーンの日増しに複雑になるビジネスニーズには適用できなくなり、結果的に処理効率が低下している。
【発明の概要】
【0004】
本出願の実施例は、ブロックチェーンのスマートコントラクト実現方法、装置、機器及び媒体を提供する。
【0005】
本出願の一態様によれば、ブロックチェーンのスマートコントラクト実現方法を提供し、ブロックチェーンノードに適用され、前記方法は、常駐のスマートコントラクトの起動条件が生成される場合、前記常駐のスマートコントラクトに対して常駐プロセスを作成し、前記常駐プロセスを介して仮想マシンを作成するステップと、前記仮想マシンを介して前記常駐のスマートコントラクトのコードをメモリにロードするステップと、前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信するステップと、前記仮想マシンによって前記常駐のスマートコントラクトを実行して、前記データアクセス要求を処理し、データアクセス結果を前記通常のスマートコントラクトに戻すステップと、を含み、メモリにおける前記通常のスマートコントラクトのプロセスの生存期間が、1つのブロック生成期間であり、メモリにおける前記常駐のスマートコントラクトの常駐プロセスの生存期間が、1つのブロック生成期間よりも大きい。
【0006】
本出願の別の態様によれば、ブロックチェーンのスマートコントラクト実現装置を提供し、ブロックチェーンノードに配置され、前記装置は、常駐のスマートコントラクトの起動条件が生成される場合、前記常駐のスマートコントラクトに対して常駐プロセスを作成し、前記常駐プロセスを介して仮想マシンを作成するためのプロセス作成モジュールと、前記仮想マシンを介して前記常駐のスマートコントラクトのコードをメモリにロードするためのコントラクトロードモジュールと、前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信するためのコントラクト呼び出しモジュールと、前記仮想マシンによって前記常駐のスマートコントラクトを実行して、前記データアクセス要求を処理し、データアクセス結果を前記通常のスマートコントラクトに戻すための結果戻しモジュールと、を備え、メモリにおける前記通常のスマートコントラクトのプロセスの生存期間が、1つのブロック生成期間であり、メモリにおける前記常駐のスマートコントラクトの常駐プロセスの生存期間が、1つのブロック生成期間よりも大きい。
【0007】
本出願のさらなる態様によれば、電子機器を提供し、少なくとも1つのプロセッサと、該少なくとも1つのプロセッサと通信可能に接続されるメモリと、を備え、前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令が、前記少なくとも1つのプロセッサが本出願の任意の実施例により提供されるブロックチェーンのスマートコントラクト実現方法を実行できるように、前記少なくとも1つのプロセッサによって実行される。
【0008】
本出願の別の態様によれば、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体を提供し、前記コンピュータ命令が、コンピュータに本出願の任意の実施例により提供されるブロックチェーンのスマートコントラクト実現方法を実行させる。
本出願の別の態様によれば、コンピュータプログラムを提供し、前記コンピュータプログラムが、コンピュータに上記実施例に本出願の任意の実施例により提供されるブロックチェーンのスマートコントラクト実現方法を実行させる。
【発明の効果】
【0009】
本出願の技術によれば、スマートコントラクトの起動と終了の繰り返しによるリソースの消費が大きくなるという問題を解決した。
【0010】
なお、本部分に記載された内容は、本出願の実施例の肝心又は重要な特徴を限定することを意図しておらず、本出願の範囲を限定することも意図していない。本出願の他の特徴は、以下の説明により理解されやすくなる。
【図面の簡単な説明】
【0011】
図面は、本技術案がよりよく理解されるためのものであり、本出願を限定するものではない。
図1】本出願の実施例により提供されるブロックチェーンのスマートコントラクト実現方法のフローチャートである。
図2】本出願の実施例により提供される別のブロックチェーンのスマートコントラクト実現方法のフローチャートである。
図3】本出願の実施例により提供されるブロックチェーンのスマートコントラクト実現装置の構造ブロック図である。
図4】本出願の実施例のブロックチェーンのスマートコントラクト実現方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本出願の例示的な実施例を説明し、理解を容易にするためにその中には本出願の実施例の様々な詳細を含んでおり、それらは単なる例示するものと見なされるべきである。したがって、当業者は、本出願の範囲及び趣旨から逸脱することなく、ここで説明される実施例に対して様々な変更と修正を行うことができることを理解すべきである。同様に、明確及び簡潔するために、以下の説明では、周知の機能及び構成の説明を省略する。
【0013】
図1は、本出願の実施例により提供されるブロックチェーンのスマートコントラクト実現方法のフローチャートであり、当該方法は、ブロックチェーンシステムの実行プロセスにおいて、スマートコントラクトを呼び出してブロックデータを処理する場合に適用される。当該方法は、ブロックチェーンのスマートコントラクト実現装置によって実行でき、当該装置は、ソフトウェア及び/又はハードウェアによって実現でき、当該装置は、ブロックチェーンノードとして機能可能な電子機器に統合されてもよく、すなわち、当該方法は、ブロックチェーンノードに適用可能であり、ブロックチェーンノードによって実行されてもよい。図1に示すように、当該方法は、以下のステップを含む。
【0014】
S110、常駐のスマートコントラクトの起動条件が生成される場合、前記常駐のスマートコントラクトに対して常駐プロセスを作成し、前記常駐プロセスを介して仮想マシンを作成する。
【0015】
S120、前記仮想マシンを介して前記常駐のスマートコントラクトのコードをメモリにロードする。
【0016】
スマートコントラクトとは、仮想マシンに基づく実行可能なコードであり、コードの実行中に一定の機能を達成することができる。スマートコントラクトを呼び出す際に、スマートコントラクトに対してプロセスを作成し、プロセスにメモリ空間などの実行可能なリソースを割当て、プロセスで仮想マシンを構築し、仮想マシンに基づいてスマートコントラクトのコードをロードして実行する。
【0017】
常駐のスマートコントラクトとは、通常のスマートコントラクトと比較して言うと特別なスマートコントラクトである。ここで、メモリにおける前記通常のスマートコントラクトのプロセスの生存期間は、1つのブロック生成期間であり、メモリにおける前記常駐のスマートコントラクトの常駐プロセスの生存期間は、1つのブロック生成期間よりも大きい。
【0018】
ブロックチェーンシステムは、ブロック生成期間に従って、当該ブロックのトランザクション要求を順次処理し、トランザクション要求は、ブロックチェーンシステムにおけるユーザのビジネスニーズを含む要求内容である。一般に、トランザクション要求は、少なくとも1つのスマートコントラクトを呼び出すことによって実現されることができる。現在のブロック生成期間が開始すると、ブロックチェーンのマスタプログラムがトランザクション要求に基づいてスマートコントラクトを呼び出し、通常のスマートコントラクトは、通常、トランザクション要求中のある機能を完了させるために、現在のブロック生成期間内に、現在のブロックにおけるトランザクション要求の処理過程において呼び出される。現在のブロックの処理が完了した後に、通常のスマートコントラクトの機能も実行完了し、呼び出しを終了し、マスタプログラムにより終了を通常のスマートコントラクトに通知する。したがって、通常のスマートコントラクトのプロセスの生存期間は、1つのブロック生成期間である。メモリにおける常駐のスマートコントラクトの常駐プロセスの生存期間は、1つのブロック生成期間よりも大きい。選択可能に、常駐のスマートコントラクトの常駐プロセスは、メモリに持続的に存在してもよく、1つのブロックを生成する過程で有効にされた後に終了することに限定らず、ブロックにまたがる過程で繰り返し呼び出される可能である。
【0019】
本実施例では、具体的には、常駐のスマートコントラクトの起動条件が生成される場合、前記常駐のスマートコントラクトに対して常駐プロセスを作成し、前記常駐プロセスを介して仮想マシンを作成する。常駐のスマートコントラクトの起動条件を生成することは、複数の場合があり、選択可能に、ブロックチェーンシステムがローカルマシンブロックチェーンノードで起動される場合、前記常駐のスマートコントラクトの起動条件を生成することと、常駐のスマートコントラクトが初めて呼び出される場合、前記常駐のスマートコントラクトの起動条件を生成することとの少なくとも1つの場合にも、常駐のスマートコントラクトを起動することができる。
【0020】
すなわち、ブロックチェーンシステムが配備されているローカルマシンブロックチェーンノードが実行を開始すると、始めに1又は複数の常駐のスマートコントラクトの実行を起動し、それは、常駐のスマートコントラクトをプリロードし、常駐のスマートコントラクトの後続の呼び出し準備が整うことに相当し、これにより、本当に呼び出しが必要なときに、常駐のスマートコントラクトを介してデータアクセス及びデータ処理を迅速に行うことができる。
【0021】
または、常駐のスマートコントラクトを初めて呼び出す必要がある時に起動することもできる。すなわち、必要に応じて常駐のスマートコントラクトを起動し、起動後に、メモリに常駐してもよく、後続の呼び出し時にデータアクセス及びデータ処理を迅速に行うことを便利にする。
【0022】
S130、前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信する。
【0023】
常駐のスマートコントラクトによって実現された機能は、一般に、高頻度のアクセスが必要なデータ、又はブロックにまたがって処理する必要があるデータである。例えば、ブロックカウント値、トランザクション要求カウント値は、連続的にカウントする必要があり、ブロックが生成されるたびに再カウントする必要があれば、より大きくの計算リソースが必要になる。したがって、常駐のスマートコントラクトを介してカウントすることができ、現在のブロックの別の通常のスマートコントラクトがそのカウント値を使用する必要がある場合には、クロスコントラクト呼び出しインターフェースを介して常駐のスマートコントラクトを直接アクセスし、カウント値のデータを直接読み出して使用することができる。
【0024】
もちろん、クロスコントラクト呼び出しインターフェースを介して実行されるデータアクセス要求のアクセス対象は、カウント値に限定されず、ブロックチェーンアカウント情報、トランザクション要求カウント値、ブロックカウント値、及びクロスブロックデータなどを選択可能に含む。ブロックチェーンアカウント情報は、1つの常駐のスマートコントラクトによって統一的に維持更新されることができ、いつでも通常のスマートコントラクトによりアクセス、クエリすることができる。クロスブロックデータとは、異なるブロック中のデータ結合処理に基づいて生成されたデータであり、1つのブロックの生成期間内にスマートコントラクトの実行が終了すると、クロスブロックデータが連続して計算されず、履歴データを再記載して処理する必要がある。一方、常駐のスマートコントラクトを使用すると、クロスブロックデータを連続的に処理して記録することができる。
【0025】
常駐のスマートコントラクトによって処理されるデータや機能は、上記例に限定されず、具体的なニーズに応じて設定することができる。
【0026】
本実施例におけるクロスコントラクト呼び出しインターフェースは、具体的には、プロセス間通信プロトコルに基づいて実現できる。これにより、スマートコントラクトプロセス間のインタラクションを容易に行うことができる。クロスコントラクト呼び出しインターフェースは、ブロックチェーンシステムに配備されている専用呼び出しモデルによって実現することができる。
【0027】
S140、前記仮想マシンによって前記常駐のスマートコントラクトを実行して、前記データアクセス要求を処理し、データアクセス結果を前記通常のスマートコントラクトに戻す。
【0028】
本出願の実施例の技術案によれば、常駐のスマートコントラクトを設定することにより、そのような特別なスマートコントラクトがメモリに常駐して実行を維持することができ、磁気ディスクからコードとデータをロードして再計算する必要がなく、いつでも高頻度のアクセスデータ又はクロスブロックデータへのアクセスを提供できるため、データ処理速度を向上させ、計算及び読み書きリソースの消費を削減させる。
【0029】
上記実施例に加えて、当該方法は、常駐のスマートコントラクトの終了条件が生成される場合、前記常駐のスマートコントラクトのメモリに格納されているデータをソリッド化して磁気ディスクに書き込み、前記常駐のスマートコントラクトに割当てられた仮想マシンのプロセスとメモリ空間を終了するステップをさらに含むことができる。
【0030】
常駐のスマートコントラクトの常駐プロセスは、メモリに持続的に存在することができ、現在のブロック生成期間の終了とともにマスタプログラムによって終了される必要がない。常駐のスマートコントラクトは、終了条件が生成される時に、メモリ中のデータを長期化して磁気ディスクに格納し、プロセスとメモリ空間を終了することができる。
【0031】
具体的には、常駐のスマートコントラクトの終了条件を生成するステップは、ブロックチェーンシステムがローカルマシンブロックチェーンノードで終了する場合、前記常駐のスマートコントラクトの終了条件を生成するステップと、ローカルマシンブロックチェーンノードの実行リソースがダウングレード需要を生成する場合、前記常駐のスマートコントラクトの終了条件を生成するステップであって、ここで、前記実行リソースは、メモリリソース又は計算リソースを含むステップとの少なくとも1つを含むことができる。
【0032】
すなわち、ローカルマシンブロックチェーンノードが終了して実行を停止すると、常駐のスマートコントラクトの常駐プロセスを終了することができる。そうすると、常駐のスマートコントラクトがノードの実行過程において常に存在することに相当し、データ処理機能を持続的に提供することができる。或いは、ノードの実行リソースが有限であるため、ダウングレード需要が生成される場合、常駐プロセスから一時的に終了することも可能である。実行リソースのダウングレード需要は、トランザクション要求の同時発生量が急激に増加した場合や、デバイス故障によるリソースが不足した場合に発生する可能性がある。
【0033】
上記実施例に加えて、常駐のスマートコントラクトは、インターフェースを設定することにより保留機能を実現することもでき、すなわち、前記方法は、常駐のスマートコントラクトの保留条件が生成される場合、前記常駐プロセスに対してプロセスハンドルを保持し、前記常駐のスマートコントラクトのメモリに格納されているデータを磁気ディスク内の一時記憶領域に書き込み、前記常駐のスマートコントラクトに割当てられた仮想マシンのプロセスとメモリ空間を終了するステップをさらに含むことができる。
【0034】
保留は、通常、ノードの実行リソースが不足している場合に実施することができる。メモリの空きスペースが少ない場合、又はCPUの計算リソースの消費が多い場合に、より多くの常駐プロセスをサポートするのに不十分である可能性があり、この場合、常駐プロセスの一部又は全部を保留し、実行リソースが十分になると、常駐プロセスをメモリにロードすることができる。
【0035】
具体的には、実行リソースの残量や消費量が設定された下限値を下回るなどの保留条件が生成される場合、予め設定されたポリシーに従って、少なくとも1つの常駐プロセスを決定して保留動作を行うことができる。予め設定されたポリシーは、常駐プロセスに対して優先順位を予め設定してもよいし、常駐プロセスの呼び出される頻度などの要因に従ってフィルタリングしてもよい。設定された数の常駐プロセスを保留してもよいし、常駐プロセスを順次保留し、実行リソースが通常の実行レベルに回復するまで保留動作を停止してもよい。常駐プロセスの保留機能は、実行リソースに対する占有状況を効率的に制御し、常駐プロセスが高頻度データで提供されたアクセスサービスと実行リソースに対する占有を両立させることができる。
【0036】
常駐プロセスの保留とは、常駐プロセスのメモリ空間中のデータを磁気ディスクにおける一時的に割当られたストレージ空間に一時的に格納して、メモリ空間を解放するとともに、常駐プロセスの外部サービスを停止することである。常駐プロセスを再起動する必要がある場合、一時記憶領域からデータをロードして常駐プロセスを再開する。保留段階でノードに障害が発生してシャットダウンすると、一時ストレージ空間のデータも消去される。
【0037】
図2は、本出願の実施例により提供される別のブロックチェーンのスマートコントラクト実現方法のフローチャートである。本実施例は、上記実施例に加えて、常駐のスマートコントラクトのデータ更新機能をさらに説明する。図2に示すように、当該方法は、以下のステップを含む。
【0038】
S210、常駐のスマートコントラクトの起動条件が生成される場合、前記常駐のスマートコントラクトに対して常駐プロセスを作成し、前記常駐プロセスを介して仮想マシンを作成する。
【0039】
S220、前記仮想マシンを介して前記常駐のスマートコントラクトのコードをメモリにロードする。
【0040】
S230、現在のブロックの処理を起動する場合、前記現在のブロックのブロック依存データを前記常駐プロセスに伝送して、前記常駐プロセスメモリ空間中のデータを現在のブロック中のデータと一致するように更新する。
【0041】
常駐プロセスが常駐のスマートコントラクトをロードした後に、メモリに常駐するため、常駐プロセスは、通常のスマートコントラクトと同様に、1つのブロック生成期間の開始時に起動して最新のブロックデータをロードできず、且つブロック生成期間の終了時に終了することではなく、これにより、処理されたデータを磁気ディスクに更新する。したがって、常駐のスマートコントラクトは、常駐のスマートコントラクトの実行時に基になるデータが現在のブロックチェーンにおける最新のブロックのデータになるように、特別なデータ更新メカニズムを必要とする。
【0042】
本実施例により実現されるデータ更新は、選択可能に、1つの新しいブロック生成期間の開始時に、常駐プロセスのメモリデータに対する更新を実現することである。1つの新しいブロック生成期間を開始すると、一般に、ブロックチェーンシステムのマスタプログラムによって新しいブロックの処理を開始し、現在取得されたトランザクション要求に基づいて、対応する通常のスマートコントラクト及び常駐のスマートコントラクトを呼び出して処理する。現在のブロック中のトランザクション要求の処理は、一般に、今まで生成されたブロック中のデータに基づいて実行される。例えば、現在のブロック中のトランザクション要求が履歴ブロックにすでに記録されているあるアカウントのデータにアクセスすることである場合、履歴ブロック中の当該アカウントのデータに対して読み出し操作を行うことが必要である。現在のブロック中のトランザクション要求は、履歴ブロック中のあるデータに対して削除、追加又は変更などの書き込み操作を行うことであり、実際には、現在のブロックに履歴データに対する書き込み操作を記録することに相当する。上記読み出し操作及び書き込み操作が依存する履歴ブロックデータは、現在のブロックのブロック依存データである。マスタプログラムが通常のスマートコントラクトのロードを起動する場合、ブロック依存データを磁気ディスクに記録された履歴ブロックデータから読み出し、通常のスマートコントラクトのメモリ空間にロードして処理することが可能である。常駐のスマートコントラクトの常駐プロセスに対して、マスタプログラムは、現在のブロックの処理を開始した直後に、ブロック依存データを常駐のスマートコントラクトの常駐プロセスに伝送することができる。常駐のスマートコントラクトが依存するテータは、インターフェースを介して予め設定することができる。例えば、ブロックカウントを行うための常駐のスマートコントラクトの場合、マスタプログラムが常駐のスマートコントラクトを呼び出す際に、呼び出しインターフェースを介して常駐のスマートコントラクトに現在の最新のブロック情報を入力して、常駐プロセスが前処理できるようにする。常駐プロセスは、常駐のスマートコントラクト自身で定義された機能やパラメーターに基づいて、ブロック情報中の処理すべきデータを処理するとともに、別のデータを無視することができる。
【0043】
S240、前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信する。
【0044】
S250、前記仮想マシンによって前記常駐のスマートコントラクトを実行して、前記データアクセス要求を処理し、データアクセス結果を前記通常のスマートコントラクトに戻す。
【0045】
ここで、メモリにおける前記通常のスマートコントラクトのプロセスの生存期間は、1つのブロック生成期間であり、メモリにおける前記常駐のスマートコントラクトの常駐プロセスの生存期間は、1つのブロック生成期間よりも大きい。
【0046】
本実施例の技術案によれば、現在のブロックが処理を起動する場合、データが現在のブロックと同期に更新できるように、ブロック依存データを常駐プロセスに伝送し、これにより、正しいデータ処理を実現する。
【0047】
また、磁気ディスク中のブロックデータを最新の状態に保つように、常駐のスマートコントラクトによって処理されたデータをタイムリーに磁気ディスクに更新する必要もある。一方で、現在のブロックの処理が終了した時に、常駐プロセスによってメモリ空間中のデータを磁気ディスクにソリッド化して書き込むことが可能である。具体的には、マスタプログラムは、現在のブロックの処理が終了した時に、常駐プロセスを呼び出して、現在のブロック生成期間内で更新されたデータを磁気ディスクに書き込むように常駐プロセスを制御することができる。他方では、実際の操作では、常駐のスマートコントラクトが関数として呼び出され、呼び出し結果を処理プロセス(例えば、マスタプログラム又は他のスマートコントラクトのプロセス)に戻し、処理プロセスが現在のトランザクションデータとともに現在のブロックに書き込まれ、すなわち、磁気ディスク空間にソリッド化される。マスタプログラムが常駐のスマートコントラクトを呼び出して前処理を行う場合には、前処理プロセスに戻り値があれば、マスタプログラムは、前処理の結果をソリッド化して現在のブロックに書き込むことができる。
【0048】
上記技術案に加えて、常駐プロセス中のデータがブロックデータと一致するように維持するために、通常のスマートコントラクトが常駐のスマートコントラクトを呼び出す時に、データを更新するように常駐プロセスに能動的に通知することもできる。すなわち、前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信するステップと同時に、常駐のスマートコントラクトのメモリ空間中のデータが現在のブロックデータと一致するように維持するために、前記クロスコントラクト呼び出しインターフェースを介して、通常のスマートコントラクトで伝送されたブロック依存データを取得して、前記常駐プロセスのメモリ空間に更新するステップをさらに含む。
【0049】
上記技術案では、通常のスマートコントラクトが常駐のスマートコントラクトを呼び出す時に、常駐プロセスのメモリ空間中のデータが現在のブロックデータと一致するように維持するために、実行が依存するデータを常駐プロセスに能動的に伝送する。
【0050】
上記技術案に加えて、常駐プロセスメモリ空間中のデータと現在のブロックデータと一致するように維持するために、ブロックロールバックの場合を考慮することもできる。ブロックロールバックとは、すなわち、様々な理由により、ブロックチェーンノードにおけるアップチェーンが記録された最後の1つ又は複数のブロックが無効になったため、ブロックチェーンから除去される必要があるということである。ブロックロールバックは、ブロックを直接削除すればよいのではなく、各トランザクション要求を後方から前向きに逆に実行する必要があり、これにより、無効なブロックのトランザクション要求によるデータ変化を取り消してから新しい有効なブロックのトランザクション要求を実行する。
【0051】
通常のスマートコントラクトの場合、ブロックがロールバックすると、通常のスマートコントラクトは終了すればよく、マスタプログラムによって制御されて再起動されるのを待つ。常駐のスマートコントラクトは、常駐プロセスを終了して常駐プロセスを再作成することにより、磁気ディスク内のブロックデータに基づいてロールバックを完了することもできる。しかしながら、常駐プロセスを繰り返し終了と再構築することを回避するために、好ましくは以下の方法を用いて常駐プロセスのメモリ空間中のデータロールバックを完了する。すなわち、前記方法は、ブロックロールバックイベントが生成される場合、ブロックチェーンシステムのマスタプログラムを介して前記常駐プロセスに通知し、少なくとも1つのロールバックブロックのトランザクション要求に基づいてロールバック操作を行って、前記常駐のスマートコントラクトのメモリ空間中のデータを更新するステップをさらに含む。
【0052】
上記技術案では、常駐プロセスの生存状態を維持し、各トランザクション要求の逆順のロールバック操作に基づいて、マスタプログラムによってロールバック操作で更新されたデータを常駐プロセスに通知することにより、常駐プロセスがメモリ空間中のデータを更新する。
【0053】
または、当該方法は、ブロックロールバックイベントが生成される場合、ブロックチェーンシステムのマスタプログラムを介して、前記常駐プロセスが終了して再起動するように通知して、ロールバックされたブロックデータを磁気ディスクから再ロードするステップをさらに含むことができる。このようにして、繰り返しのデータ多重化にはデバイスの性能が十分である必要がある。
【0054】
本出願の実施例の技術案は、本質的にメモリにロードされ、終了していない仮想マシンにて実行できる常駐のスマートコントラクトを提供し、常駐のスマートコントラクトの仮想マシンのインターフェースは、主に、起動インターフェースと、ロードプロセスと、呼び出しインターフェースと、終了インターフェースと、保留インターフェースと、ブロックウォークサポートインターフェースと、を含む。
【0055】
常駐プロセスの起動インターフェースは、新しい常駐プロセスを作成し、仮想マシンを起動する。当該仮想マシンは、外部にIPC通信能力を提供することができる。
【0056】
ロード(Load)プロセスは、常駐のスマートコントラクトのバイトコードを、起動された新しい常駐プロセスの仮想マシンにロードする。
【0057】
呼び出しインターフェースは、クロスコントラクト呼び出しを受信し、マスタプログラム、通常のスマートコントラクト及び別のプログラムが通常のスマートコントラクトにアクセスするインターフェースである。
【0058】
終了インターフェースは、常駐プロセスを終了し、すなわち、リソースを再利用し、データを磁気ディスクにシリアル化し、常駐プロセスを終了する。
【0059】
保留インターフェースは、常駐プロセスを保留し、すなわち、プロセスハンドルを保持し、システム呼び出しにより実行リソースをフリーにして、常駐スマートコントラクトの外部サービスを終了する。
【0060】
ブロックウォークサポートインターフェースは、最新のブロックデータを受信し、メモリ空間中のデータを最新のブロックに更新する。
【0061】
上記インターフェースは、WASMによって実現することができ、WASMのプロセスを独立して維持することができる。このようにして、独立したプロセスは、仮想マシンが破棄されるまで、データの有効な状態を常に維持する。
【0062】
図3は、本出願の実施例により提供されるブロックチェーンのスマートコントラクト実現装置300の構造ブロック図である。当該装置300は、ブロックチェーンノードに配置され、前記装置は、プロセス作成モジュール310と、コントラクトロードモジュール320と、コントラクト呼び出しモジュール330と、結果戻しモジュール340と、を備える。
【0063】
ここで、プロセス作成モジュール310は、常駐のスマートコントラクトの起動条件が生成される場合、前記常駐のスマートコントラクトに対して常駐プロセスを作成し、前記常駐プロセスを介して仮想マシンを作成する。コントラクトロードモジュール320は、前記仮想マシンを介して前記常駐のスマートコントラクトのコードをメモリにロードする。コントラクト呼び出しモジュール330は、前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信する。結果戻しモジュール340は、前記仮想マシンによって前記常駐のスマートコントラクトを実行して、前記データアクセス要求を処理し、データアクセス結果を前記通常のスマートコントラクトに戻す。ここで、メモリにおける前記通常のスマートコントラクトのプロセスの生存期間は、1つのブロック生成期間であり、メモリにおける前記常駐のスマートコントラクトの常駐プロセスの生存期間は、1つのブロック生成期間よりも大きい。
【0064】
本出願の実施例の技術案は、常駐のスマートコントラクトを設定することにより、そのような特別なスマートコントラクトがメモリに常駐して実行を維持することができ、磁気ディスクからコードとデータをロードして再計算する必要がなく、いつでも高頻度のアクセスデータ又はクロスブロックデータへのアクセスを提供できるため、データ処理速度を向上させ、計算及び読み書きリソースの消費を削減させる。
【0065】
選択可能に、常駐のスマートコントラクトの起動条件を生成することは、ブロックチェーンシステムがローカルマシンブロックチェーンノードで起動される場合、前記常駐のスマートコントラクトの起動条件を生成することと、前記常駐のスマートコントラクトが初めて呼び出される場合、前記常駐のスマートコントラクトの起動条件を生成することとの少なくとも1つを含む。
【0066】
選択可能に、前記装置は、常駐のスマートコントラクトの終了条件が生成される場合、前記常駐のスマートコントラクトのメモリに格納されているデータをソリッド化して磁気ディスクに書き込み、前記常駐のスマートコントラクトに割当てられた仮想マシンのプロセスとメモリ空間を終了するためのプロセス終了モジュールをさらに備える。
【0067】
選択可能に、常駐のスマートコントラクトの終了条件を生成することは、ブロックチェーンシステムがローカルマシンブロックチェーンノードで終了する場合、前記常駐のスマートコントラクトの終了条件を生成することと、ローカルマシンブロックチェーンノードの実行リソースがダウングレード需要を生成する場合、前記常駐のスマートコントラクトの終了条件を生成し、ここで、前記実行リソースは、メモリリソース又は計算リソースを含むこととの少なくとも1つを含む。
【0068】
選択可能に、前記装置は、プロセス保留モジュールをさらに備え、プロセス保留モジュールは、常駐のスマートコントラクトの保留条件が生成される場合、前記常駐プロセスに対してプロセスハンドルを保持し、前記常駐のスマートコントラクトのメモリに格納されているデータを磁気ディスク内の一時記憶領域に書き込み、前記常駐のスマートコントラクトに割当てられた仮想マシンのプロセスとメモリ空間を終了する。
【0069】
選択可能に、前記クロスコントラクト呼び出しインターフェースは、プロセス間通信プロトコルに基づいて実現される。
【0070】
選択可能に、前記装置は、第1のデータ更新モジュールをさらに備え、第1のデータ更新モジュールは、現在のブロックの処理を起動する場合、前記現在のブロックのブロック依存データを前記常駐プロセスに伝送して、前記常駐プロセスのメモリ空間中のデータを現在のブロック中のデータと一致するように更新する。
【0071】
選択可能に、前記装置は、第2のデータ更新モジュールをさらに備え、第2のデータ更新モジュールは、前記仮想マシンのクロスコントラクト呼び出しインターフェースを介して、ブロック生成期間内に通常のスマートコントラクトによって生成されたデータアクセス要求を受信すると同時に、常駐のスマートコントラクトのメモリ空間中のデータが現在のブロックデータと一致するように維持するために、前記クロスコントラクト呼び出しインターフェースを介して、通常のスマートコントラクトで伝送されたブロック依存データを取得し、前記常駐プロセスのメモリ空間中に更新する。
【0072】
選択可能に、前記データアクセス要求のアクセス対象は、ブロックチェーンアカウント情報、トランザクション要求カウント値、ブロックカウント値、及びクロスブロックデータを含む。
【0073】
選択可能に、前記装置は、ブロックロールバックイベントが生成される場合、ブロックチェーンシステムのマスタプログラムを介して常駐プロセスに通知し、少なくとも1つのロールバックブロックのトランザクション要求に基づいてロールバック操作を行って、前記常駐のスマートコントラクトのメモリ空間中のデータを更新するための第1のロールバックモジュール、または、ブロックロールバックイベントが生成される場合、ブロックチェーンシステムのマスタプログラムを介して前記常駐プロセスが終了して再起動するように通知して、ロールバックされたブロックデータを磁気ディスクから再ロードするための第2のデータ更新モジュールを備える。
【0074】
本出願の実施例によれば、本出願は、電子機器及び読み取り可能な記憶媒体をさらに提供する。
本出願の実施例によれば、本出願は、コンピュータプログラムを提供し、コンピュータプログラムは、コンピュータに本出願によって提供されるブロックチェーンのスマートコントラクト実現方法を実行させる。
【0075】
図4に示すように、本出願の実施例に係るブロックチェーンのスマートコントラクト実現方法の電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及び他の適切なコンピュータなどの様々な形式のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタルプロセッサ、携帯電話、スマートフォン、ウェアラブルデバイス、他の同様のコンピューティングデバイスなどの様々な形式のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本出願の実現を制限することを意図したものではない。
【0076】
図4に示すように、当該電子機器は、1つ又は複数のプロセッサ401と、メモリ402と、高速インターフェースと低速インターフェースを備える各コンポーネントを接続するためのインターフェースと、を備える。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けられるか、又は必要に応じて他の方式で取り付けることができる。プロセッサは、外部入力/出力装置(インターフェースに結合されたディスプレイデバイスなど)にGUIの図形情報をディスプレイするためにメモリに記憶されている命令を含む、電子機器内に実行される命令を処理することができる。他の実施形態では、必要であれば、複数のプロセッサ及び/又は複数のバスを、複数のメモリとともに使用することができる。同様に、複数の電子機器を接続することができ、各機器は、部分的な必要な操作(例えば、サーバアレイ、ブレードサーバ、又はマルチプロセッサシステムとする)を提供することができる。図4では、1つのプロセッサ401を例とする。
【0077】
メモリ402は、本出願に係る非一時的なコンピュータ読み取り可能な記憶媒体である。ここで、前記メモリには、少なくとも1つのプロセッサが本出願に係るブロックチェーンのスマートコントラクト実現方法を実行できるように、少なくとも1つのプロセッサによって実行される命令が記憶されている。本出願の非一時的なコンピュータ読み取り可能な記憶媒体には、コンピュータに本出願に係るブロックチェーンのスマートコントラクト実現方法を実行させるためのコンピュータ命令が記憶されている。
【0078】
メモリ402は、非一時的なコンピュータ読み取り可能な記憶媒体として、本出願の実施例に係るブロックチェーンのスマートコントラクト実現方法に対応するプログラム命令/モジュール(例えば、図3に示すプロセス作成モジュール310と、コントラクトロードモジュール320と、コントラクト呼び出しモジュール330と、結果戻しモジュール340)のような、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶する。プロセッサ401は、メモリ402に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち上記の方法の実施例に係るブロックチェーンのスマートコントラクト実現方法を実現する。
【0079】
メモリ402は、ストレージプログラム領域とストレージデータ領域とを含むことができ、ここで、ストレージプログラム領域は、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶することができ、ストレージデータ領域は、電子機器の使用によって作成されたデータなどを記憶することができる。また、メモリ402は、高速ランダムアクセスメモリを備えることができ、非一時的なメモリをさらに備えることができ、例えば、少なくとも1つの磁気ディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスである。いくつかの実施例では、メモリ402は、プロセッサ401に対して遠隔に設置されたメモリを備えることができ、これらの遠隔メモリは、ネットワークを介してブロックチェーンのスマートコントラクト実現方法を実行電子機器に接続することができる。上記のネットワークの例としては、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びその組み合わせを備えるが、これらに限定されない。
【0080】
ブロックチェーンのスマートコントラクト実現方法を実行する電子機器は、入力装置403と出力装置404とをさらに備えることができる。プロセッサ401、メモリ402、入力装置403、及び出力装置404は、バス又は他の方式を介して接続することができ、図4では、バスを介して接続することを例とする。
【0081】
入力装置403は、入力された数字又はキャラクタ情報を受信し、ブロックチェーンのスマートコントラクト実現のための電子機器のユーザ設定及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、インジケータースティック、1つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置である。出力装置404は、ディスプレイデバイス、補助照明デバイス(例えば、LED)、及び触覚フィードバックデバイス(例えば、振動モータ)などを備えることができる。当該ディスプレイデバイスは、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、及びプラズマディスプレイを備えることができるが、これらに限定されない。いくつかの実施形態では、ディスプレイデバイスは、タッチスクリーンであってもよい。
【0082】
本明細書で説明されるシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムで実施され、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを備えるプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
【0083】
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械命令を含み、高レベルのプロセス及び/又はオブジェクト指向プログラミング言語、及び/又はアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することを含む。本明細書に使用されるような、「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、機器、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。「機械読み取り可能な信号」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
【0084】
ユーザとのインタラクションを提供するために、コンピュータ上で、ここで説明されているシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置は、ユーザとのインタラクションを提供するように構成されてもよい。例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
【0085】
ここで説明されるシステム及び技術は、バックエンドコンポーネントを備えるコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを備えるコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを備えるコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施形態とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続されてもよい。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットとを含む。
【0086】
コンピュータシステムは、クライアント側とサーバとを備えることができる。クライアント側とサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアント側とサーバとの関係が生成される。
【0087】
本出願の実施例の技術案によれば、常駐のスマートコントラクトを設定することにより、そのような特別なスマートコントラクトがメモリに常駐して実行を維持することができ、磁気ディスクからコードとデータをロードして再計算する必要がなく、いつでも高頻度のアクセスデータ又はクロスブロックデータへのアクセスを提供できるため、データ処理速度を向上させ、計算及び読み書きリソースの消費を削減させる。
【0088】
上記に示される様々な形式のフローを使用して、ステップを並べ替え、追加、又は削除することができることを理解されたい。例えば、本出願に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本出願で開示されている技術案が所望の結果を実現することができれば、本明細書では限定されない。
【0089】
上記の具体的な実施形態は、本出願の保護範囲を制限するものではない。当業者は、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。任意の本出願の精神と原則内で行われる修正、同等の置換、及び改良などは、いずれも本出願の保護範囲内に含まれるべきである。
図1
図2
図3
図4