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

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

▶ テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッドの特許一覧

特許7463544ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム
<>
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図1
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図2
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図3
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図4
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図5
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図6
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図7
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図8
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図9
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図10
  • 特許-ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-29
(45)【発行日】2024-04-08
(54)【発明の名称】ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム
(51)【国際特許分類】
   G06F 9/54 20060101AFI20240401BHJP
【FI】
G06F9/54 Z
【請求項の数】 15
(21)【出願番号】P 2022556585
(86)(22)【出願日】2021-05-07
(65)【公表番号】
(43)【公表日】2023-05-22
(86)【国際出願番号】 CN2021092039
(87)【国際公開番号】W WO2021244211
(87)【国際公開日】2021-12-09
【審査請求日】2022-10-17
(31)【優先権主張番号】202010492628.3
(32)【優先日】2020-06-03
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リウ,パン
【審査官】三坂 敏夫
(56)【参考文献】
【文献】米国特許出願公開第2017/0287068(US,A1)
【文献】特表2020-515092(JP,A)
【文献】国際公開第2019/120325(WO,A2)
【文献】国際公開第2019/162056(WO,A1)
【文献】国際公開第2019/246565(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
(57)【特許請求の範囲】
【請求項1】
コンピュータデバイスであるオラクルコントラクトノードによって実行されるブロックチェーンメッセージ処理方法であって、
業務コントラクト情報を取得し、前記業務コントラクト情報をオラクルコントラクトに追加するステップであって、前記業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、前記業務スマートコントラクトに対応する業務要求イベントとが含まれ、前記オラクルコントラクトは、業務マッピングテーブルを含み、前記業務マッピングテーブルには、業務タイプと、前記業務タイプに対応する業務データ集合とが含まれ、前記追加するステップは、
前記業務要求イベントが属するターゲット業務タイプを取得し、前記オラクルコントラクトから、前記ターゲット業務タイプに対応するターゲット業務データ集合を取得するステップと、
前記業務コントラクト情報を前記ターゲット業務データ集合に追加するステップと、を含む、ステップと、
ターゲットオフチェーンノードを取得し、前記オラクルコントラクトを介して前記業務コントラクト情報を前記ターゲットオフチェーンノードに送信することで、前記業務要求イベントに対応するイベント要求結果を前記ターゲットオフチェーンノードに取得させるステップと、
前記ターゲットオフチェーンノードによって送信された前記イベント要求結果を取得し、前記イベント要求結果を、前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックするステップと、
を含むことを特徴とする方法。
【請求項2】
業務コントラクト情報を取得する前記ステップは、
コントラクトブロックのブロックがチェーンに追加されたメッセージを取得するステップであって、前記ブロックがチェーンに追加されたメッセージには、前記業務スマートコントラクトが含まれるステップと、
前記業務スマートコントラクトのコントラクト識別子を取得するステップと、
前記業務スマートコントラクトを解析し、前記業務要求イベントを得るステップであって、前記業務要求イベントには、前記業務スマートコントラクトがトリガーされた後に要求するデータオブジェクトを特徴付けるために使用される業務要求オブジェクトが含まれるステップと、
前記コントラクト識別子および前記業務要求イベントに基づいて、前記業務コントラクト情報を生成するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記方法は、
前記業務要求イベントのハッシュ値を取引ハッシュとして生成するステップ、をさらに含み、
前記コントラクト識別子および前記業務要求イベントに基づいて、前記業務コントラクト情報を生成する前記ステップは、
前記コントラクト識別子、前記取引ハッシュおよび前記業務要求イベントに基づいて、前記業務コントラクト情報を生成するステップ、を含む、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記ターゲットオフチェーンノードによって送信された前記イベント要求結果を取得する前記ステップは、
前記ターゲットオフチェーンノードによって送信された業務応答メッセージを受信するステップであって、前記業務応答メッセージには、前記イベント要求結果および前記取引ハッシュが含まれるステップと、
前記業務応答メッセージにおける前記イベント要求結果を取得するステップと、を含み、
この場合、前記イベント要求結果を、前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックする前記ステップは、
前記業務応答メッセージにおける前記取引ハッシュを取得するステップと、
前記取引ハッシュに基づいて、前記イベント要求結果に対応する前記コントラクト識別子を決定するステップであって、前記コントラクト識別子と前記取引ハッシュとの間には、関連関係が存在しているステップと、
前記イベント要求結果を、前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックするステップと、を含む、
ことを特徴とする請求項3に記載の方法。
【請求項5】
ターゲットオフチェーンノードを取得し、前記オラクルコントラクトを介して前記業務コントラクト情報を前記ターゲットオフチェーンノードに送信する前記ステップは、
前記ターゲット業務データ集合に対応するオフチェーンノードを前記ターゲットオフチェーンノードとして取得するステップと、
前記オラクルコントラクトを介して前記業務コントラクト情報を前記ターゲットオフチェーンノードに送信するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項6】
ターゲットオフチェーンノードを取得する前記ステップは、
アイドル状態にあるオフチェーンノードを候補オフチェーンノードとして取得するステップと、
前記候補オフチェーンノードのネットワーク品質パラメータを取得し、前記ネットワーク品質パラメータが最も高い候補オフチェーンノードを前記ターゲットオフチェーンノードとして決定するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項7】
前記イベント要求結果を、前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックする前記ステップは、
前記業務要求イベントに対応するプロトコルデータフォーマットを取得し、前記イベント要求結果のデータフォーマットを前記プロトコルデータフォーマットに変換して、変換された実行結果を得るステップと、
前記変換された実行結果を、前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックするステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項8】
コンピュータデバイスであるターゲットオフチェーンノードによって実行されるブロックチェーンメッセージ処理方法であって、
オラクルコントラクトノードがオラクルコントラクトを介して送信した業務コントラクト情報を取得するステップであって、前記業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、前記業務スマートコントラクトに対応する業務要求イベントとが含まれ、前記オラクルコントラクトは、業務マッピングテーブルを含み、前記業務マッピングテーブルには、業務タイプと、前記業務タイプに対応する業務データ集合とが含まれ、前記業務コントラクト情報は、前記業務要求イベントが属するターゲット業務タイプに対応するターゲット業務データ集合に記憶されるステップと、
前記業務要求イベントに基づいてデータ取得アドレスを決定するステップと、
前記データ取得アドレスをアクセスし、前記業務要求イベントに対応するイベント要求結果を取得し、前記イベント要求結果を前記オラクルコントラクトノードに送信することで、前記オラクルコントラクトノードに、前記イベント要求結果を前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックさせるステップと、
を含むことを特徴とする方法。
【請求項9】
前記業務コントラクト情報には、取引ハッシュがさらに含まれ、
前記方法は、さらに、
前記業務要求イベントの検証ハッシュを生成し、前記取引ハッシュが前記検証ハッシュと同じである場合、前記業務要求イベントに基づいてデータ取得アドレスを決定するステップをトリガーするステップと、
前記取引ハッシュが前記検証ハッシュと異なる場合、前記オラクルコントラクトノードに業務データ異常メッセージを送信するステップと、を含む、
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記業務要求イベントには、業務処理時間が含まれ、
前記方法は、さらに
前記業務処理時間に基づいて業務タイマーを作成し、前記業務タイマーの値が前記業務処理時間と同じである場合、前記データ取得アドレスをアクセスするステップをトリガーするステップを、含む、
ことを特徴とする請求項9に記載の方法。
【請求項11】
前記イベント要求結果を前記オラクルコントラクトノードに送信する前記ステップは、
前記取引ハッシュを取得し、前記取引ハッシュおよび前記イベント要求結果を業務応答メッセージとしてパッケージングするステップであって、前記取引ハッシュが、前記オラクルコントラクトノードが前記コントラクト識別子を取得する根拠を特徴付けるために使用されるステップと、
前記業務応答メッセージを前記オラクルコントラクトノードに送信するステップと、を含む、
ことを特徴とする請求項9に記載の方法。
【請求項12】
ブロックチェーンメッセージ処理装置であって、
業務コントラクト情報を取得し、前記業務コントラクト情報をオラクルコントラクトに追加する業務取得モジュールであって、前記業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、前記業務スマートコントラクトに対応する業務要求イベントとが含まれ、前記オラクルコントラクトは、業務マッピングテーブルを含み、前記業務マッピングテーブルには、業務タイプと、前記業務タイプに対応する業務データ集合とが含まれ、前記業務取得モジュールは、
前記業務要求イベントが属するターゲット業務タイプを取得し、前記オラクルコントラクトから、前記ターゲット業務タイプに対応するターゲット業務データ集合を取得し、
前記業務コントラクト情報を前記ターゲット業務データ集合に追加する業務取得モジュールと、
ターゲットオフチェーンノードを取得し、前記オラクルコントラクトを介して前記業務コントラクト情報を前記ターゲットオフチェーンノードに送信することで、前記業務要求イベントに対応するイベント要求結果を前記ターゲットオフチェーンノードに取得させるノード取得モジュールと、
前記ターゲットオフチェーンノードによって送信された前記イベント要求結果を取得し、前記イベント要求結果を、前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックする結果取得モジュールと、
を含むことを特徴とする装置。
【請求項13】
ブロックチェーンメッセージ処理装置であって、
オラクルコントラクトノードがオラクルコントラクトを介して送信した業務コントラクト情報を取得する業務取得モジュールであって、前記業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、前記業務スマートコントラクトに対応する業務要求イベントとが含まれ、前記オラクルコントラクトは、業務マッピングテーブルを含み、前記業務マッピングテーブルには、業務タイプと、前記業務タイプに対応する業務データ集合とが含まれ、前記業務コントラクト情報は、前記業務要求イベントが属するターゲット業務タイプに対応するターゲット業務データ集合に記憶される業務取得モジュールと、
前記業務要求イベントに基づいてデータ取得アドレスを決定するアドレス決定モジュールと、
前記データ取得アドレスをアクセスし、前記業務要求イベントに対応するイベント要求結果を取得し、前記イベント要求結果を前記オラクルコントラクトノードに送信することで、前記オラクルコントラクトノードに、前記イベント要求結果を前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックさせる結果取得モジュールと、
を含むことを特徴とする装置。
【請求項14】
コンピュータ読み取り可能な命令が記憶されているメモリと、1つまたは複数のプロセッサとを含むコンピュータデバイスであって、
前記コンピュータ読み取り可能な命令が、前記1つまたは複数のプロセッサによって実行されるとき、請求項1~7または8~11のいずれか1項に記載の方法のステップを、前記1つまたは複数のプロセッサに実現させる、
ことを特徴とするコンピュータデバイス。
【請求項15】
コンピュータプログラムであって、
請求項1~7または8~11のいずれか1項に記載の方法のステップを、コンピュータデバイスに実現させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2020年6月3日に中国特許局に出願された、出願番号が202010492628.3であり、発明名称が「ブロックチェーンメッセージ処理方法、装置、コンピュータおよび読み取り可能な記憶媒体」である中国特許出願の優先権を主張しており、そのすべての内容が、参照により本願に組み込まれる。
【0002】
[技術分野]
本願は、ブロックチェーン技術の分野に関し、特に、ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよび読み取り可能な記憶媒体に関する。
【背景技術】
【0003】
ブロックチェーン技術がますます成熟するにつれて、ブロックチェーンの分散型などの特性も相まって、ブロックチェーンの応用はますます広がっている。言い換えれば、ブロックチェーンの最大のコアイノベーションは、分散型における信頼問題を解決することであり、第三者機関を信頼してそれに依存する必要がない状態で、価値移転を行うことにある。ここで、スマートコントラクトは、そのうちの重要な構成部分であり、デジタル形式で定義された一連のコントラクトであり、タスクを完成するためのプロトコルをコントラクトの参加者が実行することを支援するために使用される。一方、ブロックチェーンにおけるスマートコントラクトと、分散型アプリケーション(Dapp:Decentralized application)とは、外部データに対してインタラクションのニーズを持っている。ブロックチェーンは、ネットワーク呼び出しをアクティブに開始することができないため、でも、オンチェーンの一部のスマートコントラクトは、あるイベントの処理結果を取得してから、後続の業務の実行をさらにトリガーする必要があり、そして、イベントの処理結果は、ユーザによってインターネットを介して取得され、また、取得されたイベントの処理結果は、そのユーザによって取引データとしてブロックチェーンネットワークに転送される必要がある。しかしながら、ユーザによって自主的にイベントの処理結果が取得されることは、遅延が生じる傾向があり、その結果、当該スマートコントラクトは、当該イベントの処理結果をタイムリーに取得することができず、後続の業務の実行に影響を及ぼし、これによって、ブロックチェーンメッセージ処理の効率を低下させてしまう。
【発明の概要】
【0004】
本願の実施例は、ブロックチェーンメッセージ処理方法、装置、コンピュータデバイス、およびコンピュータプログラムを提供する。
【0005】
本願の実施例の一態様は、コンピュータデバイスであるオラクル(オラクルマシン、Oracle、または預言機械)コントラクトノード(Contract node)によって実行されるブロックチェーンメッセージ処理方法を提供し、この方法は、
業務コントラクト情報を取得し、前記業務コントラクト情報を予言機コントラクトに追加するステップであって、前記業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、前記業務スマートコントラクトに対応する業務要求イベントとが含まれるステップと、
ターゲットオフチェーンノードを取得し、前記予言機コントラクトを介して前記業務コントラクト情報を前記ターゲットオフチェーンノードに送信することで、前記業務要求イベントに対応するイベント要求結果を前記ターゲットオフチェーンノードに取得させるステップと、
前記ターゲットオフチェーンノードによって送信された前記イベント要求結果を取得し、前記イベント要求結果を、前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックするステップと、
を含む。
【0006】
本願の実施例の一態様は、コンピュータデバイスであるターゲットオフチェーンノードによって実行されるブロックチェーンメッセージ処理方法を提供し、この方法は、
オラクルコントラクトノードがオラクルコントラクトを介して送信した業務コントラクト情報を取得するステップであって、前記業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、前記業務スマートコントラクトに対応する業務要求イベントとが含まれるステップと、
前記業務要求イベントに基づいてデータ取得アドレスを決定するステップと、
前記データ取得アドレスをアクセスし、前記業務要求イベントに対応するイベント要求結果を取得し、前記イベント要求結果を前記オラクルコントラクトノードに送信することで、前記オラクルコントラクトノードに、前記イベント要求結果を前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックさせるステップと、
を含む。
【0007】
本願の実施例の一態様は、ブロックチェーンメッセージ処理装置を提供し、この装置は、
業務コントラクト情報を取得し、前記業務コントラクト情報をオラクルコントラクトに追加する業務取得モジュールであって、前記業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、前記業務スマートコントラクトに対応する業務要求イベントとが含まれる業務取得モジュールと、
ターゲットオフチェーンノードを取得し、前記オラクルコントラクトを介して前記業務コントラクト情報を前記ターゲットオフチェーンノードに送信することで、前記業務要求イベントに対応するイベント要求結果を前記ターゲットオフチェーンノードに取得させるノード取得モジュールと、
前記ターゲットオフチェーンノードによって送信された前記イベント要求結果を取得し、前記イベント要求結果を、前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックする結果取得モジュールと、
を含む。
【0008】
本願の実施例の一態様は、ブロックチェーンメッセージ処理装置を提供し、この装置は、
オラクルコントラクトノードがオラクルコントラクトを介して送信した業務コントラクト情報を取得する業務取得モジュールであって、前記業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、前記業務スマートコントラクトに対応する業務要求イベントとが含まれる業務取得モジュールと、
前記業務要求イベントに基づいてデータ取得アドレスを決定するアドレス決定モジュールと、
前記データ取得アドレスをアクセスし、前記業務要求イベントに対応するイベント要求結果を取得し、前記イベント要求結果を前記オラクルコントラクトノードに送信することで、前記オラクルコントラクトノードに、前記イベント要求結果を前記コントラクト識別子に対応する前記業務スマートコントラクトにフィードバックさせる結果取得モジュールと、
を含む。
【0009】
コンピュータ読み取り可能な命令が記憶されているメモリと、1つまたは複数のプロセッサとを含むコンピュータデバイスであって、
前記コンピュータ読み取り可能な命令が、前記1つまたは複数のプロセッサによって実行されるとき、上記のブロックチェーンメッセージ処理方法のステップを、前記1つまたは複数のプロセッサに実行させる。
【0010】
コンピュータ読み取り可能な命令が記憶されている1つまたは複数の不揮発性コンピュータ読み取り可能な記憶媒体であって、
コンピュータ読み取り可能な命令が記憶されており、前記コンピュータ読み取り可能な命令が、1つまたは複数のプロセッサによって実行されるとき、上記のブロックチェーンメッセージ処理方法のステップを、前記1つまたは複数のプロセッサに実行させる。
【0011】
コンピュータ読み取り可能な命令を含むコンピュータプログラム製品またはコンピュータプログラムであって、コンピュータ読み取り可能な命令は、コンピュータ読み取り可能な記憶媒体に記憶され、コンピュータデバイスのプロセッサは、コンピュータ読み取り可能な記憶媒体から、前記コンピュータ読み取り可能な命令を読み出し、プロセッサは、コンピュータ読み取り可能な命令を実行することで、上記のブロックチェーンメッセージ処理方法のステップをコンピュータデバイスに実行させる。
【図面の簡単な説明】
【0012】
本願の実施例または既存技術における技術的解決策をより明確に説明するために、以下、実施例または既存技術の説明において必要とされる図面を簡単に説明し、明らかに、以下の説明における図面は、本願のいくつかの実施例にすぎず、当業者にとって、創造的な努力なしに、これらの図面から他の図面を得ることもできる。
図1】本願の実施例によって提供されるブロックチェーンメッセージ処理のネットワーク模式図である。
図2】本願の実施例によって提供されるブロックチェーンメッセージ処理のシーン模式図である。
図3】本願の実施例によって提供されるブロックチェーンメッセージ処理方法のフローチャートである。
図4】本願の実施例によって提供される業務コントラクト情報処理のシーン模式図である。
図5】本願の実施例によって提供される別のブロックチェーンメッセージ処理のフロー模式図である。
図6】本願の実施例によって提供されるブロックチェーンメッセージ処理のインタラクションフローチャートである。
図7】本願の実施例によって提供される業務コントラクト情報の記憶シーン模式図である。
図8】本願の実施例によって提供されるオラクルの構造模式図である。
図9】本願の実施例によって提供されるブロックチェーンメッセージ処理装置の模式図である。
図10】本願の実施例によって提供される別のブロックチェーンメッセージ処理装置の模式図である。
図11】本願の実施例によって提供されるコンピュータデバイスの構成模式図である。
【発明を実施するための形態】
【0013】
以下では、本願の実施例における図面を参照しながら、本願の実施例における技術的解決策を明確かつ完全に説明し、明らかに、記載された実施例は、全ての実施例ではなく、本願の一部の実施例にすぎない。本願の実施例に基づいて、当業者が創造的な労働をしない前提で取得される他のすべての実施例は、本願の保護の範囲に属するべきである。
【0014】
ここで、本願の実施例は、ビッグデータにおけるデータ伝送技術を適用することがき、当該データ伝送技術は、クラウド技術分野に属するものである。
【0015】
ここで、クラウド技術(Cloud technology)とは、ワイドエリアネットワークまたはローカルエリアネットワークにおいて、ハードウェア、ソフトウェア、ネットワークなどの一連のリソースを統合して、データの計算、記憶、処理および共有を実現するホスティング技術を指す。
【0016】
クラウド技術(Cloud technology)は、クラウドコンピューティングビジネスモデルに基づいて応用されるネットワーク技術、情報技術、統合技術、管理プラットフォーム技術、応用技術などの総称であり、リソースプールを構成することができ、必要に応じて使用され得ており、柔軟で便利である。クラウドコンピューティング技術は、重要なサポートになる。技術ネットワークシステムのバックグラウンドサービスには、ビデオサイト、ピクチャ類サイト、およびより多くのポータルサイトなど、大量のコンピューティング、ストレージリソースが必要とされている。インターネット産業の高度な発展および応用に伴い、将来的には、各アイテムに独自の識別マークが存在する可能性があり、いずれも、バックグラウンドシステムに伝送して論理的な処理を行う必要があり、異なるレベルのデータは、別々に処理されるようになり、あらゆる種類の産業データは、いずれも、強力なシステムのバッキングサポートを必要とし、これは、クラウドコンピューティングによってしか実現され得ない。
【0017】
このうち、ビッグデータ(BD:Big data)とは、一定期間の範囲内で、通常のソフトウェアツールで捕捉、管理や処理を行うことができないデータの集合であり、より強力な意思決定力、洞察・発見力およびプロセス最適化能力を有するために新たな処理モードを必要とする、大量、高成長率および多様化の情報資産である。クラウド時代の到来に伴い、ビッグデータもますます多くの注目を集めており、ビッグデータは、許容経過時間内の大量のデータを効率的に処理するために特殊な技術を必要としている。ビッグデータに適した技術には、大規模並列処理データベース、データマイニング、分散型ファイルシステム、分散型データベース、クラウドコンピューティングプラットフォーム、インターネット、および拡張可能なストレージシステムなどが含まれる。本願では、処理される必要がある大量のスマートコントラクトのデータが存在する場合、ビッグデータにおけるデータ伝送技術に基づいて、オラクルコントラクトノードとオフチェーンノードとの間のデータインタラクションが実現され得る。
【0018】
図1を参照すると、図1は、本願の実施例によって提供されるブロックチェーンメッセージ処理のネットワーク模式図であり、図1に示すように、オラクルには、オラクルコントラクトノードと、オフチェーンノードとが含まれ、ここで、オラクルコントラクトノードは、ブロックチェーンからスマートコントラクトのデータを取得して、オフチェーンノードから取得したデータをスマートコントラクトにフィードバックするために使用される。ここで、当該オフチェーンノードは、オラクルコントラクトノードにおけるオラクルコントラクトを呼び出すことにより、業務コントラクト情報を取得して、当該業務コントラクト情報における業務要求イベントを実行することにより、当該業務要求イベントのイベント要求結果を得て、オラクルコントラクトノードに当該イベント要求結果をフィードバックし、当該オラクルコントラクトノードは、イベント要求結果をスマートコントラクトにフィードバックする。
【0019】
一例として、図1に示すように、当該ブロックチェーン101には、少なくとも1つの業務スマートコントラクトが含まれ、業務スマートコントラクト1011、業務スマートコントラクト1012および業務スマートコントラクト1013などが含まれ、各業務スマートコントラクトに対応する業務コントラクト情報は、オラクルコントラクト1014が少なくとも1つの業務スマートコントラクトを管理するように、オラクルコントラクト1014に追加され、ここで、当該オラクルコントラクト1014が、オラクルコントラクトノードに記憶されている。当該オラクルコントラクト1014には、1つの業務コントラクト情報集合が維持されており、当該業務コントラクト情報集合には、少なくとも1つの業務コントラクト情報が含まれ、当該業務コントラクト情報集合は、グラフやマッピング関係テキストなどのフォーマットで記憶されてもよく、例えば、以下の表1を参照することができる。
【0020】
【表1】
ここで、表1に示すように、当該業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれ、当該業務要求イベントには、業務処理時間または業務要求オブジェクトなどが含まれ得ており、取引ハッシュは、対応する業務処理イベントのハッシュ値である。ここで、当該業務要求オブジェクトは、対応する業務スマートコントラクトがトリガーされた後に要求するデータオブジェクトを特徴付けるために使用され、例えば、当該業務要求オブジェクトは、「AチームとBチームの試合スコア」とすることができる。
【0021】
具体的には、当該オラクルコントラクトノードは、オラクルコントラクト1014によって各業務スマートコントラクト(業務スマートコントラクト1011、業務スマートコントラクト1012および業務スマートコントラクト1013などを含む)に対応する業務コントラクト情報を管理し、ここで、1つの業務スマートコントラクトは、1つまたは少なくとも2つの業務コントラクト情報に対応することができる。ここで、業務スマートコントラクト1011を例にして、オラクルコントラクトノードは、業務スマートコントラクト1011に対応する業務コントラクト情報をターゲットオフチェーンノード102に送信し、ターゲットオフチェーンノード102は、業務コントラクト情報における業務要求イベントに基づいて、イベント要求結果を取得し、当該イベント要求結果をオラクルコントラクトノードに送信する。オラクルコントラクトノードは、取得したイベント要求結果を、コントラクト識別子に対応する業務スマートコントラクト1011にフィードバックする。
【0022】
ここで、当該オラクルコントラクトノードとターゲットオフチェーンノード102は、オラクルを構成し、当該オラクルコントラクトノードおよび各業務スマートコントラクトは、ブロックチェーン101においてデプロイ(展開)されている。
【0023】
具体的には、図2を参照すると、図2は、本願の実施例によって提供されるブロックチェーンメッセージ処理のシーン模式図である。図2に示すように、業務スマートコントラクト201に対応する業務コントラクト情報2031は、オラクルコントラクトノードにプッシュされ、当該オラクルコントラクトノードは、業務コントラクト情報2031をオラクルコントラクト202に追加し、これにより、オラクルコントラクト202は、取得した各業務コントラクト情報を管理し、オプションとして、当該オラクルコントラクト202には、業務コントラクト情報集合203が含まれており、オラクルコントラクトノードは、業務コントラクト情報2031を業務コントラクト情報集合203に追加する。ここで、当該業務コントラクト情報2031には、業務スマートコントラクト201のコントラクト識別子と、当該業務スマートコントラクト201に対応する業務要求イベントとが含まれる。オラクルコントラクトノードは、業務コントラクト情報2031をターゲットオフチェーンノード204に送信し、当該ターゲットオフチェーンノード204は、当該業務コントラクト情報2031を取得した後、当該業務コントラクト情報2031における業務処理時間を取得し、ここで、当該業務処理時間は、業務処理イベントに属するものである。ターゲットオフチェーンノード204は、当該業務処理時間に基づいて、当該業務コントラクト情報のために業務タイマー205を作成する。
【0024】
当該業務タイマー205の値が業務処理時間に達した場合、業務処理イベントに対応するデータ取得アドレス206を取得し、データ取得アドレス206にアクセスして、当該業務処理イベントに対応するイベント要求結果207を取得し、当該イベント要求結果207をオラクルコントラクトノード202にフィードバックする。当該オラクルコントラクトノード202は、当該イベント要求結果207に対応するコントラクト識別子を取得し、当該イベント要求結果207を、コントラクト識別子に対応する業務スマートコントラクト301に送信し、これにより、当該業務スマートコントラクト301に基づいて、当該イベント要求結果207をイベント結果ブロックとしてパッケージングし、当該イベント結果ブロックに対してコンセンサスを取った後、ブロックチェーンに追加する。
【0025】
本願の実施例は、オラクルコントラクトノードによってオラクルコントラクトを管理し、これにより、オラクルコントラクトに基づいて、ブロックチェーンにおける業務スマートコントラクトと、ブロックチェーン外のターゲットオフチェーンノードとの間のデータインタラクションが実現され、オフチェーンノードは、取得した業務コントラクト情報に基づいて、イベント要求結果をリアルタイムで取得して、当該イベント要求結果をオラクルコントラクトノードにフィードバックすることができるため、オラクルコントラクトノードは、イベント要求結果をスマートコントラクトにタイムリーにフィードバックすることができ、これによって、業務スマートコントラクトによるデータ取得のリアルタイム性を向上させ、さらに、ブロックチェーンメッセージ処理の効率を向上させる。
【0026】
本願の実施例は、業務コントラクト情報を取得し、業務コントラクト情報をオラクルコントラクトに追加することであって、上記の業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれることと、ターゲットオフチェーンノードを取得し、オラクルコントラクトを介して業務コントラクト情報をターゲットオフチェーンノードに送信することで、業務要求イベントに対応するイベント要求結果をターゲットオフチェーンノードに取得させることと、ターゲットオフチェーンノードによって送信されたイベント要求結果を取得し、イベント要求結果を、上記のコントラクト識別子に対応する業務スマートコントラクトにフィードバックすることと、を行う。本願の実施例は、オラクルコントラクトノードにおいてオラクルコントラクトを記録し、当該オラクルコントラクトノードには、オフチェーンからデータを取得する必要のあるスマートコントラクトのコンテンツ、即ち、当該スマートコントラクトに対応する業務コントラクト情報が記憶され、これにより、オラクルコントラクトノードは、オフチェーンノードとの間でデータインタラクションを実行し、オフチェーンノードは、取得した業務コントラクト情報に基づいて、イベント要求結果を取得するステップをリアルタイムでトリガーして、取得したイベント要求結果をオラクルコントラクトノードにフィードバックすることができ、オフチェーンノードによるイベント要求結果の取得および送信が自動的に実行されるため、オフチェーンノードは、当該業務コントラクト情報に対応するイベント要求結果をタイムリーに取得することができ、さらに、オラクルコントラクトノードは、オフチェーンノードからデータをタイムリーに取得し、取得したデータを、対応するスマートコントラクトにフィードバックすることもでき、これにより、ブロックチェーンにおけるオンチェーン(on chain)とオフチェーン(off chain)でのデータインタラクションのリアルタイム性を向上させ、ブロックチェーンメッセージ処理の効率を向上させる。
【0027】
ここで、上記のオラクルコントラクトノードは、サーバまたは端末デバイスであってもよく、サーバと端末デバイスによって構成されるシステムであってもよいし、ここで、以上に係る端末デバイスは、電子デバイスであってもよく、携帯電話、タブレットコンピュータ、デスクトップコンピュータ、ノードコンピュータ、ハンドヘルドコンピュータ、モバイルインターネットデバイス(MID:mobile internet device)、ウェアラブルデバイス(例えば、スマートウォッチ、スマートリストバンドなど)などを含むが、これらに限定されない。サーバは、独立した物理サーバであってもよく、複数の物理サーバによって構成されるサーバクラスタまたは分散型システムであってもよいし、クラウドコンピューティングサービスを提供するクラウドサーバであってもよい。端末デバイスおよびサーバは、有線または無線通信の形式で直接または間接的に接続されてもよく、本願は、ここで限定しない。
【0028】
ターゲットオフチェーンノードは、コンピュータデバイスであり、コンピュータデバイスは、サーバまたは端末デバイスであってもよい。
【0029】
さらに、図3を参照すると、図3は、本願の実施例によって提供されるブロックチェーンメッセージ処理方法のフローチャートである。図3に示すように、上記のオラクルコントラクトノードを実行本体として説明し、当該オラクルコントラクトノードには、オラクルコントラクトが記憶されており、当該ブロックチェーンメッセージ処理プロセスは、ステップS301~ステップS303を含む。
【0030】
ステップS301で、業務コントラクト情報を取得し、業務コントラクト情報をオラクルコントラクトに追加する。
【0031】
具体的には、オラクルコントラクトノードは、業務スマートコントラクトに対応する業務コントラクト情報を取得し、当該業務コントラクト情報をオラクルコントラクトに追加する。ここで、当該業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、当該業務スマートコントラクトに対応する業務要求イベントとが含まれ、ここで、当該業務要求イベントには、業務処理時間または業務要求オブジェクトなどが含まれ得ており、各業務要求イベントは、業務スマートコントラクトにおける1つの引取データに対応することができる。オプションとして、1つの業務スマートコントラクトにおいて複数の引取データが存在する場合があるため、オラクルコントラクトノードは、業務スマートコントラクトから複数の業務コントラクト情報を取得し、取得した複数の業務コントラクト情報をオラクルコントラクトに追加する場合がある。ここで、本願の実施例は、1つの業務スマートコントラクトには1つの引取データが含まれることを例について説明される。
【0032】
ここで、オラクルコントラクトノードは、ブロックチェーンにおけるブロックがチェーンに追加される情況を監視し、コントラクトブロックのブロックがチェーンに追加されたメッセージを取得し、ブロックがチェーンに追加された当該メッセージには、業務スマートコントラクトが含まれる。ここで、当該コントラクトブロックとは、業務スマートコントラクトをブロックチェーンに追加するために使用される引取ブロックを指す。言い換えれば、コントラクトブロックがブロックチェーンに追加された場合、メッセージ伝送プロセスがトリガーされ、コントラクトブロックのブロックがチェーンに追加された当該メッセージがオラクルコントラクトノードに送信され、オラクルコントラクトノードは、ブロックがチェーンに追加された当該メッセージを受信した後、ブロックがチェーンに追加された当該メッセージにおける業務スマートコントラクトを取得する。オラクルコントラクトノードは、当該業務スマートコントラクトのコントラクト識別子を取得し、当該業務スマートコントラクトを解析して、業務要求イベントを得、ここで、当該業務要求イベントが、当該業務スマートコントラクトがトリガーされた後に要求するデータオブジェクトなどを特徴付けるために使用される。コントラクト識別子および業務要求イベントに基づいて、業務コントラクト情報が生成される。
【0033】
具体的には、図4を参照すると、図4は、本願の実施例によって提供される業務コントラクト情報処理のシーン模式図である。図4に示すように、業務コントラクトノードは、業務スマートコントラクト401に基づいてコントラクトブロック402を生成し、コンセンサスノードが当該コントラクトブロック402に対してコンセンサスを行うように、当該コントラクトブロック402をコンセンサスノードにブロードキャストし、当該コントラクトブロック402に対するコンセンサスが達成された場合、当該コントラクトブロック402をブロックチェーン403に追加する。オラクルコントラクトノード404は、業務スマートコントラクト40に対応するコントラクトブロック40がチェーンに追加された動作を監視した場合、コントラクトブロックのブロックがチェーンに追加された当該メッセージを取得し、当該業務スマートコントラクト40のコントラクト識別子を取得して、当該業務スマートコントラクト40を解析し、業務要求イベントを得る。ここで、オラクルコントラクトノード404は、当該業務スマートコントラクト40の引取データを取得し、業務要求イベントに対応する業務要求パラメータに基づいて、当該引取データから業務要求イベントを得ることができる。オラクルコントラクトノード404は、コントラクト識別子および業務要求イベントに基づいて、業務コントラクト情報を生成し、当該業務コントラクト情報をオラクルコントラクト405に追加する。ここで、当該オラクルコントラクト405には、0個または少なくとも1個の業務コントラクト情報が含まれており、さらに、当該オラクルコントラクト405に含まれる業務コントラクト情報は、業務コントラクト情報集合と総称されてもよく、オプションとして、当該業務コントラクト情報集合は、上記の表1に示すフォーマットのような、グラフやマッピング関係テキストなどのフォーマットでオラクルコントラクト405に記憶されてもよい。
【0034】
ステップS302で、ターゲットオフチェーンノードを取得し、オラクルコントラクトを介して業務コントラクト情報をターゲットオフチェーンノードに送信する。
【0035】
具体的には、オラクルコントラクトノードは、ターゲットオフチェーンノードを取得し、オラクルコントラクトを介して業務コントラクト情報をターゲットオフチェーンノードに送信し、これにより、ターゲットオフチェーンノードは、当該業務コントラクト情報に基づいて、業務要求イベントに対応するイベント要求結果を取得することができる。
【0036】
オプションとして、ターゲットオフチェーンノードを取得する場合、オラクルには、複数のオフチェーンノードが含まれてもよく、オラクルコントラクトノードは、複数のオフチェーンノードから、アイドル状態にあるオフチェーンノードを候補オフチェーンノードとして取得し、候補オフチェーンノードのネットワーク品質パラメータを取得し、ネットワーク品質パラメータが最も高い候補オフチェーンノードをターゲットオフチェーンノードとして決定する。ここで、ネットワーク品質パラメータは、ネットワーク帯域幅、ネットワーク遅延、ネットワークスループット、またはネットワーク伝送速度などを含むが、これらに限定されなく、ここで、ネットワーク品質パラメータは、1つのパラメータまたは複数のパラメータによって構成されてもよく、例えば、ネットワーク品質パラメータがネットワーク帯域幅である場合、複数のオフチェーンノードから、ネットワーク帯域幅が最も大きいオフチェーンノードを、ターゲットオフチェーンノードとして取得する。
【0037】
オプションとして、ターゲットオフチェーンノードを取得する場合、オラクルコントラクトノードは、業務要求イベントが属するターゲット業務タイプを取得し、当該ターゲット業務タイプに対応するオフチェーンノードを、ターゲットオフチェーンノードとして取得することができる。
【0038】
ステップS303で、ターゲットオフチェーンノードによって送信されたイベント要求結果を取得し、イベント要求結果を業務スマートコントラクトにフィードバックする。
【0039】
具体的には、オラクルコントラクトノードは、ターゲットオフチェーンノードによって送信されたイベント要求結果を取得し、オラクルコントラクトに基づいて、当該イベント要求結果を業務スマートコントラクトにフィードバックする。オプションとして、オラクルコントラクトノードは、ターゲットオフチェーンノードによって送信されたイベント要求結果を取得し、当該イベント要求結果に対応する業務要求イベントのプロトコルデータフォーマットを取得し、イベント要求結果のデータフォーマットをプロトコルデータフォーマットに変換して、変換された実行結果を得て、ここで、当該プロトコルデータフォーマットとは、ブロックチェーンにおける各ネットワークノードが識別できるデータフォーマットを指し、当該プロトコルデータフォーマットは、オラクルコントラクトノードと業務コントラクトノードとの交渉によって得られたものであり得る。オプションとして、業務スマートコントラクトには、当該プロトコルデータフォーマットが含まれてもよく、オラクルコントラクトノードは、イベント要求結果を取得した後、当該イベント要求結果に対応する業務スマートコントラクトを取得し、当該業務スマートコントラクトから当該プロトコルデータフォーマットを取得するか、または、オラクルコントラクトノードは、業務コントラクト情報を取得する際に、当該プロトコルデータフォーマットを同時に取得してもよく、当該プロトコルデータフォーマットの取得方式について、ここでは詳しく説明しない。
【0040】
オプションとして、オラクルコントラクトノードは、イベント要求結果を取得した後、当該イベント要求結果に基づいて、結果フィードバックブロックを生成し、当該結果フィードバックブロックをコンセンサスノードにブロードキャストして、コンセンサスが実行され、当該結果フィードバックブロックに対するコンセンサスが達成された後、当該イベント要求結果のデータフォーマットを変換し、変換された実行結果を得て、変換された実行結果を業務スマートコントラクトにフィードバックする。あるいは、オラクルコントラクトノードは、当該イベント要求結果のデータフォーマットを変換し、変換された実行結果を得て、当該変換された実行結果に基づいて、結果フィードバックブロックを生成し、当該結果フィードバックブロックをコンセンサスノードにブロードキャストして、コンセンサスが実行され、当該結果フィードバックブロックに対するコンセンサスが達成された後、イベント要求結果を業務スマートコントラクトにフィードバックしてもよい。
【0041】
本願の実施例は、上記のブロックチェーンメッセージ処理プロセスにより、業務コントラクト情報を取得し、業務コントラクト情報をオラクルコントラクトに追加することであって、上記の業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれることと、ターゲットオフチェーンノードを取得し、オラクルコントラクトを介して業務コントラクト情報をターゲットオフチェーンノードに送信することで、業務要求イベントに対応するイベント要求結果をターゲットオフチェーンノードに取得させることと、ターゲットオフチェーンノードによって送信されたイベント要求結果を取得し、イベント要求結果を、上記のコントラクト識別子に対応する業務スマートコントラクトにフィードバックすることと、を実現する。本願を採用すると、オラクルコントラクトノードによって、ブロックチェーンにおけるネットワークノードとブロックチェーン外のオフチェーンノードとが接続され、オラクルコントラクトノードによって、ブロックチェーンにおける業務スマートコントラクトへのデータ管理が実現され、オフチェーンノードとのデータインタラクションが実現され、オフチェーンノードは、業務コントラクト情報に対応するイベント要求結果の取得プロセスを自動的にトリガーして、当該イベント要求結果をオラクルコントラクトノードに送信することができるため、これにより、ブロックチェーンにおけるオンチェーンとオフチェーンでのデータインタラクションのリアルタイム性を向上させ、さらに、ブロックチェーンメッセージ処理の効率を向上させる。
【0042】
さらに、図5を参照すると、図5は、本願の実施例によって提供される別のブロックチェーンメッセージ処理のフロー模式図である。図5に示すように、ターゲットオフチェーンノードを実行本体とすると、当該ブロックチェーンメッセージ処理方法のステップは、以下の通りであり、即ち、
ステップS501で、オラクルコントラクトノードがオラクルコントラクトを介して送信した業務コントラクト情報を取得する。
【0043】
具体的には、ターゲットオフチェーンノードは、オラクルコントラクトノードがオラクルコントラクトを介して送信した業務コントラクト情報を取得し、当該業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれる。当該ターゲットオフチェーンノードは、業務要求イベントに基づいて、対応する業務スマートコントラクトに必要なデータを取得することができ、当該データは、イベント要求結果として記されてもよい。
【0044】
ステップS502で、業務コントラクト情報における業務要求イベントに基づいて、データ取得アドレスを決定する。
【0045】
具体的には、ターゲットオフチェーンノードは、業務要求イベントに基づいて、データ取得アドレスを決定する。ここで、当該業務要求イベントには、業務要求オブジェクトが含まれてもよく、当該業務要求オブジェクトは、業務スマートコントラクトがトリガーされた後に要求するデータオブジェクトを特徴付けるために使用され、ターゲットオフチェーンノードは、当該業務要求オブジェクトに基づいて、データ取得アドレスを決定することができる。
【0046】
ステップS503で、当該データ取得アドレスをアクセスし、業務要求イベントに対応するイベント要求結果を取得し、イベント要求結果をオラクルコントラクトノードに送信する。
【0047】
具体的には、ターゲットオフチェーンノードは、データ取得アドレスをアクセスし、当該データ取得アドレスに対応するコンテンツデータを取得し、当該コンテンツデータから、上記の業務要求イベントに関連付けられているデータを、当該業務要求イベントに対応するイベント要求結果して取得する。当該イベント要求結果をオラクルコントラクトノードに送信し、これにより、オラクルコントラクトノードは、当該イベント要求結果を、コントラクト識別子に対応する業務スマートコントラクトにフィードバックすることができる。
【0048】
本願の実施例は、ターゲットオフチェーンノードが、オラクルコントラクトノードによって送信された業務コントラクト情報に基づいて、当該業務コントラクト情報における業務要求イベントを取得して、当該業務要求イベントに基づいてインターネットからイベント要求結果を取得し、当該イベント要求結果をオラクルコントラクトノードに送信し、これにより、オラクルコントラクトノードが、当該イベント要求結果を対応する業務スマートコントラクトにフィードバックすることができる。本願の実施例では、ターゲットオフチェーンノードによってブロックチェーン外からデータが取得され、ブロックチェーンにおける業務スマートコントラクトと、ブロックチェーン外のオフチェーンノードとがオラクルコントラクトノードによって接続され、これにより、両方の間のデータインタラクションが実現され、これによって、ブロックチェーンのオンチェーンとオフチェーンでのデータインタラクションがより便利で迅速になり、オフチェーンノードが業務コントラクト情報によってイベント要求結果の取得プロセスを自動的にトリガーすることも相まって、オフチェーンノードは、イベント要求結果をリアルタイムで取得してオラクルコントラクトノードにタイムリーにフィードバックすることができ、さらに、ブロックチェーンにおけるオンチェーンとオフチェーンでのデータインタラクションのリアルタイム性を向上させ、ブロックチェーンメッセージ処理の効率を向上させる。
【0049】
さらに、図6を参照すると、図6は、本願の実施例によって提供されるブロックチェーンメッセージ処理のインタラクションフローチャートである。図6に示すように、当該ブロックチェーンメッセージ処理のインタラクションプロセスは、ステップS601~ステップS609を含む。
【0050】
ステップS601で、業務コントラクトノードは、業務スマートコントラクトをチェーンに追加(チェーン上に記録)する。
【0051】
具体的には、業務コントラクトノードは、業務スマートコントラクトに基づいて、コントラクトブロックを生成し、当該コントラクトブロックを、ブロックチェーンにおける各コンセンサスノードにブロードキャストしてコンセンサスを行い、当該コントラクトブロックに対するコンセンサスが達成された場合、当該コントラクトブロックをブロックチェーンに追加し、ステップS602をトリガーする。
【0052】
ステップS602で、業務コントラクトノードは、オラクルコントラクトノードに、業務スマートコントラクトのブロックがチェーンに追加されたメッセージを送信する。
【0053】
具体的には、業務コントラクトノードは、オラクルコントラクトノードに業務スマートコントラクトのブロックがチェーンに追加されたメッセージを送信する。オプションとして、オラクルコントラクトノードは、コントラクトブロックがチェーンに追加される情況を監視し、コントラクトブロックがチェーンに追加されたことを監視した場合、ブロックがチェーンに追加されたメッセージを取得することができる。
【0054】
ステップS603で、オラクルコントラクトノードは、業務コントラクト情報を取得する。
【0055】
具体的には、オラクルコントラクトノードは、業務コントラクト情報を取得し、当該業務コントラクト情報をオラクルコントラクトに追加し、当該プロセスについては、図3のステップS301に示す具体的な説明を参照することができる。ここで、当該業務要求イベントには、業務要求オブジェクトまたは業務処理時間などが含まれてもよい。さらに、オラクルコントラクトノードは、業務要求イベントのハッシュ値を取引ハッシュとして生成し、コントラクト識別子、取引ハッシュおよび業務要求イベントに基づいて、業務コントラクト情報を生成することができる。オプションとして、上記の業務スマートコントラクトには、複数の引取データが含まれてもよく、オラクルコントラクトノードは、当該業務スマートコントラクトにおけるデータを取得し、複数の引取データを得て、引取データに基づいて業務コントラクト情報を取得し、例えば、当該業務スマートコントラクトには、N個の引取データが含まれている場合、オラクルコントラクトノードは、当該業務スマートコントラクトに基づいて、N個の業務コントラクト情報を取得し、引取データは、業務コントラクト情報と1対1で対応し、ここで、Nは、正の整数である。
【0056】
オプションとして、当該オラクルコントラクトは、業務マッピングテーブルを含み、当該業務マッピングテーブルには、業務タイプと、業務タイプに対応する業務データ集合とが含まれる。オラクルコントラクトノードは、業務コントラクト情報を取得した後、当該業務コントラクト情報における業務要求イベントが属するターゲット業務タイプを取得し、オラクルコントラクトから、ターゲット業務タイプに対応するターゲット業務データ集合を取得し、当該業務コントラクト情報をターゲット業務データ集合に追加する。
【0057】
一例として、図7を参照すると、図7は、本願の実施例によって提供される業務コントラクト情報の記憶シーン模式図である。図7に示すように、オラクルコントラクトノード702は、当該コントラクトブロック701における引取データを取得し、この引取データには、引取データ1、引取データ2および引取データ3が含まれる。引取データ1に基づいて業務コントラクト情報1を生成し、引取データ2に基づいて業務コントラクト情報2を生成し、引取データ3に基づいて業務コントラクト情報3を生成する。オラクルコントラクトノード702によって取得された、当該業務コントラクト情報1における業務要求イベントに対応する業務タイプは、業務タイプ1であり、当該業務コントラクト情報2における業務要求イベントに対応する業務タイプは、業務タイプ2であり、当該業務コントラクト情報3における業務要求イベントに対応する業務タイプは、業務タイプ1である。オラクルコントラクトノード702は、各業務コントラクト情報をオラクルコントラクト703に追加し、具体的には、業務コントラクト情報1および業務コントラクト情報3を、業務タイプ1に対応する業務データ集合704に追加し、業務コントラクト情報2を、業務タイプ2に対応する業務データ集合705に追加する。
【0058】
ステップS604で、オラクルコントラクトノードは、ターゲットオフチェーンノードを取得する。
【0059】
具体的には、オラクルコントラクトノードは、ターゲットオフチェーンノードを取得し、オプションとして、複数のオフチェーンノードが存在している場合、複数のオフチェーンノードからターゲットオフチェーンノードを取得し、具体的には、上記の図3におけるステップS302に示す具体的な説明を参照することができる。さらに、オラクルコントラクトが業務マッピングテーブルを含む場合、即ち、業務タイプおよび当該業務タイプに対応する業務データ集合が存在する場合、オラクルコントラクトノードは、業務コントラクト情報をターゲット業務データ集合に追加し、当該ターゲット業務データ集合に対応するオフチェーンノードを、ターゲットオフチェーンノードとして取得する。ここで、当該オラクルコントラクトにおける業務マッピングテーブルに含まれる各業務コントラクト情報は、業務コントラクト情報集合と総称されてもよく、当該業務マッピングテーブルにおける各業務タイプに対応する各業務コントラクト情報は、当該業務タイプに対応する業務データ集合と総称されてもよい。ここで、当該業務コントラクト情報集合および業務データ集合は、異なる状況にある業務コントラクト情報を説明するための名称と考えられ、エンティティを表さなくてもよい。
【0060】
ここで、図7を例として、オラクルコントラクトノード702は、業務データ集合704に対応するターゲットオフチェーンノード706を取得し、業務データ集合705に対応するターゲットオフチェーンノード706を取得することができる。
【0061】
ここで、当該業務マッピングテーブルは、以下の表2に示されるようにしてもよい。
【0062】
【表2】
ここで、上記の表2における各業務タイプに対応する業務データ集合は、1つまたは複数の業務コントラクト情報によって構成されるか、または、当該業務データ集合は、空であってもよい。
【0063】
ステップS605で、オラクルコントラクトノードは、業務コントラクト情報をターゲットオフチェーンノードに送信する。
【0064】
具体的には、オラクルコントラクトノードは、業務コントラクト情報をターゲットオフチェーンノードに送信し、具体的には、図3におけるステップS302に示す具体的な説明を参照することができる。オプションとして、当該業務コントラクト情報が、業務要求イベントに対応する取引ハッシュを含むと、オラクルコントラクトノードは、オラクルコントラクトを介して、当該取引ハッシュおよび業務要求イベントをターゲットオフチェーンノードに直接に送信することができる。図7に示すように、オラクルコントラクトノード702は、オラクルコントラクト703を介して、業務コントラクト情報1および業務コントラクト情報3を、ターゲットオフチェーンノード706に送信し、業務コントラクト情報2を、ターゲットオフチェーンノード707に送信する。
【0065】
オプションとして、オラクルコントラクトノードは、当該業務コントラクト情報に基づいて業務コントラクトブロックを生成し、当該業務コントラクトブロックを各コンセンサスノードにブロードキャストしてコンセンサスを行うことができる。コンセンサスが達成された場合、当該業務コントラクト情報をターゲットオフチェーンノードに送信し、コンセンサスが達成されない場合、業務スマートコントラクトに基づいて業務コントラクト情報を再び生成して、業務コントラクト情報に対してコンセンサスを行い、コンセンサスが達成されると、当該業務コントラクト情報をターゲットオフチェーンノードに送信する。オプションとして、オラクルコントラクトノードへのコンセンサスの失敗回数がコンセンサス異常閾値以上であると、オラクルにおけるオラクルコントラクトノードを改めて作成することができる。
【0066】
ステップS606で、ターゲットオフチェーンノードは、業務コントラクト情報を検証する。
【0067】
具体的には、当該業務コントラクト情報には取引ハッシュが含まれる場合、ターゲットオフチェーンノードは、当該業務要求イベントの検証ハッシュを生成し、当該検証ハッシュと取引ハッシュとを比較する。取引ハッシュが検証ハッシュと同じである場合、ステップS607をトリガーし、取引ハッシュが検証ハッシュと異なる場合、オラクルコントラクトノードに業務データ異常メッセージを送信する。オプションとして、ターゲットオフチェーンノードは、当該業務コントラクト情報における業務要求イベントを取得し、当該業務要求イベントの異常状況を検出してもよく、具体的には、当該業務要求イベントの業務処理時間および業務要求オブジェクトの異常状況を検出することができ、例えば、業務処理時間では業務要求オブジェクトに関連付けられているデータを取得できるかどうかなどを検出する。当該業務要求イベントが異常であると、オラクルコントラクトノードに業務データ異常メッセージを送信し、当該業務要求イベントが正常であると、ステップS607をトリガーする。例えば、当該業務処理時間が、2020年6月2日15時であり、当該業務要求オブジェクトが、第1試合における第1試合参加者と第2試合参加者との試合の結果である場合、ターゲットオフチェーンノードは、2020年6月2日15時に、第1試合において第1試合参加者と第2試合参加者との試合が存在しているかどうかを検出し、存在している場合、当該業務要求イベントが正常であると決定し、存在していない場合、当該業務要求イベントが異常であると決定する。
【0068】
ステップS607で、ターゲットオフチェーンノードは、業務コントラクト情報に基づいて、イベント要求結果を取得する。
【0069】
具体的には、当該業務コントラクト情報には、リアルタイムで処理される業務コントラクト情報と、遅延で処理される業務コントラクト情報とが含まれ、ここで、遅延で処理されるこの業務コントラクト情報には、業務処理時間が含まれる。ここで、当該業務コントラクト情報が、リアルタイムで処理される業務コントラクト情報である場合、ターゲットオフチェーンノードは、業務コントラクト情報における業務要求イベントに基づいて、データ取得アドレスを決定し、具体的には、当該業務要求イベントにおける業務要求オブジェクトに基づいて、データ取得アドレスを決定し、当該データ取得アドレスをアクセスする。
【0070】
当該業務コントラクト情報が、遅延で処理される業務コントラクト情報である場合、ターゲットオフチェーンノードは、業務処理時間に基づいて、当該業務コントラクト情報に対応する業務タイマーを作成し、当該業務タイマーの値が業務処理時間と同じである場合、ターゲットオフチェーンノードは、業務コントラクト情報における業務要求イベントに基づいて、データ取得アドレスを決定し、当該データ取得アドレスをアクセスする。オプションとして、当該業務コントラクト情報が、遅延で処理される業務コントラクト情報である場合、ターゲットオフチェーンノードは、データ取得アドレスを決定した後、業務処理時間に基づいて、業務タイマーを作成し、業務タイマーの値が業務処理時間と同じである場合、当該データ取得アドレスをアクセスしてもよい。
【0071】
ここで、ターゲットオフチェーンノードは、データ取得アドレスをアクセスし、当該業務要求イベントに対応するイベント要求結果を取得する。ここで、当該データ取得アドレスを決定するプロセスについては、図5におけるステップS502に示されることを参照することができ、当該データ取得アドレスをアクセスし、業務要求イベントに対応するイベント要求結果を取得するプロセスについては、図5におけるステップS503に示されることを参照することができる。例えば、当該業務処理時間が、2020年6月2日15時であり、当該業務要求オブジェクトが、第1試合における第1試合参加者と第2試合参加者との試合の結果である場合、ターゲットオフチェーンノードは、当該業務要求オブジェクトに基づいて、データ取得アドレスを取得し、取得された当該データ取得アドレスは、当該第1試合の公式サイトアドレスであってもよく、または第1試合の試合結果の統計ウェブアドレスなどであってもよいし、即ち、当該データ取得アドレスは、当該業務要求オブジェクトの関連データを取得できるウェブアドレスであってもよい。ターゲットオフチェーンノードは、当該データ取得アドレスをアクセスし、当該業務要求オブジェクトに関連付けられているデータを、イベント要求結果として取得する。
【0072】
ステップS608で、ターゲットオフチェーンノードは、イベント要求結果をオラクルコントラクトノードに送信する。
【0073】
具体的には、当該業務コントラクト情報には、取引ハッシュが含まれてもよく、ターゲットオフチェーンノードは当該取引ハッシュを取得し、当該取引ハッシュおよびイベント要求結果を、業務応答メッセージとしてパッケージングし、ここで、当該取引ハッシュは、当該オラクルコントラクトノードがコントラクト識別子を取得する根拠を特徴付けるために使用される。または、当該業務コントラクト情報にはコントラクト識別子が含まれている場合、ターゲットオフチェーンノードは、当該コントラクト識別子を取得し、当該コントラクト識別子およびイベント要求結果を、業務応答メッセージとしてパッケージングする。ターゲットオフチェーンノードは、オラクルコントラクトノードに当該業務応答メッセージを送信する。
【0074】
オラクルコントラクトノードは、ターゲットオフチェーンノードによって送信された業務応答メッセージを受信し、業務応答メッセージにおけるイベント要求結果を取得し、当該業務応答メッセージには、イベント要求結果と取引ハッシュとが含まれるか、または、当該業務応答メッセージには、イベント要求結果とコントラクト識別子とが含まれる。
【0075】
ステップS609で、オラクルコントラクトノードは、イベント要求結果を業務コントラクトノードに送信する。
【0076】
具体的には、当該業務応答メッセージにはイベント要求結果と取引ハッシュとが含まれる場合、オラクルコントラクトノードは、業務応答メッセージにおける取引ハッシュを取得し、当該取引ハッシュに基づいて、イベント要求結果に対応するコントラクト識別子を決定し、ここで、当該コントラクト識別子と取引ハッシュとの間には、関連関係が存在しており、当該相関関係は、業務マッピングテーブルに記憶され得る。当該イベント要求結果を、コントラクト識別子に対応する業務スマートコントラクトにフィードバックし、これにより、当該業務コントラクトノードは、当該イベント要求結果に基づいて、後続の動作を実行することが可能になる。
【0077】
または、当該業務応答メッセージには、イベント要求結果とコントラクト識別子とが含まれる場合、ターゲットオフチェーンノードは、業務応答メッセージにおけるコントラクト識別子を取得し、当該イベント要求結果を、コントラクト識別子に対応する業務スマートコントラクトにフィードバックし、これにより、当該業務コントラクトノードは、当該イベント要求結果に基づいて、後続の動作を実行することが可能になる。
【0078】
例えば、当該業務スマートコントラクトは、第1試合における第1試合参加者と第2試合参加者との試合の結果に基づいて、統計データ量を割り当てて統計することであり、この場合、業務コントラクトノードは、当該イベント要求結果を取得し、業務スマートコントラクトを開始させ、当該イベント要求結果と、当該業務スマートコントラクトにおける割り当て規則とに基づいて、統計データ量を割り当てて統計する。
【0079】
ここで、上記の業務コントラクトノードとオラクルコントラクトノードの間のデータインタラクションは、イーサリアムスマートコントラクト仮想マシン(EVM:Ethereum smart contract virtual machine)によって実現され得る。
【0080】
本願の実施例は、上記のブロックチェーンメッセージ処理プロセスにより、業務コントラクト情報を取得し、業務コントラクト情報をオラクルコントラクトに追加することであって、上記の業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれることと、ターゲットオフチェーンノードを取得し、オラクルコントラクトを介して業務コントラクト情報をターゲットオフチェーンノードに送信することで、業務要求イベントに対応するイベント要求結果をターゲットオフチェーンノードに取得させることと、ターゲットオフチェーンノードによって送信されたイベント要求結果を取得し、イベント要求結果を、上記のコントラクト識別子に対応する業務スマートコントラクトにフィードバックすることと、を実現する。本願を採用すると、オラクルコントラクトノードによって、ブロックチェーンにおけるネットワークノードとブロックチェーン外のオフチェーンノードとが接続され、オラクルコントラクトノードによって、ブロックチェーンにおける業務スマートコントラクトへのデータ管理が実現され、オフチェーンノードとのデータインタラクションが実現され、ブロックチェーンのオンチェーンとオフチェーンでのデータインタラクションが実現され得て、オフチェーンノードが業務コントラクト情報によってイベント要求結果の取得プロセスを自動的にトリガーすることと相まって、オフチェーンノードは、イベント要求結果をリアルタイムで取得してオラクルコントラクトノードにタイムリーにフィードバックすることができ、これにより、ブロックチェーンにおけるオンチェーンとオフチェーンでのデータインタラクションのリアルタイム性を向上させ、さらに、ブロックチェーンメッセージ処理の効率を向上させる。また、オラクルコントラクトノードは、各ノード間のインタラクションデータに対してコンセンサス検証を行うことができ、これによって、ブロックチェーンによって得られるブロックチェーン外のデータの安全信頼性が確保される。
【0081】
さらに、図8を参照すると、図8は、本願の実施例によって提供されるオラクルの構造模式図である。図8に示すように、オラクルには、オラクルコントラクトノードと、オフチェーンノードとが含まれ、当該オラクルコントラクトノードには、オラクルコントラクト801が記憶されており、オフチェーンノードには、1つまたは少なくとも2つのオフチェーンノード、例えば、オフチェーンノード8031およびオフチェーンノード8032が含まれ得る。ここで、オラクルコントラクト801には、データベース802を介して業務マッピングテーブルが記憶され得ており、オフチェーンノード8031およびオフチェーンノード8032は、オラクルコントラクトノードにおけるオラクルコントラクト801を呼び出して、リモートプロセスによって、データベース802における業務マッピングテーブルを呼び出して取得することができる。オフチェーンノード8031またはオフチェーンノード8032によって取得された業務コントラクト情報には、業務処理時間が含まれている場合、取得された業務コントラクト情報のために業務タイマーを作成する。当該業務タイマーの値が業務処理時間に達した場合、要求プロトコルによってデータソースを呼び出すことによって(即ち、要求プロトコルによってデータ取得アドレスをアクセスし、当該データ取得アドレスによって示されるデータは、データソースと呼ばれてもよい)、当該業務コントラクト情報に対応するイベント要求結果を取得し、ここで、要求プロトコルは、ハイパーテキスト転送プロトコル(http:HyperText Transfer Protocol)プロトコルであってもよい。オフチェーンノード8031またはオフチェーンノード8032は、イベント要求結果を取得した後、当該イベント要求結果を、オラクルコントラクトノードにおけるオラクルコントラクト801にフィードバックする。
【0082】
さらに、図9を参照すると、図9は、本願の実施例によって提供されるブロックチェーンメッセージ処理装置の模式図である。上記のブロックチェーンメッセージ処理装置は、コンピュータデバイスにおいて実行されるコンピュータ読み取り可能な命令(プログラムコードを含む)であってもよく、例えば、当該ブロックチェーンメッセージ処理装置は、アプリケーションソフトウェアである。この装置は、本願の実施例によって提供される方法における対応するステップを実行するために使用され得る。図9に示すように、当該ブロックチェーンメッセージ処理装置90は、上記の図3図5または図6が対応する実施例におけるコンピュータデバイスに使用され得て、具体的には、当該ブロックチェーンメッセージ処理装置90には、業務取得モジュール11a、ノード取得モジュール12a、および結果取得モジュール13aが含まれ得る。
【0083】
業務取得モジュール11aは、業務コントラクト情報を取得し、業務コントラクト情報をオラクルコントラクトに追加するために使用され、業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれる。
【0084】
ノード取得モジュール12aは、ターゲットオフチェーンノードを取得し、オラクルコントラクトを介して業務コントラクト情報をターゲットオフチェーンノードに送信することで、業務要求イベントに対応するイベント要求結果をターゲットオフチェーンノードに取得させるために使用される。
【0085】
結果取得モジュール13aは、ターゲットオフチェーンノードによって送信された上記のイベント要求結果を取得し、イベント要求結果を、コントラクト識別子に対応する業務スマートコントラクトにフィードバックするために使用される。
【0086】
ここで、業務契約情報を取得することに関して、上記の業務取得モジュール11aは、
コントラクトブロックのブロックがチェーンに追加されたメッセージを取得するために使用されるコントラクト取得ユニット111aであって、ブロックがチェーンに追加されたメッセージには、業務スマートコントラクトが含まれるコントラクト取得ユニット111aと、
業務スマートコントラクトのコントラクト識別子を取得するために使用される識別子取得ユニット112aと、
業務スマートコントラクトを解析し、業務要求イベントを得るために使用されるイベント取得ユニット113aであって、業務要求イベントには、業務スマートコントラクトがトリガーされた後に要求するデータオブジェクトを特徴付けるために使用される業務要求オブジェクトが含まれるイベント取得ユニット113aと、
コントラクト識別子および業務要求イベントに基づいて、業務コントラクト情報を生成するために使用される業務生成ユニット114aと、を含む。
【0087】
ここで、上記の装置90は、さらに、
業務要求イベントのハッシュ値を取引ハッシュとして生成するために使用されるハッシュ生成モジュール14a、を含み、
業務生成ユニット114aは、具体的には、
コントラクト識別子、取引ハッシュおよび業務要求イベントに基づいて、業務コントラクト情報を生成するために使用される。
【0088】
ここで、上記のターゲットオフチェーンノードによって送信されたイベント要求結果を取得することに関して、上記の結果取得モジュール13aは、
ターゲットオフチェーンノードによって送信された業務応答メッセージを受信するために使用される応答受信ユニット131aであって、業務応答メッセージには、イベント要求結果とコントラクト識別子とが含まれる応答受信ユニット131aと、
業務応答メッセージにおけるイベント要求結果を取得するために使用される結果取得ユニット132aと、を含み、
この場合、
イベント要求結果をコントラクト識別子に対応する業務スマートコントラクトにフィードバックすることに関して、上記の結果取得モジュール13aは、
業務応答メッセージにおける取引ハッシュを取得するために使用されるハッシュ取引ユニット133aと、
取引ハッシュに基づいて、イベント要求結果に対応するコントラクト識別子を決定するために使用される識別子決定ユニット134aであって、コントラクト識別子と取引ハッシュとの間には、関連関係が存在している識別子決定ユニット134aと、
イベント要求結果を、コントラクト識別子に対応する業務スマートコントラクトにフィードバックするために使用される結果フィードバックユニット135aと、を含む。
【0089】
ここで、オラクルコントラクトは、業務マッピングテーブルを含み、業務マッピングテーブルには、業務タイプと、業務タイプに対応する業務データ集合とが含まれる。
【0090】
業務コントラクト情報をオラクルコントラクトに追加することに関して、上記の業務取得モジュール11aは、
業務要求イベントが属するターゲット業務タイプを取得し、オラクルコントラクトから、ターゲット業務タイプに対応するターゲット業務データ集合を取得するために使用されるタイプ取得ユニット115aと、
業務コントラクト情報をターゲット業務データ集合に追加するために使用される業務追加ユニット116aと、を含み、この場合、
上記のノード取得モジュール12aは、
ターゲット業務データ集合に対応するオフチェーンノードを、ターゲットオフチェーンノードとして取得するために使用されるノード決定ユニット121aと、
オラクルコントラクトを介して業務コントラクト情報をターゲットオフチェーンノードに送信するために使用される業務送信ユニット122aと、を含む。
【0091】
ここで、ターゲットオフチェーンノードを取得することに関して、上記のノード取得モジュール12aは、さらに、
アイドル状態にあるオフチェーンノードを候補オフチェーンノードとして取得するために使用される候補決定ユニット123a、を含み、
上記のノード決定ユニット121aは、さらに、候補オフチェーンノードのネットワーク品質パラメータを取得し、ネットワーク品質パラメータが最も高い候補オフチェーンノードをターゲットオフチェーンノードとして決定するために使用される。
【0092】
ここで、イベント要求結果をコントラクト識別子に対応する業務スマートコントラクトにフィードバックすることに関して、上記の結果取得モジュール13aは、
業務要求イベントに対応するプロトコルデータフォーマットを取得し、イベント要求結果のデータフォーマットをプロトコルデータフォーマットに変換して、変換された実行結果を得るために使用されるフォーマット変換ユニット136a、を含み、
上記の結果フィードバックユニット135aは、さらに、変換された実行結果を、コントラクト識別子に対応する業務スマートコントラクトにフィードバックするために使用される。
【0093】
本願の実施例は、ブロックチェーンメッセージ処理装置を説明し、上記の装置は、業務コントラクト情報を取得し、業務コントラクト情報をオラクルコントラクトに追加することであって、業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれることと、ターゲットオフチェーンノードを取得し、オラクルコントラクトを介して業務コントラクト情報をターゲットオフチェーンノードに送信することで、業務要求イベントに対応するイベント要求結果をターゲットオフチェーンノードに取得させることと、ターゲットオフチェーンノードによって送信されたイベント要求結果を取得し、イベント要求結果を、上記のコントラクト識別子に対応する業務スマートコントラクトにフィードバックすることと、を実行する。本願を採用すると、オラクルコントラクトノードによって、ブロックチェーンにおけるネットワークノードとブロックチェーン外のオフチェーンノードとが接続され、オラクルコントラクトノードによって、ブロックチェーンにおける業務スマートコントラクトへのデータ管理が実現され、オフチェーンノードとのデータインタラクションが実現され、ブロックチェーンのオンチェーンとオフチェーンでのデータインタラクションが実現され得て、オフチェーンノードが業務コントラクト情報によってイベント要求結果の取得プロセスを自動的にトリガーすることと相まって、オフチェーンノードは、イベント要求結果をリアルタイムで取得してオラクルコントラクトノードにタイムリーにフィードバックすることができ、これにより、ブロックチェーンにおけるオンチェーンとオフチェーンでのデータインタラクションのリアルタイム性を向上させ、さらに、ブロックチェーンメッセージ処理の効率を向上させる。
【0094】
さらに、図10を参照すると、図10は、本願の実施例によって提供される別のブロックチェーンメッセージ処理装置の模式図である。上記のブロックチェーンメッセージ処理装置は、コンピュータデバイスにおいて実行されるコンピュータ読み取り可能な命令(プログラムコードを含む)であってもよく、例えば、当該ブロックチェーンメッセージ処理装置は、アプリケーションソフトウェアである。この装置は、本願の実施例によって提供される方法における対応するステップを実行するために使用され得る。図10に示すように、当該ブロックチェーンメッセージ処理装置100は、上記の図3図5または図6が対応する実施例におけるコンピュータデバイスに使用され得て、具体的には、当該ブロックチェーンメッセージ処理装置100には、業務取得モジュール11b、アドレス決定モジュール12b、および結果取得モジュール13bが含まれ得る。
【0095】
業務取得モジュール11bは、オラクルコントラクトノードがオラクルコントラクトを介して送信した業務コントラクト情報を取得するために使用され、業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれる。
【0096】
アドレス決定モジュール12bは、業務要求イベントに基づいて、データ取得アドレスを決定するために使用される。
【0097】
結果取得モジュール13bは、データ取得アドレスをアクセスし、業務要求イベントに対応するイベント要求結果を取得し、イベント要求結果をオラクルコントラクトノードに送信することで、オラクルコントラクトノードに、当該イベント要求結果をコントラクト識別子に対応する業務スマートコントラクトにフィードバックさせるために使用される。
【0098】
ここで、業務コントラクト情報には、取引ハッシュがさらに含まれる。
【0099】
上記の装置100は、さらに、
業務要求イベントの検証ハッシュを生成し、取引ハッシュが検証ハッシュと同じである場合、業務要求イベントに基づいてデータ取得アドレスを決定するプロセスをトリガーするために使用されるハッシュ生成モジュール14bと、
取引ハッシュが検証ハッシュと異なる場合、オラクルコントラクトノードに業務データ異常メッセージを送信するために使用される異常送信モジュール15bと、を含む。
【0100】
ここで、業務要求イベントには、業務処理時間が含まれる。
【0101】
上記の装置100は、さらに、
業務処理時間に基づいて業務タイマーを作成し、業務タイマーの値が業務処理時間と同じである場合、データ取得アドレスをアクセスするプロセスをトリガーするために使用されるタイムマッチングモジュール16b、を含む。
【0102】
ここで、イベント要求結果をオラクルコントラクトノードに送信することに関して、上記の結果取得モジュール13bは、
取引ハッシュを取得し、取引ハッシュおよびイベント要求結果を、業務応答メッセージとしてパッケージングするために使用されるハッシュ取得ユニット131bであって、取引ハッシュが、オラクルコントラクトノードによってコントラクト識別子が取得される根拠を特徴付けるハッシュ取得ユニット131bと、
オラクルコントラクトノードに業務応答メッセージを送信するために使用される応答送信ユニット132bと、を含む。
【0103】
本願の実施例は、ブロックチェーンメッセージ処理装置を説明し、上記の装置は、オラクルコントラクトノードがオラクルコントラクトを介して送信した業務コントラクト情報を取得することであって、上記の業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれることと、業務要求イベントに基づいてデータ取得アドレスを決定することと、データ取得アドレスをアクセスし、業務要求イベントに対応するイベント要求結果を取得し、イベント要求結果をオラクルコントラクトノードに送信することで、オラクルコントラクトノードに、イベント要求結果をコントラクト識別子に対応する業務スマートコントラクトにフィードバックさせることと、を実行する。本願の実施例では、ターゲットオフチェーンノードによってブロックチェーン外からデータが取得され、ブロックチェーンにおける業務スマートコントラクトと、ブロックチェーン外のオフチェーンノードとがオラクルコントラクトノードによって接続され、これにより、両方の間のデータインタラクションが実現され、これによって、ブロックチェーンのオンチェーンとオフチェーンでのデータインタラクションがより便利で迅速になり、オフチェーンノードが業務コントラクト情報によってイベント要求結果の取得プロセスを自動的にトリガーすることも相まって、オフチェーンノードは、イベント要求結果をリアルタイムで取得してオラクルコントラクトノードにタイムリーにフィードバックすることができ、さらに、ブロックチェーンにおけるオンチェーンとオフチェーンでのデータインタラクションのリアルタイム性を向上させ、ブロックチェーンメッセージ処理の効率を向上させる。
【0104】
図11を参照すると、図11は、本願の実施例によって提供されるコンピュータデバイスの構成模式図である。図11に示すように、本願の実施例におけるコンピュータデバイス1100は、1つまたは複数のプロセッサ1101、メモリ1102、および入出力インタフェース1103を含み得る。上記のプロセッサ1101、メモリ1102、および入出力インタフェース1103は、バス1104を介して接続される。メモリ1102は、コンピュータ読み取り可能な命令を記憶するために使用され、当該コンピュータ読み取り可能な命令には、プログラム命令が含まれ、入出力インタフェース1103は、コンセンサスネットワークにおける、各業務コントラクトノードとオラクルコントラクトノードとの間の、および、オラクルコントラクトノードと各オフチェーンノードとの間のデータインタラクションのために使用される。プロセッサ1101は、メモリ1102に記憶されているプログラム命令を実行するために使用され、以下のような動作を実行し、即ち、
業務コントラクト情報を取得し、業務コントラクト情報をオラクルコントラクトに追加することであって、業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれることと、
ターゲットオフチェーンノードを取得し、オラクルコントラクトを介して業務コントラクト情報をターゲットオフチェーンノードに送信することで、業務要求イベントに対応するイベント要求結果をターゲットオフチェーンノードに取得させることと、
ターゲットオフチェーンノードによって送信されたイベント要求結果を取得し、イベント要求結果を、コントラクト識別子に対応する業務スマートコントラクトにフィードバックすることと、を実行し、
または、以下のような動作を実行し、即ち、
オラクルコントラクトノードがオラクルコントラクトを介して送信した業務コントラクト情報を取得することであって、上記の業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれることと、
業務要求イベントに基づいてデータ取得アドレスを決定することと、
データ取得アドレスをアクセスし、業務要求イベントに対応するイベント要求結果を取得し、イベント要求結果をオラクルコントラクトノードに送信することで、オラクルコントラクトノードに、イベント要求結果をコントラクト識別子に対応する業務スマートコントラクトにフィードバックさせることと、を実行する。
【0105】
いくつかの実行可能な実施形態において、上記のプロセッサ1101は、中央処理ユニット(CPU:central processing unit)であってもよく、当該プロセッサは、他の汎用プロセッサ、デジタル信号プロセッサ(DSP:digital signal processor)、専用集積回路(ASIC:application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)、あるいは他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジックデバイス、ディスクリートハードウェアコンポーネントなどであってもよい。汎用プロセッサは、マイクロプロセッサであってもよく、あるいは、当該プロセッサは、任意の従来のプロセッサであってもよい。
【0106】
メモリ1102は、読み取り専用メモリおよびランダムアクセスメモリを含み、プロセッサ1101および入出力インタフェース1103に命令およびデータを提供することができる。メモリ1102の一部は、また、不揮発性ランダムアクセスメモリを含むことができる。例えば、メモリ1102は、また、デバイスタイプの情報を記憶することもできる。
【0107】
具体的な実現では、上記のコンピュータは、上記の図3図5または図6における各ステップによって提供された実現方式を、内蔵されている各機能モジュールによって実行することができ、具体的には、上記の図3図5、または図6における各ステップによって提供された実現方式を参照することができ、ここでは、これ以上説明しない。
【0108】
本願の実施例は、プロセッサ、入出力インタフェースおよびメモリを含むコンピュータデバイスを提供し、プロセッサによって、メモリに記憶されているコンピュータ命令を取得し、上記の図3図5または図6に示される方法の各ステップを実行して、ブロックチェーンメッセージ処理動作を行う。メモリに記憶されているコンピュータ命令によって、プロセッサは、次のステップを実行し、即ち、業務コントラクト情報を取得し、業務コントラクト情報をオラクルコントラクトに追加するステップであって、業務コントラクト情報には、業務スマートコントラクトのコントラクト識別子と、業務スマートコントラクトに対応する業務要求イベントとが含まれるステップと、ターゲットオフチェーンノードを取得し、オラクルコントラクトを介して業務コントラクト情報をターゲットオフチェーンノードに送信することで、業務要求イベントに対応するイベント要求結果をターゲットオフチェーンノードに取得させるステップと、ターゲットオフチェーンノードによって送信されたイベント要求結果を取得し、イベント要求結果を、上記のコントラクト識別子に対応する業務スマートコントラクトにフィードバックするステップと、を実行する。本願を採用すると、オラクルコントラクトノードによって、ブロックチェーンにおけるネットワークノードとブロックチェーン外のオフチェーンノードとが接続され、オラクルコントラクトノードによって、ブロックチェーンにおける業務スマートコントラクトへのデータ管理が実現され、オフチェーンノードとのデータインタラクションが実現され、ブロックチェーンのオンチェーンとオフチェーンでのデータインタラクションが実現され得て、オフチェーンノードが業務コントラクト情報によってイベント要求結果の取得プロセスを自動的にトリガーすることと相まって、オフチェーンノードは、イベント要求結果をリアルタイムで取得してオラクルコントラクトノードにタイムリーにフィードバックすることができ、これにより、ブロックチェーンにおけるオンチェーンとオフチェーンでのデータインタラクションのリアルタイム性を向上させ、さらに、ブロックチェーンメッセージ処理の効率を向上させる。
【0109】
本願の実施例は、コンピュータ読み取り可能な命令が記憶されているコンピュータ読み取り可能な記憶媒体をさらに提供し、当該コンピュータ読み取り可能な命令には、プログラム命令が含まれ、当該プログラム命令が、上記のプロセッサによって実行されるとき、図3図5または図6における各ステップによって提供するブロックチェーンメッセージ処理方法が実現され得て、具体的には、上記の図3図5または図6における各ステップによって提供される実現方式を参照することができ、ここでは、これ以上説明しない。また、同じ方法を採用する場合の有益な効果に対する記述についても、これ以上述べることはない。本願に係るコンピュータ読み取り可能な記憶媒体の実施例に開示されていない技術的詳細については、本願の方法の実施例の説明を参照ください。一例として、プログラム命令は、1つのコンピュータデバイス上で実行されるようにデプロイされてもよく、または、1つの場所に位置する複数のコンピュータデバイス上で実行されるようにデプロイされてもよいし、あるいは、複数の場所に分散され、かつ、通信ネットワークを介して相互接続されている複数のコンピュータデバイス上で実行されてもよく、複数の場所に分散され、かつ、通信ネットワークを介して相互接続されている複数のコンピュータデバイスは、ブロックチェーンネットワークを構成することができる。
【0110】
上記のコンピュータ読み取り可能な記憶媒体は、前記いずれかの実施例によって提供されるデータ処理装置または上記のコンピュータの内部記憶ユニット、例えば、コンピュータのハードディスクまたはメモリであってもよい。コンピュータ読み取り可能な記憶媒体は、当該コンピュータの外部記憶デバイスであってもよく、例えば、当該コンピュータに配置されているプラグインハードディスク、スマートメモリカード(SMC:smart media card)、セキュリティデジタル(SD:secure digital)カード、フラッシュメモリカードなどである。さらに、当該コンピュータ読み取り可能な記憶媒体は、また、当該コンピュータの内部記憶ユニットも外部記憶デバイスも含み得る。当該コンピュータ読み取り可能な記憶媒体は、当該コンピュータプログラムと、当該コンピュータに必要な他のプログラムおよびデータとを記憶するために使用される。当該コンピュータ読み取り可能な記憶媒体は、また、出力されたデータまたは出力されるデータを一時的に記憶するために使用され得る。
【0111】
1つの実施例では、メモリと、1つまたは複数のプロセッサとを含むコンピュータデバイスも提供され、メモリには、コンピュータ読み取り可能な命令が記憶されており、当該1つまたは複数のプロセッサは、コンピュータ読み取り可能な命令を実行するとき、上記の各方法の実施例におけるステップを実現する。
【0112】
一実施例では、コンピュータ読み取り可能な命令が記憶されている1つまたは複数の不揮発性コンピュータ読み取り可能な記憶媒体が提供され、コンピュータ読み取り可能な命令が記憶され、当該コンピュータ読み取り可能な命令は、1つ以上のプロセッサによって実行されるとき、上記の各方法の実施例におけるステップが実現される。
【0113】
一実施例では、コンピュータ読み取り可能な命令を含むコンピュータプログラム製品またはコンピュータプログラムが提供され、コンピュータ読み取り可能な命令は、コンピュータ読み取り可能な記憶媒体に記憶され、コンピュータデバイスのプロセッサは、コンピュータ読み取り可能な記憶媒体から、前記コンピュータ読み取り可能な命令を読み出し、プロセッサは、コンピュータ読み取り可能な命令を実行することで、上記の各方法の実施例におけるステップをコンピュータデバイスに実行させる。
【0114】
本発明の実施例の明細書と特許請求の範囲および図面における「第1」、「第2」などの用語は、特定の順序を記述するのではなく、異なる対象を区別するために使用される。またに、「含む」という用語およびそれらの任意の変形は、非排他的包含を網羅することを意図している。例えば、一連のステップまたはユニットを含むプロセス、方法、装置、製品またはデバイスは、リストされたステップまたはモジュールに限定されず、リストされていないステップまたはモジュールを含めるか、またはこれらのプロセス、方法、装置、製品またはデバイスに対する固有の他のステップまたはユニットも含む。
【0115】
本明細書に開示された実施例に関連して説明された各例のユニットおよびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせで実現され得ることを当業者は認識することができ、ハードウェアおよびソフトウェアの互換性を明確に説明するために、上述の説明では、各例の構成およびステップについて、機能に従って一般的に説明した。これらの機能がハードウェア方式で実現されるかソフトウェア方式で実現れるかは、技術案の特定の応用および設計の制約に依存する。当業者は、説明された機能を実現するために、各特定の応用に対して異なる方法を使用することができるが、このような実現は、本願の範囲を超えているとは考えられない。
【0116】
本願の実施例によって提供される方法および関連装置は、本願の実施例によってて提供される方法フローチャートおよび/または構造概略図を参照しながら説明され、具体的には、方法フローチャートおよび/または構造概略図の各フローおよび/またはブロック、ならびに、フローチャートおよび/またはブロック図におけるフローおよび/またはブロックの組み合わせが、コンピュータプログラム命令によって実現され得る。これらのコンピュータプログラム命令は、1つのマシンを生成するように、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または他のプログラマブルデータ処理デバイスのプロセッサに提供され得、これにより、コンピュータまたは他のプログラマブルデータ処理デバイスのプロセッサによって実行される命令は、フローチャートの1つまたは複数のフローおよび/または構造概略図の1つまたは複数のブロックにおいて指定された機能を実現するための装置が生成される。これらのコンピュータプログラム命令は、コンピュータまたは他のプログラマブルデータ処理デバイスに特定の方式で動作させるようにブートを行うことができるコンピュータ読み取り可能なメモリにも記憶され得て、これにより、コンピュータ読み取り可能なメモリに記憶されている命令は、命令装置を含む製品を生成し、当該命令装置が、フローチャートの1つまたは複数のフローおよび/または構造概略図の1つまたは複数のブロックにおいて指定された機能を実現する。これらのコンピュータプログラム命令は、コンピュータまたは他のプログラマブルデータ処理デバイスにロードされ得て、これにより、コンピュータまたは他のプログラマブルデバイスが、一連の動作ステップを実行することで、コンピュータによって実現される処理を生成し、これによって、コンピュータまたは他のプログラマブルデバイス上で実行される命令は、フローチャートの1つまたは複数のフローおよび/または構造概略図の1つまたは複数のブロックにおいて指定された機能を実現するためのステップを提供する。
【0117】
以上開示されたものは、本願の好適な実施例に過ぎず、勿論、これにより本願の特許請求の範囲を限定することはできなく、したがって、本願の請求項による同等の変化は、依然として本願がカバーする範囲に属する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11