(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-28
(54)【発明の名称】トランザクションの並行実行方法、装置及び記憶媒体
(51)【国際特許分類】
G06Q 20/06 20120101AFI20220421BHJP
G06Q 20/10 20120101ALI20220421BHJP
【FI】
G06Q20/06 300
G06Q20/10
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021538146
(86)(22)【出願日】2020-12-24
(85)【翻訳文提出日】2021-06-25
(86)【国際出願番号】 CN2020138896
(87)【国際公開番号】W WO2021164415
(87)【国際公開日】2021-08-26
(31)【優先権主張番号】202010099008.3
(32)【優先日】2020-02-18
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】521282158
【氏名又は名称】江蘇復雑美科技有限公司
【氏名又は名称原語表記】JIANGSU FUZAMEI TECHNOLOGY CO., LTD.
【住所又は居所原語表記】ROOM 217, #3 BUILDING, SOFT PARK, #78 KELING ROAD, GAOXIN DISTRICT Suzhou, Jiangsu 215000 China
(74)【代理人】
【識別番号】110002262
【氏名又は名称】TRY国際特許業務法人
(72)【発明者】
【氏名】林 敬
(72)【発明者】
【氏名】王 志文
(72)【発明者】
【氏名】呉 思進
【テーマコード(参考)】
5L055
【Fターム(参考)】
5L055AA15
5L055AA22
(57)【要約】
本発明は、トランザクションの並行実行方法、装置及び記憶媒体を開示しており、ブロックチェーンなどの技術分野に関する。前記方法は、トランザクションプールにキャッシュされたトランザクションを取得し、トランザクション料金の受け取りに成功したトランザクションをリストTxListAに入れることと、トランザクションを実行する契約の種類に応じて、リストTxListA中のトランザクションを資産類契約グループと非資産類契約グループに分け、非資産類契約グループ中のトランザクションについては、同一の非資産類契約のトランザクションを同一の非資産類契約グループに入れることと、資産類契約グループ内のトランザクションを実行した後、各非資産類契約グループ内のトランザクションを並行実行することと、グループごとのトランザクションを実行した後の結果を組み合わせることと、を含む。資産類トランザクショングループを優先的に実行し、各非資産類トランザクショングループを並行実行することにより、トランザクションの実行効率を向上し、ブロックチェーンのtpsを向上した。
【選択図】
図1
【特許請求の範囲】
【請求項1】
トランザクションプールにキャッシュされたトランザクションを取得し、トランザクション料金の受け取りに成功したトランザクションをリストTxListAに入れることと、
トランザクションを実行する契約の種類に応じて、リストTxListA中のトランザクションを資産類契約グループと非資産類契約グループに分け、非資産類契約グループ中のトランザクションについては、同一の非資産類契約のトランザクションを同一の非資産類契約グループに入れることと、
資産類契約グループ内のトランザクションを実行した後、各非資産類契約グループ内のトランザクションを並行実行することと、
グループごとのトランザクションを実行した後の結果を組み合わせることと、
を含むことを特徴とするトランザクションの並行実行方法。
【請求項2】
トランザクションプールにパラレルチェーントランザクションが含まれる時、トランザクションプールにキャッシュされたトランザクションを取得し、トランザクション料金の受け取りに成功したトランザクションをリストTxListAに入れ、
トランザクションを実行する契約の種類に応じて、リストTxListA中のトランザクションを資産類契約グループと非資産類契約グループに分け、非資産類契約グループ中のトランザクションについては、同一の非資産類契約のトランザクションを同一の非資産類契約グループに入れ、
メインチェーントランザクションについては、資産類契約グループ内のトランザクションを実行した後、各非資産類契約グループ内のトランザクションを並行実行し、
グループごとのトランザクションを実行した後の結果を組み合わせ、
パラレルチェーントランザクションについては、ブロックコンセンサスが成功した後、パラレルチェーンノードは、パラレルチェーンに対応するトランザクションをメインチェーンノードから同期させ、資産類契約グループ内のトランザクションを実行した後、各非資産類契約グループ内のトランザクションを並行実行し、
グループごとのトランザクションを実行した後の結果を組み合わせる、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記資産類契約グループ内のトランザクションは、トランザクションリストの順番で実行されることを特徴とする請求項1又は2に記載の方法。
【請求項4】
同一の非資産類契約グループ内のトランザクションは、トランザクションリストの順番で実行されることを特徴とする請求項1又は2に記載の方法。
【請求項5】
非資産類契約グループの数が最大同時数Nを超える時、グループごとのトランザクション数に応じてソートを行い、トランザクション数のソートがNの前である非資産類契約グループ中のトランザクションを優先的に実行し、Nが正整数であることを特徴とする請求項4に記載の方法。
【請求項6】
トランザクション数のソートがNの前である非資産類契約グループ中の1つ以上の非資産類契約グループを実行した後、トランザクション数のソートに応じて、次の非資産類契約グループ中のトランザクションを実行し続けることを特徴とする請求項5に記載の方法。
【請求項7】
1つ又は複数のプロセッサと、1つ又は複数のプログラムを格納するためのメモリとを含む装置であって、
前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサによって実行される時、前記1つ又は複数のプロセッサに請求項1~6のいずれか1項に記載の方法を実行させることを特徴とする装置。
【請求項8】
プログラムがプロセッサによって実行される時、請求項1~6のいずれか1項に記載の方法を実現することを特徴とするコンピュータプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロックチェーンなどの技術分野に関し、特にトランザクションの並行実行方法、装置及び記憶媒体に関する。
【背景技術】
【0002】
既存のブロックチェーンシステムは、脱中心化の分散システムであり、時間の順序に従って互いに関連する隣接ブロックで構成されており、ブロックには複数のトランザクションがパッキングされており、トランザクションの実行プロセスはシリアル実行方式であり、トランザクションプールからトランザクションを取得し、1つずつ実行し、更に、ブロックチェーンシステムではロールバックが発生する可能性があり、1つのトランザクションが作成されてから成功に実行されるまでには長い時間がかかる。
【0003】
出願公開番号:CN109508337A、出願公開日: 2019.3.22である中国の発明特許出願には、トランザクションの並行実行方法が開示されている。該技術案においては、トランザクションをソートした後、異なるアクチュエーターにより実行するが、トランザクションの実行プロセスにおける異常な状況の処理については追加の判断が必要であり、衝突があれば、調整後に再び処理し、異常な状況の検出及びその検出結果自体の処理過程は、ブロックチェーンネットワークトランザクションの並行処理速度を増加する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記技術課題を解決するために、本発明は、トランザクションの並行実行方法、装置及び記憶媒体を提供することである。資産類トランザクショングループを優先的に実行して、各非資産類トランザクショングループを並行実行することにより、トランザクションの実行効率を向上し、ブロックチェーンのtpsを向上した。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明によって提供される技術策は以下の通りであり、
トランザクションの並行実行方法は、トランザクションプールにキャッシュされたトランザクションを取得し、トランザクション料金の受け取りに成功したトランザクションをリストTxListAに入れることと、トランザクションを実行する契約の種類に応じて、リストTxListA中のトランザクションを資産類契約グループと非資産類契約グループに分け、非資産類契約グループ中のトランザクションについては、同一の非資産類契約のトランザクションを同一の非資産類契約グループに入れることと、資産類契約グループ内のトランザクションを実行した後、各非資産類契約グループ内のトランザクションを並行実行することと、グループごとのトランザクションを実行した後の結果を組み合わせることと、を含む。
【0006】
さらなる改善は以下の通りであり、トランザクションプールにパラレルチェーントランザクションが含まれる時、トランザクションプールにキャッシュされたトランザクションを取得し、トランザクション料金の受け取りに成功したトランザクションをリストTxListAに入れ、
トランザクションを実行する契約の種類に応じて、リストTxListA中のトランザクションを資産類契約グループと非資産類契約グループに分け、非資産類契約グループ中のトランザクションについては、同一の非資産類契約のトランザクションを同一の非資産類契約グループに入れ、
メインチェーントランザクションについては、資産類契約グループ内のトランザクションを実行した後、各非資産類契約グループ内のトランザクションを並行実行し、
グループごとのトランザクションを実行した後の結果を組み合わせ、
パラレルチェーントランザクションについては、ブロックコンセンサスが成功した後、パラレルチェーンノードは、パラレルチェーンに対応するトランザクションをメインチェーンノードから同期させ、資産類契約グループ内のトランザクションを実行した後、各非資産類契約グループ内のトランザクションを並行実行し、
グループごとのトランザクションを実行した後の結果を組み合わせる。
【0007】
さらなる改善は以下の通りであり、前記資産類契約グループ内のトランザクションは、トランザクションリストの順番で実行される。
【0008】
さらなる改善は以下の通りであり、同一の非資産類契約グループ内のトランザクションは、トランザクションリストの順番で実行される。
【0009】
さらなる改善は以下の通りであり、非資産類契約グループの数が最大同時数Nを超える時、グループごとのトランザクション数に応じてソートを行い、トランザクション数のソートがNの前である非資産類契約グループ中のトランザクションを優先的に実行し、Nが正整数である。
【0010】
さらなる改善は以下の通りであり、トランザクション数のソートがNの前である非資産類契約グループ中の1つ以上の非資産類契約グループを実行した後、トランザクション数のソートに応じて、次の非資産類契約グループ中のトランザクションを実行し続ける。
【0011】
1つ又は複数のプロセッサと、1つ又は複数のプログラムを格納するためのメモリとを含む装置であって、前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサによって実行される時、前記1つ又は複数のプロセッサに上記方法を実行させる。
【0012】
コンピュータプログラムを記憶した記憶媒体であって、該プログラムがプロセッサによって実行される時、上記のいずれか1項に記載の方法を実現する。
【発明の効果】
【0013】
従来技術と比較して、本発明によって提供される技術策は、以下の有益な効果を有する。
資産類トランザクションを優先的に実行し、各非資産類トランザクションを並行実行することにより、トランザクションの実行効率を向上し、ブロックチェーンのtpsを向上した。
【図面の簡単な説明】
【0014】
【
図1】本発明の1つの実施例によって提供されるトランザクションの並行実行方法のフローチャートである。
【発明を実施するための形態】
【0015】
本発明の内容を更に理解するために、図面及び実施例を参照して本発明を詳細に説明する。
【0016】
図面と実施例を参照して、更に本出願を詳細に説明する。当然のことながら、ここで説明する具体的な実施例は、ただ関連する発明を説明するためのものであるが、本発明を限定するものではない。また、説明すべきことについて、説明を容易にするために、本発明に関連する部分のみが図面に示されている。本発明においての前記第1、第2等の用語は、本発明の技術案を説明するために設定されており、特定の限定効果を持たず、これらはすべて一般的な参照であり、本発明の技術案を限定するものではない。説明すべきことについて、衝突がない場合、本出願における実施例及び実施例中の特徴は、互いに組み合わせることができる。以下、図面を参照しながら実施例に基づいて本出願を詳細に説明する。
【0017】
実施例1
図1に示すように、トランザクションの並行実行方法は、トランザクションプールにキャッシュされたトランザクションを取得するS101と、トランザクション料金の受け取りに成功したトランザクションをリストTxListAに入れ、且つトランザクション料金の受け取りに失敗したトランザクションが除去され、ブロックパッキングを行わないS102と、トランザクションを実行する契約の種類に応じて、リストTxListA中のトランザクションを資産類契約グループと非資産類契約グループに分けるS103と、非資産類契約グループ中のトランザクションについては、同一の非資産類契約のトランザクションを同一の非資産類契約グループに入れるS104と、資産類契約グループ内のトランザクションを実行した後、各非資産類契約グループ内のトランザクションを並行実行するS105と、グループごとのトランザクションを実行した後の結果を組み合わせるS106と、を含む。
【0018】
トランザクションプールにパラレルチェーントランザクションが含まれる時、トランザクションプールにキャッシュされたトランザクションを取得し、トランザクション料金の受け取りに成功したトランザクションをリストTxListAに入れる。トランザクションを実行する契約の種類に応じて、リストTxListA中のトランザクションを資産類契約グループと非資産類契約グループに分け、非資産類契約グループ中のトランザクションについては、同一の非資産類契約のトランザクションを同一の非資産類契約グループに入れる。メインチェーントランザクションについては、資産類契約グループ内のトランザクションを実行した後、各非資産類契約グループ内のトランザクションを並行実行する。グループごとのトランザクションを実行した後の結果を組み合わせる。パラレルチェーントランザクションについては、ブロックコンセンサスが成功した(ブロックを生成した)後、パラレルチェーンノードは、パラレルチェーンに対応するトランザクションをメインチェーンノードから同期させ、資産類契約グループ内のトランザクションを実行した後、各非資産類契約グループ内のトランザクションを並行実行し、グループごとのトランザクションを実行した後の結果を組み合わせる。
【0019】
前記資産類契約グループ内のトランザクションは、トランザクションリストの順番で実行され、同一の非資産類契約グループ内のトランザクションは、トランザクションリストの順番で実行される。その中で、トランザクションシーケンスは、トランザクションがパッキングノード上のトランザクションプールに排列された順番に基づいており、該順番はトランザクション手数料、トランザクション額の大きさ、トランザクションの優先度などの要素によって総合的に決定され、異なるブロックチェーンネットワークでは、トランザクションシーケンスの順番付け基準は異なるが、異なるブロックチェーンネットワークのパッキングノードのトランザクションプール内のトランザクションシーケンスが決定されている。同一のトランザクショングループ中のトランザクションは、トランザクションシーケンスの順番で実行されることにより、互に関連する複数のトランザクションでの二重支払いの発生等を防止する。
【0020】
非資産類契約グループの数が最大同時数Nを超える時、グループごとのトランザクション数に応じてソートを行い、トランザクション数のソートがNの前である非資産類契約グループ中のトランザクションを優先的に実行し、Nが正整数である。トランザクション数のソートがNの前である非資産類契約グループ中の1つ以上の非資産類契約グループを実行した後、トランザクション数のソートに応じて、次の非資産類契約グループ中のトランザクションを実行し続ける。トランザクショングループの間には並行実行されるが、ノードが配置されたハードウェア環境は制限され、最大同時数Nはハードウェア環境によって制限され、異なるノードの異なるハードウェア構成の場合、Nの値は異なるが、異なるハードウェア構成リソースを持つノードの場合、Nの値は決定され、例えば4、8、16、32又は64等である。トランザクション数が多い即ちNの前のトランザクショングループを優先的に処理する。
【0021】
表1に示すように、表1中の各トランザクションは、
図1に示す方法においてのステップS101とS102により保留されたトランザクションであると仮定し、その中で、トランザクションtx1-tx10はメインチェーン上のトランザクションであり、トランザクションtx11-tx15はパラレルチェーン1上のトランザクションであり、トランザクションtx16-tx20はパラレルチェーン2上のトランザクションである。トランザクション契約TR1、2はメインチェーン上の資産類契約であり、トランザクション契約TR3、4、5、6、10はメインチェーン上の非資産類契約であり、トランザクション契約TR11はパラレルチェーン1上の資産類契約であり、トランザクション契約TR13、14、15はパラレルチェーン1上の非資産類契約であり、トランザクション契約TR17、19はパラレルチェーン2上の資産類契約であり、トランザクション契約TR16、29はパラレルチェーン2上の非資産類契約である。
図1に示す方法においてのステップS103とS104を経た後、表2に示す。
【0022】
【0023】
【0024】
メインチェーンのトランザクションについては、資産類トランザクショングループを実行し、資産類トランザクショングループ中の各トランザクションは、トランザクションシーケンスの順序で実行され、資産類トランザクショングループを実行した後、各グループの非資産類トランザクショングループが並行実行され、トランザクションの実行が完了し、トランザクションの結果を組み合わせる。パラレルチェーンのトランザクションについては、ブロックを生成した後、各パラレルチェーンはそれぞれのパラレルチェーン上のトランザクションをプルし、まずトランザクション解析を行うことによりトランザクション契約を取得し、次に、資産類契約グループと非資産類契約グループに分けて、その中で、非資産類契約グループは、契約の種類に応じて分けられる。資産類契約グループを実行した後、各非資産類契約グループ内の各トランザクションを並行実行する。
実施例2
【0025】
1つ又は複数のプロセッサと、1つ又は複数のプログラムを格納するためのメモリとを含む装置であって、前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサによって実行される時、前記1つ又は複数のプロセッサに上記方法を実行させる。
【0026】
コンピュータプログラムを記憶した記憶媒体であって、該プログラムがプロセッサによって実行される時、上記実施例1に記載の方法を実現する。
【0027】
図2は、本発明の1つの実施例によって提供される装置の構造の概略図である。
【0028】
図2に示すように、一方、本出願は、1つ又は複数の中央処理装置(CPU)501を含む装置500も提供し、該装置500はリードオンリーメモリ(ROM)502に格納されたプログラム、又は記憶部508からランダムアクセスメモリ(RAM)503にロードされたプログラムに応じて、適当な各種動作や処理を行うことができる。RAM503には、装置500の操作に必要な各種プログラムやデータも格納されている。CPU501、ROM502及びRAM503は、バス504を介して互に接続されている。入出力(I/O)インターフェース505もバス504に接続されている。
【0029】
以下の部材はI/Oインターフェース505に接続され、即ち、キーボード、マウス等を含む入力部506、例えばカソードレイチューブ(CRT)、液晶ディスプレイ(LCD)等とスピーカ等を含む出力部507、ハードディスク等を含む記憶部508、及び例えばLANカード、モデム等のネットワークインターフェースカードを含む通信部509を有する。通信部509は、例えばインターネットのネットワークを介して通信処理を実行する。ドライバ510も必要に応じて、I/Oインターフェース505に接続されている。例えば磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等の取り外し可能な媒体511は必要に応じて、ドライバ510に装着され、そこから読み取ったコンピュータプログラムは、必要に応じて記憶部508にインストールされる。
【0030】
特に、本出願に開示される実施例によれば、上記実施例のいずれかに記載された方法は、コンピュータソフトウェアプログラムとして実現されてもよい。例えば、本出願に開示される実施例はコンピュータプログラム製品を含み、該製品は、機械可読媒体に有形に含まれたコンピュータプログラムを含み、前記コンピュータプログラムは、上記実施例のいずれかに記載された方法を実行するためのプログラムコードを含む。このような実施例において、該コンピュータプログラムは、通信部509を介してネットワークからダウンロードしてインストールされ、及び/又は取り外し可能な媒体511からインストールされてもよい。
【0031】
一方、本出願は、更にコンピュータ可読記憶媒体を提供し、該コンピュータ可読記憶媒体は、上記実施例の装置に含まれるコンピュータ可読記憶媒体であってもよいし、単独で存在する且つ装置に組み込まれていないコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体には1つ又は1つ以上のプログラムが格納されており、該プログラムは、1つ又は1つ以上のプロセッサによって本出願の方法を実行するためのものである。
【0032】
図面中のフローチャートとブロック図は、本発明の様々な実施例によるシステム、方法とコンピュータプログラム製品の実現可能なアーキテクチャ、機能と操作を示している。この点において、フローチャート又はブロック図中の各ブロックは、1つのモジュール、プログラムセグメント又はコードの一部を表してもよく、該モジュール、プログラムセグメント又はコードの一部は、所定のロジック機能を実現するための1つ又は複数の実行可能命令を含む。また、注意すべきことについて、いくつかの切替としての実現において、ブロックにマークされた機能は、図面にマークされた順番と異なる順番で発生してもよい。例えば、2つの連続して表されるブロックは、実際に基本的に並行実行されてもよく、逆の順番で実行される場合もあり、これは関連する機能によって決定される。なお、注意すべきことについて、ブロック図及び/又はフローチャート中の各ブロックと、ブロック図及び/又はフローチャート中のブロックの組み合わせは、所定の機能又は操作を実行する専用のハードウェアベースのシステムによって実現されてもよく、或いは専用のハードウェアとコンピュータ命令の組み合わせによって実現されてもよい。
【0033】
本出願の実施例に係るユニット又はモジュールは、ソフトウェアの方式によって実現されてもよいし、ハードウェアの方式によって実現されてもよい。前記ユニット又はモジュールは、プロセッサの中に設置されてもよく、例えば、各前記ユニットは、コンピュータ又はモバイルスマートデバイスの中に設置されたソフトウェアプログラムであってもよいし、別個に配置されたハードウェア装置であってもよい。その中で、これらのユニット又はモジュールの名称は、ある状況下で該ユニット又はモジュール自体を限定するものではない。
【0034】
以上の説明は、本出願の好ましい実施例及び使用される技術原理の説明に過ぎない。当業者は以下のことを理解すべきであり、即ち、本出願に係る発明の範囲は、上記技術的特徴の特定の組み合わせによって形成された技術案に限定されず、同時に本出願の構想から逸脱しない場合、上記技術的特徴又はその同等の特徴を任意に組み合わせることにより形成された他の技術案を含む。例えば、上記特徴と、本出願に開示された(しかしこれに限定されない)類似の機能を有する技術的特徴とを、互いに置き換えることにより形成された技術案を含む。
【国際調査報告】