JP7293314B2 - イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体 - Google Patents

イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体 Download PDF

Info

Publication number
JP7293314B2
JP7293314B2 JP2021186202A JP2021186202A JP7293314B2 JP 7293314 B2 JP7293314 B2 JP 7293314B2 JP 2021186202 A JP2021186202 A JP 2021186202A JP 2021186202 A JP2021186202 A JP 2021186202A JP 7293314 B2 JP7293314 B2 JP 7293314B2
Authority
JP
Japan
Prior art keywords
contract
data
request
virtual machine
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021186202A
Other languages
English (en)
Other versions
JP2022101479A (ja
Inventor
張磊
樊氷新
鄭旗
肖偉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2022101479A publication Critical patent/JP2022101479A/ja
Application granted granted Critical
Publication of JP7293314B2 publication Critical patent/JP7293314B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、コンピュータ技術分野に関し、特に、ブロックチェーン技術に関し、具体的には、イーサリアム仮想マシンに基づくトランザクション処理方法、装置、機器、プログラムおよび媒体に関する。
ブロックチェーンは、分散型データ記憶、ポイント・ツー・ポイント伝送、コンセンサスメカニズム、暗号化アルゴリズムといったコンピュータ技術の新規応用モードである。ブロックチェーンは、オープン性、透明性、および改ざん不可能性などの特性により、金融、トレーサビリティ、および保険などの分野にますます広く使用されている。
ブロックチェーン技術は、最初のビットコインシステムからイーサリアムまで継続的に開発されており、近年、より優れた技術を使用する多くのブロックチェーンシステム、例えば、Polkadot、CosmosなどのPoSコンセンサスメカニズムに基づく新規ブロックチェーン技術も続々と生まれている。ブロックチェーンアプリケーション分野において、技術は継続的にアップグレードし更新しているが、イーサリアム技術に基づく生態環境は、すでにある程度の規模を有しており、ブロックチェーンアプリケーションの多くがイーサリアムのスマートコントラクトに基づいて構築されたものである。アプリケーションの開発者も使用者もある程度でイーサリアムのスマートコントラクトの使用に慣れている。
しかしながら、技術の発展に伴い、イーサリアムには、例えば、非効率的なコンセンサスアルゴリズムなどの問題により、真の大規模な商用化シナリオをサポートすることに対して、その取引性能が不足になるなど、いくつかの欠陥が露呈した。イーサリアムの生態効果に鑑み、イーサリアムをそのまま放棄することよりも、イーサリアムおよび別のブロックチェーン技術と互換性のあるシステムの登場がさらに期待される。イーサリアムスマートコントラクトは、イーサリアム仮想マシン(Ethereum Virtual Machine、EVM)に基づいて実現されることから、イーサリアムと別のブロックチェーン技術との互換性を実現するためには、イーサリアム仮想マシンを別のブロックチェーンシステムへ移植する課題を解決しなければならない。
本発明は、イーサリアム仮想マシンに基づくトランザクション処理方法、装置、機器、プログラムおよび媒体を提供する。
本発明に係る一態様によれば、ブロックチェーンノードに適用される、イーサリアム仮想マシンに基づくトランザクション処理方法であって、
ブロックチェーンノードで稼働中の仮想マシンインスタンスにおいて、処理待ちトランザクション要求を取得することと、
前記仮想マシンインスタンスは、前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送することと、
前記インタフェースモジュールは、前記データアクセス要求に応じて命令変換を行うことで、前記データアクセス要求機能に対応するブロックチェーンアクセス用インタフェースを確定することと、
前記インタフェースモジュールは、前記ブロックチェーンのデータストレージスペースに対して、前記ブロックチェーンアクセス用インタフェースを呼び出して、前記アクセス対象データに対するアクセス操作を行い、アクセス結果を前記仮想マシンインスタンスにフィードバックすることと、を含み、
前記データアクセス要求にデータ読取要求及び/又はデータ書込要求が含まれる、
イーサリアム仮想マシンに基づくトランザクション処理方法を提供する。
本発明に係る別の態様によれば、ブロックチェーンノードに適用される、イーサリアム仮想マシンに基づくトランザクション処理装置であって、
ブロックチェーンノードで稼働中の仮想マシンインスタンスにおいて、処理待ちトランザクション要求を取得するための、処理待ちトランザクション要求取得モジュールと、
前記仮想マシンインスタンスにおいて、前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送するための、データアクセス要求発生/転送モジュールと、
前記インタフェースモジュールにおいて、前記データアクセス要求に応じて命令変換を行うことで、前記データアクセス要求機能に対応するブロックチェーンアクセス用インタフェースを確定するための、命令変換モジュールと、
前記インタフェースモジュールにおいて、前記ブロックチェーンのデータストレージスペースに対して、前記ブロックチェーンアクセス用インタフェースを呼び出して、前記アクセス対象データに対するアクセス操作を行い、アクセス結果を前記仮想マシンインスタンスにフィードバックするための、ブロックチェーンアクセス用インタフェース呼出モジュールと、を備え、
前記データアクセス要求に、データ読取要求及び/又はデータ書込要求が含まれ、
イーサリアム仮想マシンに基づくトランザクション処理装置を提供する。
本発明に係る別の態様によれば、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信接続される記憶装置と、を備え、
前記記憶装置に、前記少なくとも1つのプロセッサにより実行できる命令が記憶されており、
前記命令は、前記少なくとも1つのプロセッサが本発明の実施例のいずれか1項に記載のイーサリアム仮想マシンのトランザクション処理方法を実現可能であるように、前記少なくとも1つのプロセッサにより実行される、電子機器を提供する。
本発明に係る一態様によれば、本発明の実施例のいずれか1項に記載のイーサリアム仮想マシンのトランザクション処理方法をコンピュータに実行させるためのコンピュータ命令が記憶されている、非瞬時性コンピュータ可読記憶媒体を提供する。
本発明に係る別の態様によれば、
コンピュータプログラムを備え、
前記コンピュータプログラムは、プロセッサより実行される際、本発明の実施例のいずれか1項に記載のイーサリアム仮想マシンのトランザクション処理方法を実現する、コンピュータプログラム製品を提供する。
本発明に係る技術イーサリアム仮想マシンを別のブロックチェーンシステムへ移植する課題を解決し、イーサリアムと別のブロックチェーン技術との互換性を向上させた。
なお、この部分の説明内容は、本発明の実施例の鍵又は重要な構成を明示することを意図するものではなく、本発明の範囲を限定することを意図するものでもないことを理解すべきである。本発明の別の構成については、以下の明細書を通して容易に理解されるであろう。
図面は、本技術案がよりよく理解されるように提供され、本発明を限定するものではない。
本発明の実施例に係るイーサリアム仮想マシンに基づくトランザクション処理方法の概略図である。 本発明の実施例に係る別のイーサリアム仮想マシンに基づくトランザクション処理方法の概略図である。 本発明の実施例に係るさらなるイーサリアム仮想マシンに基づくトランザクション処理方法の概略図である。 本発明の実施例に係るイーサリアム仮想マシンに基づくトランザクション処理フローの概略図である。 本発明の実施例に係るイーサリアム仮想マシンに基づくトランザクション処理装置の模式図である。 本発明の実施例に係るイーサリアム仮想マシンに基づくトランザクション処理方法を実現するための電子機器のブロック図である。
以下、図面を参照しながら、本発明の例示的な実施例について説明する。この内容には、理解を助けるための本発明の実施例の様々な詳細が含まれているが、単なる例示的なものと見なされるべきである。したがって、当業者なら、本発明の範囲および精神から逸脱することなく、本明細書に記載の実施例に対して様々な変更および修正を実行することができることを認識すべきである。同様に、はっきりとよくわかるように、以下の説明では公知の機能と構造についての説明を省略した。
ブロックチェーンは、分散型データ記憶、ポイント・ツー・ポイント転送、コンセンサスメカニズム、暗号化アルゴリズムなどのコンピュータ技術の新規応用モードである。最初に登場したブロックチェーン(Blockchain)は、ビットコインの重要な概念として、本質的には分散化されたデータライブラリであり、また、ビットコインの基盤技術として、暗号化形態を使用して関連付けて生成される一連のデータブロックとなって、それぞれのデータブロックに1ロットのビットコインネットワーク上の取引情報が含まれ、その情報の有効性を検証し次のブロックを生成することに用いられる。ブロックチェーンは、オープン性、透明性、および改ざん不可能性などの特性により、金融、トレーサビリティ、および保険などの分野にますます広く使用され、特に、金融分野において、各金融機関間の効率的な協力を実現できる。
ブロックチェーン技術は、ビットコインを代表とするデジタル通貨時代に最初に登場した。ブロックチェーン技術の継続的な発展に伴い、デジタル通貨とスマートコントラクトとを組み合わせるイーサリアムが登場し、ブロックチェーンは従来の「グローバル帳簿」から「グローバルコンピュータ」にアップグレードし、市場全体を分散化させた。イーサリアムは、デジタル通貨とスマートコントラクトとを組み合わせ、金融分野のよりも幅広いシナリオおよびプロセスを最適化したアプリケーションであり、アップグレードされた一番大きなところはスマートコントラクトである。イーサリアムは、アプリケーションプラットフォームに位置づけ、このプラットフォームにおいて、スマートコントラクトをアップロードし実行でき、このコントラクトの実行が有効的に保証できる。
真の大規模な商用化シナリオは、いつも効率的なコンセンサスアルゴリズムのサポートが必要であるが、ビットコインおよびイーサリアムなどの早期ブロックチェーン技術のコンセンサスにより、真の大規模な商用化シナリオをサポートすることに対して、その取引性能が不足になる。しかしながら、ブロックチェーンのアプリケーション分野において、イーサリアムの生態系は、最高の地位を独占しており、多くのブロックチェーンアプリケーションはいずれもイーサリアム生態系に依存して存在し、ゲーム分野のクリプトキティ(CryptoKitties)と、金融分野のDeFiプロジェクトDAIとのいずれもイーサリアムのスマートコントラクトに基づいて構築される。
イーサリアム的仮想マシン(EVM、Ethereum Virtual Machine)とは、イーサリアムのスマートコントラクトの実行を特定用途とする仮想マシンであり、イーサリアムのスマートコントラクトは、solidity、viperなどの言語によりコンパイル可能である。イーサリアムのスマートコントラクトおよびEVMは、ブロックチェーン分野に極めて広く適用され、ブロックチェーンのスマートコントラクト分野のデファクト標準の1つとなった。
イーサリアムに基づくオリジナルコードが変更され、イーサリアムEVMを別のブロックチェーンシステムに使用する場合、イーサリアムEVMと、ブロックチェーンのデータ記憶形態およびアクセス形態との間に固有のバインディングが存在するはずであり、これにより、移植方案は汎用性がなくなり、移植後のEVMとチェーン自体とのバインディングが多くて、別のチェーンのイーサリアム仮想マシンへの移植に用いることが難しい。
本発明は、イーサリアム仮想マシンに基づくトランザクション処理方法を提供し、モジュール化デザインのアィデアを組込み、イーサリアム仮想マシンをモジュールとしてモジュール化したブロックチェーンシステムに移植し、例えば、XuperChain、Cosmosなど、モジュール化デザインのアィデアを導入したブロックチェーンは、ブロックデータおよび実行ロジックを分割する。本発明の実施例に係る方法は、イーサリアム自体の技術生態系および応用生態系を十分に利用できるだけではなく、様々なイーサリアム生態系の自律分散型アプリケーション(Decentralized Applications、DAPP)がアプリケーション移植を実行することを極めて便利にし、別のブロックチェーンシステムの技術強みを深掘りして発揮できる。
図1は、本発明の実施例に係るイーサリアム仮想マシンに基づくトランザクション処理方法の概略図である。本実施例は、イーサリアム仮想マシンを別のブロックチェーンシステムに移植してトランザクション処理を行う状況に適用可能であり、これにより、イーサリアム仮想マシンを別のブロックチェーンシステムへ移植する課題を解決し、イーサリアムと非イーサリアムの別のブロックチェーン技術との互換性を向上させる。本実施例で開示されるイーサリアム仮想マシンに基づくトランザクション処理方法は、イーサリアム仮想マシンに基づくトランザクション処理装置により実行可能であり、当該装置は、ソフトウェア及び/又はハードウェアの形態により実現可能であり、コンピューティングおよび記憶機能が具備される電子機器に配置可能であり、当該電子機器はブロックチェーンノードである。ブロックチェーンネットワークは、複数のブロックチェーンノードから構成され、且つ分散的に稼働するネットワークである。本発明の実施例に係る方法はいずれか1つのブロックチェーンノードにより実行可能である。
図1を参照すると、本実施例に係るイーサリアム仮想マシンに基づくトランザクション処理方法は、以下のS110、S120、S130およびS140を含む。
S110において、ブロックチェーンノードで稼働中の仮想マシンインスタンスにおいて、処理待ちトランザクション要求を取得する。
ここで、ブロックチェーンノードに仮想マシンプログラムが配置され、稼働ニーズがある場合、1つ又は複数の仮想マシンインスタンスを生成し、イーサリアム仮想マシンに基づく命令集合に用いて、スマートコントラクトのコンピューティングロジックを実行できる。
処理待ちトランザクション要求は、データオンブロックチェーンに対して操作を行うために、別のブロックチェーンノードから送信されたトランザクション要求、又は、ユーザがローカルノードで提出したトランザクション要求である。本発明の実施例において、トランザクション要求は、ブロックチェーンシステムでサポート可能な任意のトランザクション要求であってもよく、業務トランザクション要求であってもよく、管理トランザクション要求などであってもよい。処理待ちトランザクション要求は、データオンブロックチェーンに対するデータ読取要求又はデータ書込要求などであってもよい。
ブロックノードは、処理待ちトランザクション要求を取得した後に、仮想マシンインスタンスを稼働することで、当該処理待ちトランザクション要求を実行する。
S120において、前記仮想マシンインスタンスは、前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送し、前記データアクセス要求にデータ読取要求及び/又はデータ書込要求が含まれる。
本発明の実施例において、仮想マシンを移植する目標ブロックチェーンシステム自体がブロックチェーンデータを読み取る仮想マシン命令をサポートしない場合があることから、仮想マシンインスタンスの命令で表されるデータアクセス要求を解析し変換するためには、ブロックチェーンデータをアクセスできるインタフェースが形成されるように、インタフェースモジュールが設置されている。
仮想マシンインスタンスは、一般的に、処理待ちトランザクション要求を取得した後および実行を始動する過程において、ブロックチェーンデータに対する読取/書込アクセス要求を発生させ得る。ブロックチェーンシステムには、データの記憶に用いられるデータストレージスペースが設置されている。データは、オンチェーンデータと、ローカルデータとに区分され、オンチェーンデータとは、ブロックに追加して各々のノードに記憶させるデータを指す。ローカルデータは、それぞれのノードにおいて、オンチェーンデータのコンテンツやローカルのインデックスのニーズに応じて、ノードのローカルに記憶させるデータであり、それぞれのノードに記憶されるローカルデータが異なる場合がある。アクセス対象データとは、処理待ちトランザクション要求に関するデータを指し、オンチェーンデータである場合もあり、ローカルデータである場合もある。データアクセス要求は、アクセス対象データに対するアクセスの要求に用いられる。
データアクセス要求には、データ読取要求及び/又はデータ書込要求が含まれる。データ読取要求とは、ブロックチェーンのデータストレージスペースからアクセス対象データを読み取ることを指し、データ書込要求とは、アクセス対象データをブロックチェーンのデータストレージスペースに書き込むことを指す。
イーサリアム仮想マシンインスタンスに設定された命令集合があり、処理待ちトランザクション要求を実行する過程において、データ読取/書込命令を発生させることで、データアクセス要求を表す。
S130において、前記インタフェースモジュールは、前記データアクセス要求に応じて命令変換を行うことで、前記データアクセス要求機能に対応するブロックチェーンアクセス用インタフェースを確定する。
インタフェースモジュールは、データアクセス要求に対して命令の解析および変換を行うことに用いられ、データストレージスペース内のデータに対して様々な読取/書込機能を実現するために複数のブロックチェーンアクセス用インタフェースが設置されている。実は、インタフェースは、1セグメントのプログラムであり、1回又は複数回のデータの読取/書込、コンピューティング等の処理を実行可能であり、所定のプログラムに従って別のインタフェースを呼び出すこともできる。
仮想マシンインスタンスで発生されるデータアクセス要求は、イーサリアム仮想マシン命令形態であるため、そのままでは、イーサリアムをサポートしないデータ記憶システムによって識別できず、インタフェースモジュールを介してデータアクセス命令の命令変換を行わなければならない。
データアクセス要求に応じて、オンチェーンデータの操作に相違があり、この相違は、データアクセス要求に対応する機能上の相違にて現れることから、様々なデータアクセス要求に対応するブロックチェーンアクセス用インタフェースにも相違がある。具体的に、データアクセス要求において、データ読取要求とデータ書込要求とのそれぞれに対応するブロックチェーンアクセス用インタフェースが異なる。
S140において、前記インタフェースモジュールは、前記ブロックチェーンのデータストレージスペースに対して、前記ブロックチェーンアクセス用インタフェースを呼び出して、前記アクセス対象データに対するアクセス操作を行い、アクセス結果を前記仮想マシンインスタンスにフィードバックする。
ここで、アクセス対象データは、ブロックチェーンのデータストレージスペース内に存在する。代替的に、データストレージスペースでは、様々なデータ構造をサポート可能であり、データ構造は、ブロックチェーンシステム自体の設置によって決定される。例えば、ブロックチェーンシステムには、一般的に、アカウント、ログ又はトランザクションデータ、スマートコントラクトなどが設置される必要があり、さらに、権限データなどが設置されてもよい。アクセス対象データは、アクセスためのいずれか1種のデータ構造であってもよい。
代替的な実施例において、前記アクセス対象データに、アカウントデータと、コントラクトデータとが含まれる。
分かるように、イーサリアムにおいて、典型的には、外部アカウントと、コントラクトアカウントとが設置される。外部アカウントとは、鍵によって制御されるアカウントを指す。コントラクトアカウントとは、コントラクトコードによって制御されるアカウントを指す。2タイプのアカウントとも、1つのアカウントとしての基本的なオンチェーンデータが備えられる。コントラクトアカウントにおけるコントラクトデータとは、スマートコントラクトに関連するデータを指す。外部アカウントにはコントラクトデータが含まれていない。コントラクトアカウントと外部アカウントは、両方とも、ブロックチェーンのデータストレージスペースに記憶される。
代替的に、ブロックチェーンのデータストレージスペースに、外部アカウントにおけるアカウントデータおよびコントラクトアカウントにおけるアカウントデータを記憶するためのアカウントスペースと、コントラクトアカウントにおけるコントラクトデータを記憶するためのコントラクトスペースと、が含まれ、前記アクセス対象データには、アカウントデータ及び/又はコントラクトデータが含まれる。
イーサリアム仮想マシンを別のブロックチェーンシステムに移植する場合、もし移植先のブロックチェーンシステムにおいてスマートコントラクトコードが含まれるコントラクトアカウントをサポートしないと、異なる2タイプのデータを分離記憶させるためには、データストレージスペースにおいてアカウントスペースと、コントラクトスペースとを区分して設置することが好ましい。
イーサリアムにおいて、外部アカウントと、コントラクトアカウントとは、いずれにもアカウントデータが存在しており、外部アカウントと、コントラクトアカウントとの相違点として、コントラクトアカウントには、アカウントデータに加えて、コントラクトデータも存在することから、アカウントデータと、コントラクトデータとを分離記憶させるためには、外部アカウントおよびコントラクトアカウントにおけるアカウントデータをアカウントスペースに記憶させ、コントラクトアカウントにおけるコントラクトデータをコントラクトペースに別途に記憶させる。
代替的な実施例において、前記ブロックチェーンのデータストレージスペースは、少なくとも2種のアカウントのデータ操作をサポートすることに用いられ、各前記アカウントのアカウントデータに使用されるデータ構造が同じである。
仮想マシンインスタンスがトランザクションデータおよび処理待ちトランザクション要求を実行する過程において、ブロックチェーンのデータストレージスペースにおけるデータに対してデータ読取要求及び/又はデータ書込要求を発生させる。具体的に、ブロックチェーンのデータストレージスペースにおける外部アカウントと、コントラクトアカウントとのデータに対して、データアクセス操作を行う。データストレージスペースにおける外部アカウント及びコントラクトアカウントに利用されるデータ構造同じである。代替的に、外部アカウントと、コントラクトアカウントとは、両方とも、アカウントタイプのデータ構造で記憶を行う。
代替的な実施例において、前記アカウントデータには、アカウント識別子と、取引のシーケンス番号と、アカウント公開鍵と、およびトークンとが含まれる。
例示的に、ブロックチェーンのデータストレージスペースにおいて、以下のデータ構造で外部アカウントおよびコントラクトアカウントにおけるアカウントデータを記憶させてもよい。
type AccountData struct {
Address string
Sequence uint
Pubkey string
Balance uint }
ここで、Addressは、アカウント識別子を表し、Sequenceは取引のシーケンス番号を表し、Pubkeyはアカウント公開鍵を表し、Balanceはトークンを表す。ここで、前記アカウント識別子はアカウントデータのデータ呼び出し識別子であり、アカウント識別子はアカウントアドレス又はアカウント名称であってもよく、異なるアカウントデータは異なるアカウント識別子を有する。取引のシーケンス番号は、取引済み回数のデータを記録することに用いられる。アカウント公開鍵とは、暗号化アカウントに用いられる公開鍵を指す。トークンとはデジタル形態で存在する権利証を指し、トークンが代表するものは、固有および内在する価値であり、デジタル化可能なあらゆる権利証を代表することができる。例示的に、トークンは、通貨、債券、勘定科目、所有権又は資格などの権利証であってもよい。
コントラクトアカウントにおけるアカウントデータと、外部アカウントにおけるアカウントデータとが同じデータ構造を有することは、ブロックチェーン間のデータ操作の難易度を低減させるとともに、ブロックチェーンへの移植の難易度を低減させた。
これにより、アカウントデータと、コントラクトデータとの分離記憶を実現し、異なるブロックチェーンシステムに記憶されるデータ構造の互換性を向上させた。
インタフェースモジュールは、ブロックチェーンアクセス用インタフェースを呼び出すことで、ブロックチェーンのアカウントスペースとコントラクトスペースとのアクセス対象データに対するアクセス操作を実現でき、即ち、アカウントデータおよびコントラクトデータに対する読み取り操作及び/又は書き込み操作を実現し、アクセス対象データに対応するアクセス結果が得られる。インタフェースモジュールは、アクセス結果を仮想マシンインスタンスにフィードバックする。アクセス結果は、具体的な読み取られたデータであってもよく、アクセス成否に関するアクセスのステータスをフィードバックしてもよい。
もちろん、イーサリアム仮想マシンが異なるブロックチェーンシステムへ移植された場合、様々な異なるブロックチェーンシステムにはそれぞれ異なるデータ記憶構造およびデータ記憶形態が使用されており、それらを組み合わせて、イーサリアム仮想マシンの記憶形態に基づいてブロックチェーンシステムの記憶形態に対して調整し互換を実現でき、又は、インタフェースモジュールの変換によって、イーサリアム仮想マシンのデータアクセス形態と、ブロックチェーンシステムのデータ記憶形態とをマッチングさせ、即ち、ブロックチェーンシステムのデータ記憶構造やアドレス指定方式などに従ってデータアクセスを行う。具体的に、アクセス用インタフェースの設計は、ブロックチェーンシステムのデータ記憶形態に基づいて設定できることは、当業者であれば理解されるだろう。
本発明の実施例に係る技術案によれば、イーサリアム仮想マシンを別のブロックチェーンシステムへ移植し、トランザクション処理を行う場合、インタフェースモジュールを構築し、インタフェースモジュールによってイーサリアム仮想マシン命令形態のデータアクセス要求に対して命令変換を行い、前記データアクセス要求機能に対応するブロックチェーンアクセス用インタフェースを確定することで、異機種のデータストレージスペースに対してアクセスを行うことができる。これにより、ブロックチェーンをオープン化/モジュール化させ、従って、イーサリアム仮想マシンを別のブロックチェーンシステムへ移植する難易度を低減させた。本発明の実施例は、インタフェースモジュールを構築することで、イーサリアム仮想マシンを別のブロックチェーンシステムへ移植する課題を解決し、イーサリアムと別のブロックチェーン技術との互換性を向上させた。
図2は、本発明の実施例に係る更なるイーサリアム仮想マシンに基づくトランザクション処理方法の概略図であり、本実施例は、上述した実施例を基礎として提供された代替的な方案である。具体的には、前記インタフェースモジュールは、前記データアクセス要求に応じて命令変換を行うことで、前記データアクセス要求機能に対応するブロックチェーンアクセス用インタフェースを確定することを細分化したものである。
図2を参照すると、本実施例に係るイーサリアム仮想マシンに基づくトランザクション処理方法は、以下のS210、S220、S230、S240およびS250を含む。
S210において、ブロックチェーンノードで稼働中の仮想マシンインスタンスにおいて、処理待ちトランザクション要求を取得する。
S220において、前記仮想マシンインスタンスは、前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送する。前記データアクセス要求に、データ読取要求及び/又はデータ書込要求が含まれる。
S230において、前記インタフェースモジュールは、前記データアクセス要求の所属仮想マシン命令と命令引数を識別する。
ここで、仮想マシンの命令および命令引数とは、仮想マシンインスタンスが処理待ちトランザクション要求を実行する時に生成されるものを指す。命令引数は、即ち、仮想マシン命令に含まれる引数変数である。仮想マシン命令を実行することで、アクセス対象データに対するアクセス操作を実現できる。アクセス対象データには、アカウントデータとコントラクトデータとが含まれる。従って、データアクセス要求は、即ち、アカウントデータとコントラクトデータに対する読取要求及び/又は書込要求である。
イーサリアムスマートコントラクトは、ゲス(Go-Ethereum、Geth)によって開発されるものであることから、Gethは、イーサリアムのgo言語バージョンのクライアントとして、イーサリアムスマートコントラクトの開発に必須のツールである。イーサリアムにおいては、アカウントの管理に、Gethから提供されるアカウント命令の操作命令がよく使用される。例示的に、データアクセス要求に対応する仮想マシンの命令および命令引数は、アカウントリスト命令のgeth account listであってもよく、アカウント更新命令のgeth account update又はアカウント生成命令のpersonal.newAccount(‘Your Password’)であってもよい。データアクセス要求の所属仮想マシンの命令および命令引数の具体的コンテンツについては、実際の状況に応じて確定され、本明細書において限定されるものではない。
S240において、前記インタフェースモジュールは、プリセットされた仮想マシン命令およびインタフェースマッピング関係に基づいて、前記データアクセス要求に対応するブロックチェーンアクセス用インタフェースを確定する。
ここで、インタフェースマッピング関係とは、仮想マシン命令とブロックチェーンアクセス用インタフェースとの対応関係を指す。インタフェースマッピング関係は、ユーザが実際の状況に応じてインタフェースモジュールにプリセットしたものである。
データアクセス要求と仮想マシン命令とは直接関連していることから、インタフェースマッピング関係が既知であれば、仮想マシン命令およびインタフェースマッピング関係に基づいてデータアクセス要求に対応するブロックチェーンアクセス用インタフェースを確定し得る。
冗長なマッピング関係が存在することを回避するために、代替的な実施例において、1つ又は複数の仮想マシン命令と1つのブロックチェーンアクセス用インタフェースとがインタフェースマッピング関係を有する。
即ち、1つのブロックチェーンアクセス用インタフェースは、少なくとも1つの仮想マシン命令に対応する。異なる仮想マシン命令に同一のブロックチェーンアクセス用インタフェースが対応してもよい。仮想マシン命令と1つのブロックチェーンアクセス用インタフェースとのインタフェースマッピング関係は、本質的に、仮想マシン命令に対応するアクセス対象データとブロックチェーンアクセス用インタフェースに対応するデータストレージスペースにおけるデータとの対応関係である。
S250において、前記インタフェースモジュールは、前記ブロックチェーンのデータストレージスペースに対して、前記ブロックチェーンアクセス用インタフェースを呼び出して、前記アクセス対象データに対するアクセス操作を行い、アクセス結果を前記仮想マシンインスタンスにフィードバックする。
アカウントに対する操作には、往々にして複数のステップを含める必要がある。代替的な実施例において、前記ブロックチェーンアクセス用インタフェースは、別のブロックチェーンアクセス用インタフェースを呼び出す機能を有する。例示的に、アカウントに対する操作はコントラクトアカウントを生成することであり、新規生成されるコントラクトアカウントを使用する必要があることから、往々にして新規生成されるコントラクトアカウントに対して初期化を行う必要がある。したがって、インタフェースモジュールがコントラクトアカウント生成インタフェースを呼び出し、コントラクトアカウントを生成すると、コントラクトアカウント生成インタフェースはコントラクトバイトコード初期化インタフェースを呼び出し、コントラクトスペースにおけるバイトコードに対して初期化を行う。
本発明の実施例は、インタフェースモジュールによって、マッピング関係に基づいて、データアクセス要求に対する命令変換を行い、前記データアクセス要求機能に対応するブロックチェーンアクセス用インタフェースを確定し、ブロックチェーンをオープン化/モジュール化させ、異なるブロックチェーン間のデータ操作の難易度を低減できる。
本実施例は、上述した実施例を基礎として提供された代替的な方案である。具体的には、上述した実施例に係るブロックチェーンアクセス用インタフェースの種類と機能を紹介した。
前記ブロックチェーンアクセス用インタフェースのタイプには、
アカウントデータに対するアクセスに用いられるアカウントアクセス用インタフェースと、
コントラクトアカウントの操作に用いられるコントラクト操作用インタフェースと、
コントラクトデータの更新に用いられる記憶アクセス用インタフェースと、が含まれる。
前記ブロックチェーンアクセス用インタフェースのうちのブロックチェーン読取インタフェースには、
コントラクトデータにおけるコントラクト内変数を読み取るためのコントラクト内変数読取インタフェースと、
アカウントデータにおけるアカウントトークン残額を読み取るためのアカウントトークン残額読取インタフェースと、
コントラクトアカウントにおけるコントラクトバイトコードを読み取るためのコントラクトバイトコード読取インタフェースと、
アカウントデータにおける取引のシーケンス番号を読み取るためのアカウントの取引シーケンス番号読取インタフェースと、
オンチェーンに記憶されるスマートコントラクトを照会するためのオンチェーンコントラクト照会インタフェースと、
オンチェーンに記憶されるアカウント情報を照会するためのオンチェーンアカウント照会インタフェースと、
ブロック高によってブロックハッシュ(Hash)を読み取るためのブロック高によるブロックハッシュ読取インタフェースと、のうちの少なくとも1項が含まれる。
ブロックチェーンは、1つの垂直なスタック(stack)によく見なされ、第1のブロックをスタック底部の初めのブロックとし、次の一つ一つのブロックは、前のブロックの上に放置されることから、ブロック高は、ブロックと初めのブロックとの距離を表す。ブロック高をブロック識別子として、具体なブロックを確定し得る。ブロックハッシュは、ブロックのマスタ識別子として、SHA256アルゴリズムによってブロックヘッドに対して二次ハッシュコンピューティングを行うことで得られた32バイトのハッシュ値であり、ブロックハッシュ値とも呼ばれ、ブロックのデジタル指紋である。
代替的な実施例において、前記ブロックチェーンアクセス用インタフェースのうちのブロックチェーン書込インタフェースには、
コントラクトスペースにコントラクトアカウントを生成するためのコントラクトアカウント生成インタフェースと、
コントラクトスペースにおけるバイトコードを初期化するためのコントラクトバイトコード初期化インタフェースと、
コントラクトスペースにおけるコントラクトアカウントを削除するためのコントラクトアカウント削除インタフェースと、
コントラクト内変数を記憶するためのコントラクト内変数記憶インタフェースと、
アカウント残額を追加するためのアカウント残額追加インタフェースと、
アカウント残額を減少するためのアカウント残額減少インタフェースと、のうちの少なくとも1項が含まれる。
上記インタフェースにおいて、アカウントアクセス用インタフェースには、
読取インタフェースであるアカウントトークン残額読取インタフェース、アカウントの取引のシーケンス番号読取インタフェース、およびオンチェーンアカウント照会インタフェースと、
書込インタフェースであるアカウント残額追加インタフェース、およびアカウント残額減少インタフェースと、が含まれ、
コントラクトアクセス用インタフェースには、
読取インタフェースであるコントラクトバイトコード読取インタフェース、オンチェーンコントラクト照会インタフェースおよびブロック高によってブロックハッシュを読み取る読取インタフェースと、
書込インタフェースであるコントラクトアカウント生成インタフェース、コントラクトバイトコード初期化インタフェース、およびコントラクトアカウント削除インタフェースと、が含まれ、
記憶アクセス用インタフェースには、
読取インタフェースであるコントラクト内変数読取インタフェースと、
書込インタフェースであるコントラクト内変数記憶インタフェースと、が含まれる。
本発明の実施例において、アクセス対象データのブロックチェーンが記憶されているブロックチェーンに様々なタイプの数多くのブロックチェーンアクセス用インタフェースを設置することで、稼働中の仮想マシンインスタンスのブロックチェーンノードがトランザクション要求を処理するために便宜を与え、トランザクション要求の処理にサポートする仮想マシンインスタンスのブロックチェーンノードのカバー範囲を拡大した。
ここで、1つの処理待ちトランザクション要求を処理する過程において、各部分から複数のデータアクセス要求が発生する可能性がある。
例えば、処理待ちトランザクション要求を処理することから発生されるデータアクセス要求には、コントラクトアカウント生成要求と、コントラクトバイトコード初期化要求と、コントラクトアカウント削除要求と、コントラクト内変数記憶要求と、アカウント残額追加要求と、アカウント残額減少要求と、コントラクト内変数読取要求と、アカウントトークン残額読取要求と、コントラクトバイトコード読取要求と、アカウント的取引のシーケンス番号読取要求と、オンチェーンコントラクト照会要求と、オンチェーンアカウント照会要求と、及びブロック高によってブロックハッシュを読み取る読取要求等、のうちの少なくとも1項が含まれる。
以下、例を挙げながら、1回の一般業務トランザクション要求の処理過程で発生するデータアクセス要求を紹介する。
その一はデータアクセス要求がオンチェーンコントラクト照会要求およびオンチェーンアカウント照会要求である場合、
前記仮想マシンインスタンスは、処理待ちトランザクション要求を取得した後、前記処理待ちトランザクション要求からコントラクトの呼び出し側の識別子および呼び出し待ちコントラクトの識別子を取得する。
ここで、コントラクトの呼び出し側の識別子は、スマートコントラクト呼出側の身分情報を標識することに用いられ、コントラクトの呼び出し側の識別子はアカウント識別子であってもよい。呼び出し待ちコントラクトの識別子は、呼び出されるスマートコントラクトの情報を標識することに用いられる。代替的に、呼び出し待ちコントラクトの識別子は、コントラクトアドレス又はアカウント識別子であってもよい。
前記仮想マシンインスタンスは、前記コントラクトの呼び出し側の識別子および呼び出し待ちコントラクトの識別子に基づいて、呼び出し側のオンチェーンアカウント照会要求およびオンチェーンコントラクト照会要求をそれぞれ発生させ、前記インタフェースモジュールに転送する。
処理待ちトランザクション要求の有効性を確定するために、仮想マシンインスタンスは、コントラクトの呼び出し側の識別子および呼び出し待ちコントラクトの識別子により標識されたアカウントおよびコントラクトの存否について照会する。したがって、仮想マシンインスタンスは、前記コントラクトの呼び出し側の識別子および呼び出し待ちコントラクトの識別子に基づいて、呼び出し側のオンチェーンアカウント照会要求およびオンチェーンコントラクト照会要求をそれぞれ発生させ、仮想マシンインスタンスで生成されたオンチェーンアカウント照会要求およびオンチェーンコントラクト照会要求をインタフェースモジュールに転送する。ここで、オンチェーンアカウント照会要求は、コントラクトの呼び出し側の識別子により標識されるアカウントの存否について照会することに用いられる。したがって、オンチェーンコントラクト照会要求は、呼び出し待ちコントラクトの識別子により標識されるコントラクトの存否について照会することに用いられる。
前記インタフェースモジュールは、前記データアクセス要求に応じて命令変換を行い、オンチェーンアカウント照会要求に対応するオンチェーンアカウント照会インタフェースと、オンチェーンコントラクト照会要求に対応するオンチェーンコントラクト照会インタフェースと、を確定する。
代替的に、アカウントスペースとコントラクトスペースのそれぞれにアカウントデータとコントラクトデータとをそれぞれ記憶させる場合、前記インタフェースモジュールは、オンチェーンにコントラクト呼び出し側アカウントの存否について照会するために、前記ブロックチェーンのアカウントスペースに対して、前記オンチェーンアカウント照会インタフェースを呼び出す。
インタフェースモジュールは、オンチェーンアカウント照会要求を受信した場合、オンチェーンアカウント照会要求内のコントラクトの呼び出し側の識別子に基づいて、コントラクトの呼び出し側の識別子に対応するアカウントスペースを確定し、オンチェーンにコントラクト呼び出し側アカウントの存否について照会するために、前記ブロックチェーンのアカウントスペースに対して、前記オンチェーンアカウント照会インタフェースを呼び出す。
前記インタフェースモジュールは、オンチェーンに呼び出し待ちコントラクトの存否について照会するために、前記ブロックチェーンのコントラクトスペースに対して、オンチェーンコントラクト照会インタフェースを呼び出す。
前記インタフェースモジュールは、オンチェーンコントラクト照会要求を受信した場合、オンチェーンコントラクト照会要求内の呼び出し待ちコントラクトの識別子に基づいて、呼び出し待ちコントラクトの識別子に対応するコントラクトスペースを確定し、オンチェーンに呼び出し待ちコントラクトの存否について照会するために、前記ブロックチェーンのコントラクトスペースに対して、前記オンチェーンコントラクト照会インタフェースを呼び出す。
前記インタフェースモジュールは、コントラクト呼び出し側アカウントおよび呼び出し待ちコントラクトに対する照会結果を前記仮想マシンインスタンスにフィードバックする。
ここで、照会結果には、コントラクト呼び出し側のアカウントの存否状況、呼び出し待ちコントラクトの存否状況、および前記両状況の組み合わせが含まれる。インタフェースモジュールは、照会結果を仮想マシンインスタンスにフィードバックする。照会結果が、コントラクト呼び出し側アカウントと、呼び出し待ちコントラクトとのうちの1つが存在しない、又は、いずれも存在しないである場合、仮想マシンインスタンスは、当該処理待ちトランザクション要求に対して、エラー情報をフィードバックする。
その二、データアクセス要求がコントラクトバイトコード読取要求である場合、
前記仮想マシンインスタンスは、インタフェースモジュールからフィードバックされた照会結果が、オンチェーンアカウントおよびオンチェーンコントラクトが存在するという結果であると、前記呼び出し待ちコントラクトの識別子に基づいてコントラクトバイトコード読取要求を発生させ、インタフェースモジュールに転送する。
ここで、コントラクトバイトコード読取要求とは、コントラクトスペースに記憶されているコントラクトバイトコードを読み取るための要求である。インタフェースモジュールから仮想マシンインスタンスにフィードバックする照会結果が、オンチェーンアカウントおよびオンチェーンコントラクトが存在することであると、処理待ちトランザクション要求が有効であることを表し、仮想マシンは、呼び出し待ちコントラクトの識別子に基づいてコントラクトバイトコード読取要求を発生させ、インタフェースモジュールに転送する。
前記インタフェースモジュールは、前記コントラクトバイトコード読取要求に対応するコントラクトバイトコード読取インタフェースを確定するために、前記データアクセス要求に応じて命令変換を行う。
代替的に、アカウントスペースとコントラクトスペースのそれぞれにアカウントデータとコントラクトデータとをそれぞれ記憶させる場合、前記インタフェースモジュールは、前記ブロックチェーンのコントラクトスペースに対して、コントラクトバイトコード読取インタフェースを呼び出し、呼び出し待ちコントラクトのコントラクトバイトコードを読み取り、読み取られたコントラクトバイトコードを前記仮想マシンインスタンスにフィードバックする。
前記インタフェースモジュールは、コントラクトバイトコード読取要求を受信した場合、コントラクトバイトコード読取要求に応じて、コントラクトバイトコードが記憶されているコントラクトスペースを確定し、前記ブロックチェーンのコントラクトスペースに対して、コントラクトバイトコード読取インタフェースを呼び出し、呼び出し待ちコントラクトのコントラクトバイトコードを読み取る。
その三、データアクセス要求がコントラクト内変数読取要求である場合、
前記仮想マシンインスタンスは、前記インタフェースモジュールからフィードバックされたコントラクトバイトコードと、前記処理待ちトランザクション要求内のコントラクト引数およびトークンとに基づいて、前記処理待ちトランザクション要求を実行し、実行する過程においてコントラクト内変数読取要求を発生させ、前記インタフェースモジュールに転送する。ここで、コントラクト内変数に、スマートコントラクト稼働過程における変数および変数数値が含まれる。
ここで、コントラクト引数およびトークンは、仮想マシンインスタンスがコントラクトバイトコードを実行する際、仮想マシンインスタンスに入力する変数である。仮想マシンインスタンスが処理待ちトランザクション要求を実行する過程は、即ち、インタフェースモジュールからフィードバックされたコントラクトバイトコードを実行する過程である。仮想マシンインスタンスがコントラクトバイトコードを実行する過程において、コントラクト内変数読取要求を発生させ、当該コントラクト内変数読取要求をインタフェースモジュールに転送する。
なお、コントラクト内変数は、すべてチェーンにアップロードして記憶させることなく、コントラクト内変数は、コントラクトの実行過程で発生される中間値を含み、これらの中間値は、コントラクトの実行過程において、過程で発生される別の数値によって上書きされる場合があることを留意されたい。例示的に、勘定記録累計機能のある1つのスマートコントラクトには、変数Aおよび変数Bが含まれ、Aは既存金額であり、Bは今回の累計金額である。取引によってAおよびBの数値は異なっており、例えば、ユーザ甲より開始される1回の取引において、Aの10元(人民幣)に加えて、Bの2元(人民幣)を累計する。それでは、上記例において、AおよびBは変数となり、10および2は変数の値となり、A、BおよびAとBに対応する数値10と2はいずれもコントラクト内変数となって、コントラクトスペースに記録すべきである。しかしながら、スマートコントラクトの実行過程において、変数AとBに対応する変数数値に変化が発生する場合があり、過程における変数の数値は、通常のようにチェーンに記憶させることなく、変数AとBおよび両変数に対応する最終の変数数値をチェーンにアップロードし記憶させる。
前記インタフェースモジュールは、前記コントラクト内変数読取要求に対応するコントラクト内変数読取インタフェースを確定するために、前記データアクセス要求に応じて命令変換を行う。
代替的に、アカウントスペースとコントラクトスペースのそれぞれにアカウントデータとコントラクトデータとをそれぞれ記憶させる場合、前記インタフェースモジュールは、コントラクト内変数の数値を読み取り、読み取られた数値を前記仮想マシンインスタンスにフィードバックするために、前記ブロックチェーンのコントラクトスペースに対して、コントラクト内変数読取インタフェースを呼び出す。
ここで、インタフェースモジュールは、コントラクト内変数読取要求を受信した場合、コントラクト内変数読取要求に応じて、コントラクト内変数が記憶されているコントラクトスペースを確定し、前記ブロックチェーンのコントラクトスペースに対して、コントラクト内変数読取インタフェースを呼び出し、呼び出し待ちコントラクトのコントラクト内変数を読み取り、読み取られたコントラクト内変数を前記仮想マシンインスタンスにフィードバックする。
その四、データアクセス要求がコントラクト内変数記憶要求である場合、
前記仮想マシンインスタンスは、前記処理待ちトランザクション要求を実行する過程において、コントラクト内変数記憶要求を発生させ、インタフェースモジュールに転送する。
ここで、コントラクト内変数記憶要求は、コントラクト内変数をコントラクトスペースに記憶させるための要求である。仮想マシンインスタンスは、処理待ちトランザクション要求を実行する過程において、データ処理結果を発生させ、当該データ処理結果をコントラクトスペースに記憶させる必要がある場合、仮想マシンインスタンスは、コントラクト内変数記憶要求を発生させ、コントラクト内変数記憶要求をインタフェースモジュールに転送する。
前記インタフェースモジュールは、前記データアクセス要求に応じて命令変換を行い、前記コントラクト内変数記憶要求に対応するコントラクト内変数記憶インタフェースを確定し、
代替的に、アカウントスペースとコントラクトスペースのそれぞれにアカウントデータとコントラクトデータとをそれぞれ記憶させる場合、前記インタフェースモジュールは、コントラクト内変数の数値を書き込むために、前記ブロックチェーンのコントラクトスペースに対して、コントラクト内変数記憶インタフェースを呼び出す。
インタフェースモジュールは、コントラクト内変数記憶要求を受信した場合、コントラクト内変数記憶要求に応じて、コントラクト内変数の目標コントラクトスペースを確定し、前記ブロックチェーンのコントラクトスペースに対して、コントラクト内変数記憶インタフェースを呼び出し、コントラクト内変数の数値をコントラクトスペースに書き込む。
本発明の実施例において、仮想マシンインスタンスとインタフェースモジュールとを協働させることで、共に処理待ちトランザクション要求を完成し、異なるブロックチェーン間のコントラクト内変数のアクセス操作を実現し、イーサリアム仮想マシンを別のブロックチェーンシステムへ移植する課題を解決し、イーサリアムと別のブロックチェーン技術との互換性を向上させた。
図3は、本発明の実施例に係るイーサリアム仮想マシンに基づくトランザクション処理方法の概略図であり、本実施例は上記実施例を最適化した好ましい実施例であり、具体的には、処理待ちトランザクション要求を1回実行する全過程を説明する。
図3を参照すると、本実施例に係るイーサリアム仮想マシンに基づくトランザクション処理方法は、以下のステップを含む。
ステップ1において、ブロックチェーンノードで仮想マシンインスタンスを稼働し、処理待ちトランザクション要求を取得する。
代替的に、処理待ちトランザクション要求は1回の取引(Transaction)のトランザクション要求である。取引のトランザクション要求には、コントラクトの呼び出し側(From)と、呼び出されるコントラクト(To)と、呼び出されるコントラクトから転送されるトークン(Token)量(Amout)と、および呼び出されるコントラクト方法の方法署名(Method Signature)及び入力引数(Data)との4つの引数が含まれる。ブロックチェーンノードは、取引のトランザクション要求に含まれているFrom、To、AmoutおよびDataを仮想マシンインスタンスに転送し、仮想マシンインスタンスにおいて呼び出し側(Caller)、呼び出される側(Callee)、数値(Value)および入力引数(Input)として存在する。
具体的に、ブロックチェーンノードで稼働中の仮想マシンインスタンスにおいて、コントラクト呼び出し側から開始された処理待ちトランザクション要求を取得する。ここで、処理待ちトランザクション要求には、コントラクト呼び出し側の識別子と、呼び出し待ちコントラクトの識別子と、コントラクト引数と、およびトークン(Token)とが含まれる。処理待ちトランザクション要求が取引のトランザクション要求である場合、仮想マシンインスタンスにおける呼び出し側(Caller)はコントラクト呼び出し側の識別子であり、呼び出される側(Callee)は呼び出し待ちコントラクトの識別子であり、数値(Value)はトークンであり、入力引数(Input)はコントラクト引数である。
ステップ2において、仮想マシンインスタンスは呼び出し側(Caller)および呼び出される側(Callee)に応じて、インタフェースモジュールにおけるオンチェーンアカウント照会インタフェース(Acc Exists)およびオンチェーンコントラクト照会インタフェース(Contract Exists)を呼び出してブロックチェーンのデータストレージスペースに呼び出し待ちコントラクトおよびコントラクト呼び出し側の存否についてそれぞれに照会する。
具体的に、仮想マシンインスタンスが取引のトランザクション要求を受信した場合、仮想マシンインスタンスは、取引のトランザクション要求のうちのコントラクト呼び出し側の識別子および呼び出し待ちコントラクトの識別子に基づいて、呼び出し側のオンチェーンアカウント照会要求とオンチェーンコントラクト照会要求とをそれぞれ発生させ、前記インタフェースモジュールに転送する。ここで、インタフェースモジュールには、仮想マシンインスタンスのインタフェースがカプセル化されている。インタフェースモジュールは、オンチェーンアカウント照会要求に応じて、ブロックチェーンのアカウントスペースに対して、オンチェーンアカウント照会インタフェースを呼び出し、オンチェーンにコントラクト呼び出し側のアカウントの存否について照会する。インタフェースモジュールは、オンチェーンコントラクト照会要求に応じて、ブロックチェーンのコントラクトスペースに対して、オンチェーンコントラクト照会インタフェースを呼び出し、オンチェーンに呼び出し待ちコントラクトの存否について照会する。インタフェースモジュールは、コントラクト呼び出し側のアカウントおよび呼び出し待ちコントラクトに対する照会結果を仮想マシンインスタンスにフィードバックする。
ステップ3において、ブロックチェーンのデータストレージスペースにコントラクト呼び出し側と呼び出し待ちコントラクトの両方とも存在する場合、仮想マシンインスタンスは、コントラクトスペース(Contract Store)に格納されているコントラクトバイトコード(Code)を取得するために、インタフェースモジュール内のコントラクトバイトコード読取インタフェース(Get Code)を呼び出す。
具体的に、仮想マシンインスタンスは、インタフェースモジュールからフィードバックされた照会結果が、オンチェーンアカウントおよびオンチェーンコントラクトが存在することであると、呼び出し待ちコントラクトの識別子に基づいてコントラクトバイトコード読取要求を発生させ、インタフェースモジュールに転送する、インタフェースモジュールは、前記ブロックチェーンのコントラクトスペースに対して、コントラクトバイトコード読取インタフェースを呼び出し、呼び出し待ちコントラクトのコントラクトバイトコードを読み取り、読み取られたコントラクトバイトコードを前記仮想マシンインスタンスにフィードバックする。
ステップ4において、仮想マシンインスタンスは、仮想マシンインスタンス実行モジュール(EVM Execute)が取引のトランザクション要求を実行するように、Caller、Value、InputおよびCodeを仮想マシンインスタンス実行モジュールに転送する。
ステップ5およびステップ6において、EVM Executeは、Caller、Value、InputおよびCodeに基づいて、取引のトランザクション要求を実行し、取引のトランザクション要求を実行する過程には、コントラクトのステータス変更を実現するために、コントラクト内変数の読み取りや記憶が伴う。
具体的に、仮想マシンインスタンスは、インタフェースモジュールからフィードバックされたコントラクトバイトコードと、処理待ちトランザクション要求内のコントラクト引数およびトークンと、に基づいて、処理待ちトランザクション要求を実行し、実行する過程においてコントラクト内変数読取要求を発生させ、前記インタフェースモジュールに転送する。ここで、コントラクト内変数に、スマートコントラクトの稼働過程における変数および変数数値が含まれる。インタフェースモジュールは、前記ブロックチェーンのコントラクトスペースに対して、コントラクト内変数読取インタフェースを呼び出し、コントラクト内変数の数値を読み取り、読み取られた数値を前記仮想マシンインスタンスにフィードバックする。
仮想マシンインスタンスが処理待ちトランザクション要求を実行する過程において、コントラクト内変数記憶要求を発生させ、インタフェースモジュールに転送し、インタフェースモジュールは、前記ブロックチェーンのコントラクトスペースに対して、コントラクト内変数記憶インタフェースを呼び出し、コントラクト内変数の数値を書き込む。なお、図3において、接続ラインおよび数字をつけて示しているものは、数字が示しているステップにおけるデータの流れ方向である。
本発明の実施例において、仮想マシンインスタンスが前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、発生されるデータアクセス要求をインタフェースモジュールに転送し、前記インタフェースモジュールは、前記ブロックチェーンのデータストレージスペースに対して、前記ブロックチェーンアクセス用インタフェースを呼び出し、前記アクセス対象データのアクセス操作を行い、アクセス結果を前記仮想マシンインスタンスにフィードバックする。本発明は、仮想マシンインスタンスとインタフェースモジュールとを協働させ、共に処理待ちトランザクション要求を完成し、異なるブロックチェーン間のコントラクト内変数のアクセス操作を実現し、イーサリアム仮想マシンを別のブロックチェーンシステムへ移植する課題を解決し、イーサリアムと別のブロックチェーン技術との互換性を向上させた。
図4は、本発明の実施例に係るさらなるイーサリアム仮想マシンに基づくトランザクション処理方法の概略図である。本実施例は上記実施例を基礎として提供される代替的な技術案である。具体的には、処理待ちトランザクション要求がコントラクトアカウントに基づいたトランザクション要求である場合、当該処理待ちトランザクション要求を実行する過程を細分化したものである。具体的に、図4は、処理待ちトランザクション要求がコントラクトアカウントに基づいたトランザクション要求である場合、当該処理待ちトランザクション要求を実行する全過程を説明している。図4を参照すると、本実施例に係るイーサリアム仮想マシンに基づくトランザクション処理方法は、以下のS410、S420、S430、およびS440を含む。
S410において、ブロックチェーンノードで稼働中の仮想マシンインスタンスにおいて、処理待ちトランザクション要求を取得する。
S420において、前記仮想マシンインスタンスは、前記処理待ちトランザクション要求がコントラクトアカウントに基づいたトランザクション要求であると識別した場合、コントラクトアカウント操作要求を発生させ、前記インタフェースモジュールに転送する。ここで、前記コントラクトアカウント操作要求に、コントラクトアカウント生成要求と、コントラクトアカウント削除要求とが含まれる。
S430において、前記インタフェースモジュールは、前記データアクセス要求に応じて命令変換を行うことで、前記データアクセス要求機能に対応するブロックチェーンアクセス用インタフェースを確定する。
S440において、前記インタフェースモジュールは、前記ブロックチェーンのデータストレージスペースに対して、前記ブロックチェーンアクセス用インタフェースを呼び出して、前記アクセス対象データに対するアクセス操作を行い、アクセス結果を前記仮想マシンインスタンスにフィードバックする。
次いで、コントラクトアカウント操作要求がコントラクトアカウント生成要求である場合、仮想マシンが当該処理待ちトランザクション要求を実行する過程と、コントラクトアカウント操作要求がコントラクトアカウント削除要求である場合、仮想マシンが当該処理待ちトランザクション要求を実行する過程について詳細的に説明する。
具体的に、コントラクトアカウント操作要求がコントラクトアカウント生成要求である場合、仮想マシンが当該処理待ちトランザクション要求を実行する過程は以下の通りである。
ステップ1において、前記仮想マシンインスタンスは、前記処理待ちトランザクション要求がコントラクトアカウントに基づいたコントラクトアカウント生成要求であると識別した場合、前記インタフェースモジュールに転送する。
ここで、コントラクトアカウントに基づいたコントラクトアカウント生成要求とは、新規コントラクトアカウントを生成するための要求を指す。コントラクトアカウント生成要求には、新規生成されたコントラクトアカウントのアカウントデータと、コントラクトデータとを書き込むことが含まれる。コントラクトアカウントに基づいたコントラクトアカウント生成要求には、新規生成されたコントラクトアカウントのアカウントデータおよびスマートコントラクトを書き込むことが含まれる。
仮想マシンインスタンスは、コントラクトアカウントに基づいたコントラクトアカウント生成要求を実行し、目標コントラクトアカウントに対するデータアクセス要求を発生させる。コントラクトアカウントには、コントラクトデータと、アカウントデータとが含まれており、具体的には、コントラクトアカウントに対するアカウントデータ書込要求と、コントラクトデータ書込要求とを発生させる。アカウントデータ書込要求は、コントラクトアカウントのアカウントスペースに対してアカウントデータを書き込むことであり、コントラクトデータ書込要求は、コントラクトアカウントのコントラクトスペースに対してコントラクトデータを書き込むことである。ここで、コントラクトスペースと、アカウントスペースとは、スペース上で分離される。
ステップ2において、前記インタフェースモジュールは、前記データアクセス要求に応じて命令変換を行い、前記コントラクトアカウント生成要求に対応するコントラクトアカウント生成インタフェースを確定する。
インタフェースモジュールは、当該データアクセス要求の所属仮想マシンの命令および命令引数を識別し、プリセットされた仮想マシン命令およびインタフェースマッピング関係に基づいて、データアクセス要求に対応するブロックチェーンアクセス用インタフェースを確定する。
ステップ3において、前記インタフェースモジュールは、前記コントラクトアカウント生成要求に基づいてコントラクトアカウント生成インタフェースを呼び出し、前記アカウントスペースにコントラクトアカウントを生成し、前記コントラクトアカウントのアカウントデータを書き込み、そしてコントラクトスペースを生成する。
通常の場合、ブロックチェーンには、もれなくアカウントスペースが存在することから、インタフェースモジュールは、コントラクトアカウント生成要求を受信した場合、コントラクトアカウント生成要求に応じて、すぐに目標アカウントスペースを確定でき、ブロックチェーンのアカウントスペースに対して、コントラクトアカウント生成インタフェースを呼び出し、アカウントスペースにコントラクトアカウントを生成し、コントラクトアカウントのアカウントデータを書き込む。しかしながら、コントラクトスペースは、コントラクトデータを記憶するためのスペースであり、コントラクトアカウントを生成する時には、コントラクトスペースを生成しなければならない。
ステップ4において、前記インタフェースモジュールは、前記コントラクトアカウント生成インタフェースを実行する過程において、前記コントラクトバイトコード初期化インタフェースを呼び出し、生成待ちスマートコントラクトをコンバイルし、当該バイトコードをコントラクトスペースのインタフェースに書き込むことに用いられる。
ここで、コントラクトバイトコード初期化インタフェースは、生成待ちスマートコントラクトをコンパイルしてコントラクトバイトコードを得、当該バイトコードをコントラクトスペースのインタフェースに書き込むことに用いられる。
コントラクトスペースを生成した後に、コントラクトスペースのコントラクトデータに対して初期化する必要があり、インタフェースモジュールは、コントラクトアカウント生成インタフェースを実行する過程において、コントラクトバイトコード初期化インタフェースを呼び出し、スマートコントラクトをコンバイルし、コントラクトバイトコードを形成して前記コントラクトスペースに書き込む。
ステップ5において、前記インタフェースモジュールは、前記コントラクトアカウント生成インタフェースを実行する過程において、前記コントラクト内変数記憶インタフェースを呼び出し、前記コントラクトスペースに前記スマートコントラクトのコントラクト内変数を生成し記憶させる。
スマートコントラクトに変数が存在し、スマートコントラクトの実行過程において、これらの変数に対して操作を行う場合があることから、スマートコントラクト内で係る変数および変数数値についてもコントラクトスペースに記憶させるべきである。インタフェースモジュールは、コントラクトアカウントインタフェース生成を実行する過程において、コントラクト内変数記憶インタフェースを呼び出し、コントラクトスペースにスマートコントラクトのコントラクト内変数を生成し記憶させる。
本発明の実施例に係る技術案は、仮想マシンインスタンスとインタフェースモジュールとを協動させることで、コントラクトアカウントに基づいたコントラクトアカウント生成方案を提供し、これにより、ユーザが自身のニーズに応じてコントラクトアカウントを生成できるように、アカウントスペースとコントラクトスペースを分離させ、ブロックチェーンの業務上の拡張性を向上させた。
具体的に、コントラクトアカウント操作要求がコントラクトアカウント削除要求である場合、仮想マシンが当該処理待ちトランザクション要求を実行する過程は、以下の通りである。
ステップ1において、ブロックチェーンノードで稼働中の仮想マシンインスタンスにおいて、処理待ちトランザクション要求を取得する。
ステップ2において、前記仮想マシンインスタンスは、前記処理待ちトランザクション要求がコントラクトアカウントに基づいたコントラクトアカウント削除要求であると識別した場合、前記インタフェースモジュールに転送する。
ここで、コントラクトアカウントに基づいたコントラクトアカウント削除要求は、コントラクトアカウントから既存のコントラクトアカウントを削除するための要求を指す。コントラクトアカウントに基づいたコントラクトアカウント削除要求には、目標コントラクトアカウントのアカウントデータとコントラクトデータとを削除することが含まれる。コントラクトアカウントに基づいたコントラクトアカウント削除要求には、削除しようとするコントラクトアカウントのアカウント識別子が含まれる。
仮想マシンインスタンスは、コントラクトアカウントに基づいたコントラクトアカウント削除要求を実行し、目標コントラクトアカウントに対するデータアクセス要求を発生させる。コントラクトアカウントにコントラクトデータおよびアカウントデータが含まれることから、具体的には、コントラクトアカウントに対するアカウントデータ書込要求とコントラクトデータ書込要求を発生させる。アカウントデータ書込要求は、コントラクトアカウントのアカウントスペースに対してアカウントデータを書き込む要求であり、コントラクトデータ書込要求は、コントラクトアカウントのコントラクトスペースに対してコントラクトデータを書き込む要求である。ここで、コントラクトスペースとアカウントスペースとはスペース上で別々に設けられたものである。コントラクトアカウントを削除することは、コントラクトアカウントにおけるコントラクトデータおよびアカウントデータを全部ヌルにしてもよく、コントラクトデータおよびアカウントデータのアカウント識別子フィールドのみをヌルにしてもよく、これにより、当該コントラクトアカウントは、他のユーザによってインデックスされることなく、コントラクトアカウントを削除する目的を達成する。
ステップ3において、前記インタフェースモジュールは、前記データアクセス要求に応じて命令変換を行うことで、前記コントラクトアカウント削除要求に対応するコントラクトアカウント削除インタフェースを確定する。
インタフェースモジュールは、当該データアクセス要求の所属仮想マシンの命令および命令引数を識別し、プリセットされた仮想マシン命令およびインタフェースマッピング関係に基づいて、データアクセス要求に対応するブロックチェーンアクセス用インタフェースを確定する。
ステップ4において、インタフェースモジュールは、前記コントラクト削除要求に応じて、コントラクトアカウント削除インタフェースを呼び出し、前記アカウントスペースから削除待ちコントラクトアカウントのアカウントデータを削除し、そして前記コントラクトスペースから前記削除待ちコントラクトアカウントのコントラクトデータを削除する。
コントラクトアカウントに、コントラクトデータおよびアカウントデータが含まれ、コントラクトデータおよびアカウントデータはそれぞれにコントラクトスペースおよびアカウントスペースに記憶されていることから、コントラクトアカウントを削除する場合、インタフェースモジュールは、コントラクト削除要求に応じてコントラクトアカウント削除インタフェースを呼び出して削除待ちコントラクトアカウントのアカウントデータをアカウントスペースから削除し、そして削除待ちコントラクトアカウントのコントラクトスペース内におけるコントラクトデータを削除する。
本発明の実施例は、仮想マシンインスタンスとインタフェースモジュールとを協働させることで、ユーザが他のユーザにコントラクトアカウントを使用させたくない場合、又はコントラクトアカウントを廃棄したい場合に、当該コントラクトアカウントを削除できるように、コントラクトアカウントに基づいたコントラクトアカウントの削除方案を提供し、これにより、ブロック記憶リソースが無駄になることを回避するとともに、コントラクトアカウントのプライバシーを向上させることに役立てる。
図5は、本発明の実施例に係るイーサリアム仮想マシンに基づくトランザクション処理装置の概略図であり、図5を参照すると、本発明の実施例は、イーサリアム仮想マシンに基づくトランザクション処理装置500を開示しており、当該装置500は、
ブロックチェーンノードで稼働中の仮想マシンインスタンスにおいて、処理待ちトランザクション要求を取得するための、処理待ちトランザクション要求取得モジュール510と、
前記仮想マシンインスタンスが前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送するための、データアクセス要求発生/転送モジュール520と、
前記インタフェースモジュールにおいて、前記データアクセス要求に応じて命令変換を行うことで、前記データアクセス要求機能に対応するブロックチェーンアクセス用インタフェースを確定するための命令変換モジュール530と、
前記インタフェースモジュールにおいて、前記ブロックチェーンのデータストレージスペースに対して、前記ブロックチェーンアクセス用インタフェースを呼び出して、前記アクセス対象データに対するアクセス操作を行い、アクセス結果を前記仮想マシンインスタンスにフィードバックするためのブロックチェーンアクセス用インタフェース呼出モジュール540が備えられてもよく、
前記データアクセス要求にデータ読取要求及び/又はデータ書込要求が含まれる。
本発明の実施例に係る技術案によれば、イーサリアム仮想マシンを別のブロックチェーンシステムへ移植してトランザクション処理を行う場合、インタフェースモジュールを構築し、インタフェースモジュールによってイーサリアム仮想マシン命令形態のデータアクセス要求に対して命令変換を行い、前記データアクセス要求機能に対応するブロックチェーンアクセス用インタフェースを確定し、異機種のデータストレージスペースに対してアクセスを行うことができる。これにより、ブロックチェーンをオープン化/モジュール化させ、従って、イーサリアム仮想マシンを別のブロックチェーンシステムへ移植する難易度を低減させた。本発明の実施例は、インタフェースモジュールを構築することで、イーサリアム仮想マシンを別のブロックチェーンシステムへ移植する課題を解決し、イーサリアムと別のブロックチェーン技術との互換性を向上させた。
代替的に、命令変換モジュールには、
前記インタフェースモジュールが前記データアクセス要求の所属仮想マシン命令および命令引数を識別するためのデータアクセス要求識別サブモジュールと、
前記インタフェースモジュールがプリセットされた仮想マシン命令およびインタフェースマッピング関係に基づいて、前記データアクセス要求に対応するブロックチェーンアクセス用インタフェースを確定するためのブロックチェーンアクセス用インタフェース確定サブモジュールと、が備えられる。
代替的に、1つ又は複数の仮想マシン命令と1つのブロックチェーンアクセス用インタフェースとの間にインタフェースマッピング関係を有する。
代替的に、前記ブロックチェーンアクセス用インタフェースは、別のブロックチェーンアクセス用インタフェースを呼び出す機能を有する。
代替的に、前記アクセス対象データには、アカウントデータとコントラクトデータとが含まれる。
前記ブロックチェーンアクセス用インタフェースのタイプには、
アカウントデータに対するアクセスに用いられるアカウントアクセス用インタフェースと、
コントラクトデータの更新に用いられる記憶アクセス用インタフェースと、
コントラクトアカウントの操作に用いられるコントラクト操作インタフェースと、が備えられる。
代替的に、前記ブロックチェーンアクセス用インタフェースのうちのブロックチェーン読取インタフェースには、
コントラクト内変数読取インタフェースと、
アカウントトークン残額読取インタフェースと、
コントラクトバイトコード読取インタフェースと、
アカウントの取引シーケンス番号読取インタフェースと、
オンチェーンコントラクト照会インタフェースと、
オンチェーンアカウント照会インタフェースと、
ブロック高によってブロックハッシュを読み取る読取インタフェースと、のうちの少なくとも1項が備えられる。
代替的に、データアクセス要求発生/転送モジュールには、
前記仮想マシンインスタンスが処理待ちトランザクション要求を取得した場合、前記処理待ちトランザクション要求内におけるコントラクトの呼び出し側の識別子と呼び出し待ちコントラクト識別子とを取得するための識別子情報取得サブモジュールと、
前記仮想マシンインスタンスにおいて、前記コントラクトの呼び出し側の識別子と呼び出し待ちコントラクト識別子とに基づいて、呼び出し側のオンチェーンアカウント照会要求と、オンチェーンコントラクト照会要求をそれぞれ発生させ、前記インタフェースモジュールに転送するための照会要求発生サブモジュールと、が備えられる。
代替的に、データアクセス要求発生/転送モジュールは、具体的に、前記仮想マシンインスタンスにおいて、インタフェースモジュールからフィードバックされた照会結果として、オンチェーンアカウントおよびオンチェーンコントラクトが存在するという結果を取得した場合、前記呼び出し待ちコントラクト識別子に基づいてコントラクトバイトコード読取要求を発生させ、インタフェースモジュールに転送することに用いられる。
代替的に、データアクセス要求発生/転送モジュールは、具体的に、前記仮想マシンインスタンスにおいて、前記インタフェースモジュールからフィードバックされたコントラクトバイトコードと、前記処理待ちトランザクション要求内のコントラクト引数およびトークンとに基づいて、前記処理待ちトランザクション要求を実行し、実行過程においてコントラクト内変数読取要求を発生させ、前記インタフェースモジュールに転送することに用いられる。
ここで、コントラクト内変数に、スマートコントラクト稼働過程における変数および変数数値が含まれる。
代替的に、前記ブロックチェーンアクセス用インタフェースのうちのブロックチェーン書込インタフェースには、
コントラクトアカウント生成インタフェースと、
コントラクトバイトコード初期化インタフェースと、
コントラクトアカウント削除インタフェースと、
コントラクト内変数記憶インタフェースと、
アカウント残額追加インタフェースと、
アカウント残額減少インタフェースと、のうちの少なくとも1項が備えられる。
代替的に、データアクセス要求発生/転送モジュールは、具体的に、前記仮想マシンインスタンスが前記処理待ちトランザクション要求を実行する過程において、コントラクト内変数記憶要求を発生させ、インタフェースモジュールに転送するためのコントラクト内変数記憶要求発生モジュールに用いられる。ここで、コントラクト内変数に、スマートコントラクト稼働過程における変数および変数数値が含まれる。
代替的に、データアクセス要求発生/転送モジュールは、具体的に、前記仮想マシンインスタンスにおいて、前記処理待ちトランザクション要求がコントラクトアカウントに基づいたトランザクション要求であると識別した場合、コントラクトアカウント操作要求を発生させ、前記インタフェースモジュールに転送するために用いられる。ここで、前記コントラクトアカウント操作要求に、コントラクトアカウント生成要求と、コントラクトアカウント削除要求とが含まれる。
本発明の実施例に係るイーサリアム仮想マシンに基づくトランザクション処理装置は、本発明の任意の実施例に係るイーサリアム仮想マシンに基づくトランザクション処理方法を実行可能であり、イーサリアム仮想マシンに基づくトランザクション処理方法を実行するためのそれぞれの機能モジュールおよび有利な効果が具備されている。
本発明の実施例によれば、本発明は電子機器、可読記憶媒体およびコンピュータプログラム製品をさらに提供する。
図6では、本発明の実施例を実施するための例示的な電子機器600の概略的ブロック図を示した。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータおよびその他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことを意図している。電子機器は、パーソナルデジタル処理、携帯電話、スマートフォン、ウェアラブル機器及びその他の類似的なコンピューティング機器などの様々な形態のモバイル機器を表すこともできる。本明細書に記載の構成要素、それらの接続及び関係、ならびにそれらの機能は、単に例示的なものであり、本明細書に記載及び/又は要求される本発明の実現を制限することを意図するものではない。
図6に示すように、機器600には、コンピューティングユニット601が備えられており、当該コンピューティングユニット601は読取専用メモリ(Read-Only Memory、ROM)602に記憶されているコンピュータプログラム又は記憶ユニット608からランダムアクセスメモリ(Random Access Memory、RAM)603にアップロードされるコンピュータプログラムに基づいて、様々な適切な動作及び処理を実行することができる。RAM603には、機器600の操作に要求される様々なプログラムおよびデータが記憶されていてもよい。コンピューティングユニット601と、ROM602およびRAM603はバス604を介して互いに接続される。入力/出力(I/O)インタフェース605もバス604に接続される。
電子機器600内の複数の構成要素はI/Oインタフェース605に接続され、当該I/Oインタフェース605には、キーボード、マウスなどの入力ユニット606と、様々なタイプのディスプレイ、スピーカなどの出力ユニット607と、磁気ディスク、光ディスクなどの記憶ユニット608と、およびネットワークカード、モデム、無線通信送受信機などの通信ユニット609と、が備えられている。通信ユニット609は、インターネットなどのコンピュータネットワーク及び/又は様々な電気通信ネットワークを経由して機器600と別の機器との情報およびデータ交換を可能にする。
コンピューティングユニット601は様々な処理およびコンピューティング機能を有する汎用及び/又は特定用途向け処理コンポーネントであってもよい。コンピューティングユニット601のいくつかの例には、中央処理装置(Central Processing Unit、CPU)、グラフィックスプロセッサ(Graphics Processing Unit、GPU)、様々な特定用途向けの人工知能(Artificial Intelligence、AI)コンピューティングチップ、機械学習モデルアルゴリズムを実行する様々なコンピューティングユニット、数字信号処理機(Digital Signal Processing、DSP)、および任意の適切なプロセッサ、コントローラ、マイクロコントローラなどが含まれるが、これらに限定されない。コンピューティングユニット601は、上述した様々な方法および処理、例えば、イーサリアム仮想マシンに基づくトランザクション処理方法を実行する。例えば、いくつかの実施例において、イーサリアム仮想マシンに基づくトランザクション処理方法は、記憶ユニット608などの機械可読媒体に有形的に含まれるコンピュータソフトウェアプログラムによって実行可能である。いくつかの実施例において、コンピュータプログラムの一部又は全部は、ROM602及び/又は通信ユニット609を介して機器600にロード及び/又はインストールされ得る。コンピュータプログラムは、RAM603にロードされ、コンピューティングユニット601により実行されることで、上述したイーサリアム仮想マシンに基づくトランザクション処理方法の1つ又は複数のステップを実行できる。代替的に、別の実施例において、コンピューティングユニット601は、他の任意の適切な形態で(例えば、ファームウェアによって)イーサリアム仮想マシンに基づくトランザクション処理方法を実行するように構成される。
本明細書に記載の上記システムおよび技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(Field-Programmable Gate Array、FPGA)、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、特定用途向け標準製品(Application Specific Standard Product、ASSP)、組み込みシステムオンチップ(System-On-a-Chip、SOC)、複雑なプログラマブル・ロジック・機器(Complex Programmable Logic Device、CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせによって実現可能である。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムで実施され、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステムで実行及び/又は解釈可能であり、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、記憶システムと、少なくとも1つの入力装置と、および少なくとも1つの出力装置からデータおよび命令を受信し、データおよび命令を当該記憶システムと、当該少なくとも1つの入力装置と、および当該少なくとも1つの出力装置に伝送することができる。
本発明の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせでプログラミングできる。これらのプログラムコードは、汎用コンピュータ、特定用途向けコンピュータ又はその他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供され、プロセッサ又はコントローラによって実行されることで、フロー図及び/又はブロック図の所定の機能/操作を実行させる。プログラムコードは、全部マシンで実施されてもよく、一部がマシンで実施されてもよく、独立したパッケージソフトウェアとして一部はマシンで実行および一部はリモートマシンで実行、又は、全部リモートマシン又はサーバで実行されてもよい。
本発明の文脈において、機械可読媒体は有形的な媒体であってもよく、当該媒体に、命令実行システム、装置又は機器に利用されるプログラム、又は、命令実行システム、装置又は機器と組み合わせて利用されるプログラムが備えられるか、又は、記憶されていてもよい。機械可読媒体は、機械可読信号媒体であってもよく、又は機械可読記憶媒体でもよい。機械可読媒体は、電子、磁気、光学、電磁気、赤外線、又は半導体システム、装置又は機器、又は上述した内容の任意の適切な組み合わせを含んでもよいが、これに限定されるものではない。機械可読記憶媒体のより具体的な例には、1つ又は複数のケーブルに基づく電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラマブル読取専用メモリ(Erasable Programmable Read Only Memory、EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスクによる読み出し専用メモリ(Compact Disc Read Only Memory、CD-ROM)、光学記憶装置、磁気記憶装置、又は上述した内容の任意の適切な組み合わせが含まれる。
ユーザとの相互作用を提供するために、本明細書に記載のシステム及び技術はコンピュータで実施されてもよく、当該コンピュータは、例えば、陰極線管(Cathode Ray Tube、CRT)又は液晶ディスプレイ(Liquid Crystal Display、LCD)モニタなどのユーザに情報を表示するための表示装置と、キーボードと、例えば、マウス又はトラックボールなどのポインティング機器(Pointing device)と、を有しており、ユーザは、当該キーボード及び当該ポインティング機器を介してコンピュータに入力を提供してもよい。ユーザとの相互作用を提供するために、その他のタイプの装置を使用してもよく、例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックの任意の形態の感覚フィードバックであってもよく、音入力、音声入力又は触覚入力を含む任意の形態でユーザからの入力を受信してもよい。
本明細書に記載のシステムおよび技術は、バックエンド構成要素を含むコンピューティングシステム(例えば、データサーバとして)、又は、ミドルウェア構成要素を含むコンピューティングシステム(例えば、アプリケーションサーバ)、又は、フロントエンド構成要素を含むコンピューティングシステム(例えば、グラフィックスユーザインターフェース、又は、ネットワークブラウザを有するユーザコンピュータであり、ユーザは当該グラフィックスユーザインターフェース又は当該ネットワークブラウザを介して本明細書に記載のシステムおよび技術の実施形態と相互作用してもよい)、又は、これらのバックエンド構成要素、ミドルウェア構成要素、又は、フロントエンド構成要素の任意の組み合わせを含むコンピューティングシステムで実施されてもよい。システムの構成要素は、任意の形態又は媒体によるデジタルデータ通信(例えば、通信ネットワーク)によって相互接続されてもよい。通信ネットワークの例には、ローカルエリアネットワーク(Local Area Network、LAN)、ワイドエリアネットワーク(Wide Area Network、WAN)、ブロックチェーンネットワーク(Blockchain Network)およびインターネットが含まれる。
コンピュータシステムは、クライアントおよびサーバを備えてもよい。クライアントとサーバとは、普通、互いに遠く離れており、通常、通信ネットワークを介して相互作用を実行する。それぞれのコンピュータで稼働し、互いにクライアント‐サーバ関係を有するコンピュータプログラムによってクライアントとサーバの関係を生成する。サーバは、クラウドコンピューティングサーバ又はクラウドホストとも呼ばれるクラウドサーバであってもよく、クラウドコンピューティングサービスシステムにおける1つのホスト製品として、従来の物理ホストとVPSサービスにおける、管理の難易度が高く、業務の拡張性が弱いという欠点を解決した。
なお、上記の様々な形態のプロセスは、ステップを並べ替え、追加又は削除して使用することができる。例えば、本発明に記載の各ステップは、並行的に実行されてもよく、順次的に実行されてもよく、異なる順序で実行されてもよく、本発明に開示される発明が所望の結果を達成できる限り、本明細書によって限定されないことを理解すべきである。
本発明は、上述した実施するための具体的な形態によって保護範囲が限定されるものではない。当業者なら、設計要件およびその他の要因に従って様々な修正、組み合わせ、下位組み合わせ及び代替を実行できることを認識すべきである。本発明の精神と原則の範囲内で行われるいわゆる修正、均等置換および改良等はすべて本発明の保護範囲に含まれるものである。

Claims (16)

  1. ブロックチェーンノードに適用され、イーサリアム仮想マシンに基づくトランザクション処理方法であって、
    前記ブロックチェーンノードで稼働中のイーサリアム仮想マシンインスタンスにおいて、処理待ちトランザクション要求を取得することと、
    前記イーサリアム仮想マシンインスタンス前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送することと、
    前記インタフェースモジュールは、前記データアクセス要求に応じて命令変換を行うことで、前記データアクセス要求に対応するブロックチェーンアクセス用インタフェースを確定し、ここで、前記インタフェースモジュールは、非イーサリアムブロックチェーンノードのデータを読み取ることをサポートしないイーサリアム仮想マシン命令を、非イーサリアムブロックチェーンノードのデータを読み取ることをサポートする命令に変換するために用いられることと、
    前記インタフェースモジュールは前記ブロックチェーンアクセス用インタフェースを呼び出して、前記非イーサリアムブロックチェーンノードのデータストレージスペースにおける前記アクセス対象データに対するアクセス操作を行い、アクセス結果を前記イーサリアム仮想マシンインスタンスにフィードバックすることと、を含み、
    前記データアクセス要求に、データ読取要求及び/又はデータ書込要求が含まれ、前記アクセス対象データとは、前記非イーサリアムブロックチェーンノードにおけるアカウントデータ及び/又はコントラクトデータであり、前記データアクセス要求はイーサリアム仮想マシン命令形態である、
    イーサリアム仮想マシンに基づくトランザクション処理方法。
  2. 前記インタフェースモジュールは、前記データアクセス要求に応じて命令変換を行うことで、前記データアクセス要求に対応するブロックチェーンアクセス用インタフェースを確定することは、
    前記インタフェースモジュールは、前記データアクセス要求の所属仮想マシン命令および命令引数を識別することと、
    前記インタフェースモジュールは、プリセットされた仮想マシン命令およびインタフェースマッピング関係に基づいて、前記データアクセス要求に対応するブロックチェーンアクセス用インタフェースを確定することと、を含む、
    請求項1に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  3. 1つ又は複数の仮想マシン命令と1つのブロックチェーンアクセス用インタフェースとの間にインタフェースマッピング関係を有する、
    請求項2に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  4. 前記ブロックチェーンアクセス用インタフェースは、別のブロックチェーンアクセス用インタフェースを呼び出す機能を有する、
    請求項1に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  5. 前記アクセス対象データには、前記アカウントデータと前記コントラクトデータとが含まれ、
    前記ブロックチェーンアクセス用インタフェースのタイプには、
    前記アカウントデータのアクセスに用いられるアカウントアクセス用インタフェースと、
    前記コントラクトデータの更新に用いられる記憶アクセス用インタフェースと、
    コントラクトアカウントの操作に用いられるコントラクト操作インタフェースと、が含まれる、
    請求項1に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  6. 前記ブロックチェーンアクセス用インタフェースのうちのブロックチェーン読取インタフェースには、
    コントラクト内変数読取インタフェースと、
    アカウントトークン残額読取インタフェースと、
    コントラクトバイトコード読取インタフェースと、
    アカウントの取引シーケンス番号読取インタフェースと、
    オンチェーンコントラクト照会インタフェースと、
    オンチェーンアカウント照会インタフェースと、
    ブロック高によってブロックハッシュを読み取る読取インタフェースと、のうちの少なくとも1項が備えられる、
    請求項5に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  7. 前記イーサリアム仮想マシンインスタンスは、前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送することは、
    前記イーサリアム仮想マシンインスタンスは、処理待ちトランザクション要求を取得した場合、前記処理待ちトランザクション要求内におけるコントラクトの呼び出し側の識別子と呼び出し待ちコントラクト識別子とを取得することと、
    前記イーサリアム仮想マシンインスタンスは、前記コントラクトの呼び出し側の識別子と、呼び出し待ちコントラクト識別子とに基づいて、呼び出し側のオンチェーンアカウント照会要求と、オンチェーンコントラクト照会要求をそれぞれ発生させ、前記インタフェースモジュールに転送することと、を含む、
    請求項6に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  8. 前記イーサリアム仮想マシンインスタンスは、前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送することは、
    前記イーサリアム仮想マシンインスタンスは、前記インタフェースモジュールからフィードバックされた照会結果として、オンチェーンアカウントおよびオンチェーンコントラクトが存在するという結果を取得した場合、前記呼び出し待ちコントラクト識別子に基づいてコントラクトバイトコード読取要求を発生させ、前記インタフェースモジュールに転送することを含む、
    請求項7に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  9. 前記イーサリアム仮想マシンインスタンスは、前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送することは、
    前記イーサリアム仮想マシンインスタンスは、前記インタフェースモジュールからフィードバックされたコントラクトバイトコードと、前記処理待ちトランザクション要求内のコントラクト引数およびトークンとに基づいて、前記処理待ちトランザクション要求を実行し、実行過程においてコントラクト内変数読取要求を発生させ、前記インタフェースモジュールに転送することを含み、
    コントラクト内変数には、スマートコントラクト稼働過程における変数および変数数値が含まれる、
    請求項8に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  10. 前記ブロックチェーンアクセス用インタフェースのうちのブロックチェーン書込インタフェースには、
    コントラクトアカウント生成インタフェースと、
    コントラクトバイトコード初期化インタフェースと、
    コントラクトアカウント削除インタフェースと、
    コントラクト内変数記憶インタフェースと、
    アカウント残額追加インタフェースと、
    アカウント残額減少インタフェースと、のうちの少なくとも1項が含まれる、
    請求項5に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  11. 前記イーサリアム仮想マシンインスタンスは、前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送することは、
    前記イーサリアム仮想マシンインスタンスは、前記処理待ちトランザクション要求を実行する過程において、コントラクト内変数記憶要求を発生させ、前記インタフェースモジュールに転送することを含み、
    コントラクト内変数には、スマートコントラクト稼働過程における変数および変数数値が含まれる、
    請求項10に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  12. 前記イーサリアム仮想マシンインスタンスは、前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送することは、
    前記イーサリアム仮想マシンインスタンスは、前記処理待ちトランザクション要求がコントラクトアカウントに基づいたトランザクション要求であると識別した場合、コントラクトアカウント操作要求を発生させ、前記インタフェースモジュールに転送することを含み、
    前記コントラクトアカウント操作要求にはコントラクトアカウント生成要求とコントラクトアカウント削除要求とが含まれる、
    請求項10に記載のイーサリアム仮想マシンに基づくトランザクション処理方法。
  13. ブロックチェーンノードに適用され、請求項1~12のいずれか1項に記載のトランザクション処理方法を実行させるためのイーサリアム仮想マシンに基づくトランザクション処理装置であって、
    前記ブロックチェーンノードで稼働中のイーサリアム仮想マシンインスタンスにおいて、処理待ちトランザクション要求を取得するための処理待ちトランザクション要求取得モジュールと、
    前記イーサリアム仮想マシンインスタンス前記処理待ちトランザクション要求を実行する過程において、アクセス対象データに対するデータアクセス要求を発生させ、インタフェースモジュールに転送するためのデータアクセス要求発生/転送モジュールと、
    前記インタフェースモジュールにおいて、前記データアクセス要求に応じて命令変換を行うことで、前記データアクセス要求に対応するブロックチェーンアクセス用インタフェースを確定し、ここで、前記インタフェースモジュールは、非イーサリアムブロックチェーンノードのデータを読み取ることをサポートしないイーサリアム仮想マシン命令を、非イーサリアムブロックチェーンノードのデータを読み取ることをサポートする命令に変換するために用いられるための命令変換モジュールと、
    前記インタフェースモジュールにおいて前記ブロックチェーンアクセス用インタフェースを呼び出して、前記非イーサリアムブロックチェーンノードのデータストレージスペースにおける前記アクセス対象データに対するアクセス操作を行い、アクセス結果を前記イーサリアム仮想マシンインスタンスにフィードバックするためのブロックチェーンアクセス用インタフェース呼出モジュールと、が備えられ、
    前記データアクセス要求に、データ読取要求及び/又はデータ書込要求が含まれ、前記アクセス対象データとは、前記非イーサリアムブロックチェーンノードにおけるアカウントデータ及び/又はコントラクトデータであり、前記データアクセス要求はイーサリアム仮想マシン命令形態である、
    イーサリアム仮想マシンに基づくトランザクション処理装置。
  14. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサと通信接続される記憶装置と、を備え
    前記記憶装置は、前記少なくとも1つのプロセッサにより実行できる命令が記憶されており、
    前記命令は、前記少なくとも1つのプロセッサが請求項1~12のいずれか1項に記載のイーサリアム仮想マシンに基づくトランザクション処理方法を実行可能であるように、前記少なくとも1つのプロセッサにより実行される、
    電子機器。
  15. 請求項1~12のいずれか1項に記載のイーサリアム仮想マシンに基づくトランザクション処理方法をコンピュータに実行させるためのコンピュータ命令が記憶されている、
    非瞬時性コンピュータ可読記憶媒体。
  16. プロセッサにより実行される際、請求項1~12のいずれか1項に記載のイーサリアム仮想マシンに基づくトランザクション処理方法を実現する、
    コンピュータプログラム
JP2021186202A 2020-12-24 2021-11-16 イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体 Active JP7293314B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011547907.1A CN112306645B (zh) 2020-12-24 2020-12-24 以太坊虚拟机的事务处理方法、装置、设备和介质
CN202011547907.1 2020-12-24

Publications (2)

Publication Number Publication Date
JP2022101479A JP2022101479A (ja) 2022-07-06
JP7293314B2 true JP7293314B2 (ja) 2023-06-19

Family

ID=74487567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021186202A Active JP7293314B2 (ja) 2020-12-24 2021-11-16 イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体

Country Status (5)

Country Link
US (1) US11397827B2 (ja)
EP (1) EP3933581A3 (ja)
JP (1) JP7293314B2 (ja)
KR (1) KR20210105316A (ja)
CN (1) CN112306645B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419776B (zh) * 2021-07-09 2022-09-13 杭州复杂美科技有限公司 应用兼容方法、计算机设备和存储介质
CN113973115B (zh) * 2021-10-28 2024-02-27 南方电网科学研究院有限责任公司 一种自定义通证流通方法及其相关装置
CN114116067B (zh) * 2021-12-02 2024-02-27 多点生活(武汉)科技有限公司 内外系统的信息配置方法、装置、电子设备和可读存储介质
CN115187250B (zh) * 2022-09-09 2022-11-29 南方科技大学 一种以太坊隐私交易的探测方法、终端及存储介质
CN117807157A (zh) * 2022-09-26 2024-04-02 腾讯科技(深圳)有限公司 区块链的交易执行方法、装置、程序产品、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190238525A1 (en) 2018-01-31 2019-08-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment
JP2019204216A (ja) 2018-05-22 2019-11-28 株式会社日立製作所 データ管理方法およびデータ管理システム
US20200034453A1 (en) 2018-07-29 2020-01-30 International Business Machines Corporation Smart contract input mapping
JP2020509443A (ja) 2018-12-29 2020-03-26 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーン上のネイティブ契約を実施するためのシステムおよび方法
US20200133926A1 (en) 2018-12-29 2020-04-30 Alibaba Group Holding Limited System and method for implementing native contract on blockchain

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598490A (zh) 2016-11-25 2017-04-26 深圳前海微众银行股份有限公司 区块链数据的访问方法和区块链管理系统
CN108418795B (zh) 2018-01-30 2019-05-28 百度在线网络技术(北京)有限公司 跨区块链的数据访问方法、装置、系统及计算机可读介质
CN108765158B (zh) * 2018-05-31 2020-11-24 杭州溪塔科技有限公司 一种基于区块链的智能合约引擎系统及其合约执行方法
US11676139B2 (en) * 2018-06-29 2023-06-13 Arcblock, Inc. Blockchain adapter, protocol, and access layer
CN110321374B (zh) * 2018-10-23 2022-03-25 开采夫(杭州)科技有限公司 基于分布式网络的标准文件io操作系统及方法
CN109492053B (zh) 2018-11-08 2023-07-18 北京百度网讯科技有限公司 用于访问数据的方法和装置
US20200201838A1 (en) * 2018-12-20 2020-06-25 Sri International Middleware to automatically verify smart contracts on blockchains
KR102008001B1 (ko) * 2019-02-21 2019-08-06 주식회사 모파스 블록체인을 이용하여 스마트 계약을 생성하는 시스템
CN110297689B (zh) 2019-05-06 2021-09-14 百度在线网络技术(北京)有限公司 智能合约执行方法、装置、设备及介质
SG11202004455UA (en) 2019-06-28 2020-06-29 Alibaba Group Holding Ltd System and method for executing different types of blockchain contracts
RO134065A0 (ro) * 2019-08-14 2020-04-30 Ingenium Blockchain Technologies S.R.L. Platformă şi metodă de conectare a unui motor de blockchain
US20210304191A1 (en) * 2020-03-27 2021-09-30 Coinbase, Inc. System and method for integration and validation
CN111651169B (zh) * 2020-05-19 2023-07-04 鼎链数字科技(深圳)有限公司 基于web容器的区块链智能合约运行方法及系统
CN111381938B (zh) * 2020-05-29 2020-09-25 支付宝(杭州)信息技术有限公司 一种基于基础指令集执行区块链中智能合约的方法及系统
WO2021257826A1 (en) * 2020-06-17 2021-12-23 Coinbase, Inc. Systems and methods for converting cryptocurrency
CN111741026B (zh) * 2020-08-07 2020-12-01 百度在线网络技术(北京)有限公司 一种跨链事务请求处理方法、装置、设备以及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190238525A1 (en) 2018-01-31 2019-08-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment
JP2021512416A (ja) 2018-01-31 2021-05-13 セールスフォース ドット コム インコーポレイティッド クラウドベースのコンピューティング環境において分散台帳技術のためのインテリジェントな合意、スマートな合意、及び重み付き合意のモデルを実現するシステム、方法、及び装置
JP2019204216A (ja) 2018-05-22 2019-11-28 株式会社日立製作所 データ管理方法およびデータ管理システム
US20200034453A1 (en) 2018-07-29 2020-01-30 International Business Machines Corporation Smart contract input mapping
JP2020509443A (ja) 2018-12-29 2020-03-26 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーン上のネイティブ契約を実施するためのシステムおよび方法
US20200133926A1 (en) 2018-12-29 2020-04-30 Alibaba Group Holding Limited System and method for implementing native contract on blockchain

Also Published As

Publication number Publication date
US20210350019A1 (en) 2021-11-11
EP3933581A3 (en) 2022-02-23
JP2022101479A (ja) 2022-07-06
CN112306645A (zh) 2021-02-02
EP3933581A2 (en) 2022-01-05
US11397827B2 (en) 2022-07-26
CN112306645B (zh) 2021-05-04
KR20210105316A (ko) 2021-08-26

Similar Documents

Publication Publication Date Title
JP7293314B2 (ja) イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体
EP3350696B1 (en) Overriding a migrated method of an updated type
US8359570B2 (en) Adaptive scripting tool
US7624116B2 (en) System and method for managing objects according to the common information model
US10303449B2 (en) Compiling non-native constants
JP7291764B2 (ja) イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体
CN111949693B (zh) 一种数据处理装置、数据处理方法、存储介质及电子设备
WO2023056946A1 (zh) 一种数据缓存方法、装置和电子设备
JP7253603B2 (ja) イーサリアム仮想マシンのトランザクション処理方法、装置、機器、および媒体
JP7291759B2 (ja) イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体
US10394610B2 (en) Managing split packages in a module system
TW200834419A (en) Method and apparatus for administering a process filesystem with respect to program code conversion
JP2000347875A (ja) ファイル移植技術
Royer et al. Trusted Remote Function Interface
CN115794955A (zh) 一种智能合约的升级方法、装置、设备及存储介质
CN114185556A (zh) 一种智能合约部署方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230607

R150 Certificate of patent or registration of utility model

Ref document number: 7293314

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150