CN111949315A - 用于区块链账本数据的管理装置和方法 - Google Patents
用于区块链账本数据的管理装置和方法 Download PDFInfo
- Publication number
- CN111949315A CN111949315A CN201910410016.2A CN201910410016A CN111949315A CN 111949315 A CN111949315 A CN 111949315A CN 201910410016 A CN201910410016 A CN 201910410016A CN 111949315 A CN111949315 A CN 111949315A
- Authority
- CN
- China
- Prior art keywords
- transaction
- invalid
- conflict
- data
- blockchain
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/95—Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q2220/00—Business processing using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Library & Information Science (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种用于区块链账本数据的管理装置和方法。所述装置,包括:遍历单元,其被配置成遍历所述区块链上每个无效冲突交易所在块及其相邻块中的一个或多个先前交易,直到确定引起所述无效冲突交易的先前交易;划分单元,其被配置成将所述无效冲突交易及引起所述无效冲突交易的先前交易组成的冲突对划分到不同的冲突模式;以及建议单元,其被配置成针对所述冲突模式,提供相应的改进链码的建议,以避免所述无效冲突交易的发生。
Description
技术领域
本公开涉及区块链的技术领域,具体地涉及用于区块链账本数据的管理装置和方法。
背景技术
这个部分提供了与本公开有关的背景信息,这不一定是现有技术。
现今,超级账本Fabric是最受欢迎的联盟区块链,其支持称为链码的智能合约。尽管链码提供了一些简单的应用程序接口API(Application Program Interface)以查询数据,但是,这些API用于构建超级账本Fabric上的应用。如果用户旨在离线分析账本数据或进行一些高级数据查询,那么现有技术不具有有效的方法或工具。此外,为了保持账本数据的一致性,Fabric将验证每次交易的状态版本,一旦版本验证失败,将导致无效交易。无论有效还是无效交易都将存储在区块链上,然而,现有技术还缺乏描述如何产生这种无效冲突交易的问题。
发明内容
这个部分提供了本公开的一般概要,而不是其全部范围或其全部特征的全面披露。
为了清楚地理解无效冲突交易的产生,本公开提供了一种分析无效冲突交易产生原因的技术方案,并给出相应的优化建议以避免所述无效冲突交易的产生。此外,根据本公开的技术方案可以用于构建区块链的应用程序的数据分析。其提供了一种根据需要查询区块链数据的便捷方式,并且可以跟踪数据改变的完整历史记录。
根据本公开的一方面,提供了一种用于区块链账本数据的管理装置,包括:遍历单元,其被配置成遍历所述区块链上每个无效冲突交易所在块及其相邻块中的一个或多个先前交易,直到确定引起所述无效冲突交易的先前交易;划分单元,其被配置成将所述无效冲突交易及引起所述无效冲突交易的先前交易组成的冲突对划分到不同的冲突模式;以及建议单元,其被配置成针对所述冲突模式,提供相应的改进链码的建议,以避免所述无效冲突交易的发生。
根据本公开的另一方面,提供了一种用于区块链账本数据的管理方法,包括:针对所述区块链上每个无效冲突交易,遍历其所在块及其相邻块中的一个或多个先前交易,直到确定引起所述无效冲突交易的先前交易;将所述无效冲突交易及引起所述无效冲突交易的先前交易组成的冲突对划分到不同的冲突模式;以及针对所述冲突模式,提供相应的改进链码的建议,以避免所述无效冲突交易的发生。
根据本公开的又一方面,提供了一种用于区块链账本数据的管理装置,包括:遍历单元,其被配置成遍历所述区块链上的所有块,以提取每个交易的文档结构;以及组织单元,其被配置成使用所述文档结构来重新组织所述账本数据,以提供账本数据查询。
根据本公开的又一方面,提供了一种用于区块链账本数据的管理方法,包括:遍历所述区块链上的所有块,以提取每个交易的文档结构;以及使用所述文档结构来重新组织所述账本数据,以提供账本数据查询。
根据本公开的又一方面,提供了一种用于区块链账本数据的管理装置,包括:遍历单元,其被配置成遍历存储在所述区块链账本数据上的所有交易;组织单元,其被配置成通过所述账本数据的标识符来重新组织所述账本数据;以及索引单元,其被配置成针对所述标识符建立所述账本数据的索引。
根据本公开的又一方面,提供了一种用于区块链账本数据的管理方法,包括:遍历存储在所述区块链账本数据上的所有交易;通过所述账本数据的标识符来重新组织所述账本数据;以及针对所述标识符建立所述账本数据的索引。
根据本公开的又一方面,提供了一种程序产品,所述程序产品包括存储在其中的机器可读指令代码,其中,所述指令代码当由计算机读取和执行时,能够使所述计算机执行根据本公开的用于区块链账本数据的管理方法。
根据本公开的另一方面,提供了一种机器可读存储介质,其上携带有根据本公开的程序产品。
使用根据本公开的技术方案可以避免区块链上无效冲突交易的产生,并且本公开提供了一种根据需要访问区块链数据的简便方法,有效地提高了区块链开发人员、维护人员或数据分析人员的数据分析的效率。
从在此提供的描述中,进一步的适用性区域将会变得明显。这个概要中的描述和特定例子只是为了示意的目的,而不旨在限制本公开的范围。
附图说明
在此描述的附图只是为了所选实施例的示意的目的而非全部可能的实施,并且不旨在限制本公开的范围。在附图中:
图1为根据本公开的一个实施例的用于区块链账本数据的管理装置100的框图;
图2为根据本公开的一个实施例的区块链上无效冲突交易产生的示意图;
图3A示出了根据本公开的一个实施例的容易引起无效冲突的函数;
图3B示出了根据本公开的一个实施例的针对图3A中的易引起无效冲突的函数的改进建议;
图4为根据本公开的另一个实施例的用于区块链账本数据的管理装置200的框图;
图5为根据本公开的一个实施例的区块链上存储的JSON文档形式的账本数据,其在经过结构分析之后,获得示例性结构A和结构B;
图6为根据本公开的另一个实施例的用于区块链账本数据的管理装置300的框图;
图7为根据本公开的一个实施例的提供历史跟踪的经重新组织的账本数据,其中,所述账本数据通过其键key1、key2和key3进行了重新组织,进而提供了访问数据改变的完整历史的能力;
图8为根据本公开的一个实施例的用于区块链账本数据的管理方法的流程图;
图9为根据本公开的另一个实施例的用于区块链账本数据的管理方法的流程图;
图10为根据本公开的又一个实施例的用于区块链账本数据的管理方法的流程图;以及
图11为其中可以实现根据本公开的实施例的用于区块链账本数据的管理装置和方法的通用个人计算机的示例性结构的框图。
虽然本公开容易经受各种修改和替换形式,但是其特定实施例已作为例子在附图中示出,并且在此详细描述。然而应当理解的是,在此对特定实施例的描述并不打算将本公开限制到公开的具体形式,而是相反地,本公开目的是要覆盖落在本公开的精神和范围之内的所有修改、等效和替换。要注意的是,贯穿几个附图,相应的标号指示相应的部件。
具体实施方式
现在参考附图来更加充分地描述本公开的例子。以下描述实质上只是示例性的,而不旨在限制本公开、应用或用途。
提供了示例实施例,以便本公开将会变得详尽,并且将会向本领域技术人员充分地传达其范围。阐述了众多的特定细节如特定部件、装置和方法的例子,以提供对本公开的实施例的详尽理解。对于本领域技术人员而言将会明显的是,不需要使用特定的细节,示例实施例可以用许多不同的形式来实施,它们都不应当被解释为限制本公开的范围。在某些示例实施例中,没有详细地描述众所周知的过程、众所周知的结构和众所周知的技术。
目前,对于超级账本Fabric,如果交易同时提交,同时如果先前的交易修改了某个键值,则后续交易读取该键值时,可能会导致后续交易由于键的版本冲突而无效。由于某个键的版本已经被先前的交易修改,因此其与后续交易的键的版本不一致。现有技术中,用户不知道区块链上存在多少无效冲突交易,也不知道为什么会产生这样的无效冲突交易。因此,需要一种技术来分析所有这些无效冲突交易,并提供优化建议以改善用户的链码,以避免产生无效冲突交易。
本公开提供了一种分析无效冲突交易产生原因的技术方案,并给出相应的优化建议以避免所述无效冲突交易的产生。
<实施例一>
根据本公开的一个实施例,提供了一种用于区块链账本数据的管理装置,包括:遍历单元,其被配置成遍历所述区块链上每个无效冲突交易所在块及其相邻块中的一个或多个先前交易,直到确定引起所述无效冲突交易的先前交易;划分单元,其被配置成将所述无效冲突交易及引起所述无效冲突交易的先前交易组成的冲突对划分到不同的冲突模式;以及建议单元,其被配置成针对所述冲突模式,提供相应的改进链码的建议,以避免所述无效冲突交易的发生。
如图1所示,根据本公开的一个实施例的用于区块链账本数据的管理装置100可以包括遍历单元101、划分单元102和建议单元103。
根据本公开的一个实施例,遍历单元101可以被配置成遍历区块链上每个无效冲突交易所在的块及其相邻的块中的一个或多个先前交易,直到确定引起所述无效冲突交易的先前交易。例如,对于区块链上的每个无效冲突交易,遍历其所在块及其先前的一个或多个块中的在先交易,以查找导致该无效冲突的在先交易。
根据本公开的一个实施例,例如,所述遍历单元101可以配置成针对所述无效冲突交易的读账本操作的标识符(键值),通过回溯的方式查找遍历的路径中的写账本操作;以及将所述写账本操作所属的先前交易确定为引起所述无效冲突交易的先前交易。
例如,如图2所示,对于块B中的无效冲突交易TxF中的读取集Reads[]中的键A(keyA),通过回溯的方式遍历其所在块B中的先前交易TxE、TxD以及块B的相邻块A中的先前交易TxC,可以找到其在块A中的先前交易TxC中的写入集Writes[]中,亦即在块A中的先前交易TxC中对keyA进行了写入,则认定该先前交易TxC更新了这个keyA的版本。而这样的版本更新将引起后续无效冲突交易的发生。这里,本领域技术人员应该清楚,根据本实施例这样的读取集、写入集仅是示例性的,本公开并不限于此。
根据本公开的一个实施例,所述无效冲突交易和所述先前交易可以被同时提交。这里,本领域技术人员应该清楚,同时提交这些交易也仅是示例性的。
接下来,在识别出所有的无效冲突交易对(即无效冲突交易和导致其的先前交易组成的冲突对)之后,根据本公开的一个实施例,划分单元102可以被配置成将所述无效冲突交易对划分到不同的冲突模式。根据本公开的一个实施例,所述冲突模式包括但不限于并发调用相同的函数以及并发调用不同的函数。这里,本领域技术人员应该清楚,所述冲突模式也仅是示例性的,本公开并不限于此。
然后,根据本公开的一个实施例,建议单元103可以被配置成针对所述冲突模式,提供相应的改进链码的建议,以避免所述无效冲突交易的发生。例如,当并发调用同一函数引起冲突模式时,根据本实施例的建议单元103可以建议用户不要同时在其应用程序中批量调用此函数,并建议用户在其智能合约(链码)中完成批量调用的业务逻辑。例如,在图3A中示例性示出了一个容易引起无效冲突的函数,其中,由于可能存在同一账户的批量资产转移,因此可能产生同一函数的高并发调用冲突。而根据本实施例的建议单元103则可以建议改进链码即在链码中完成一次批量调用的业务逻辑,如图3B所示,其为针对图3A中的易引起无效冲突的函数的改进建议。这里,本领域技术人员应该清楚,图3A和图3B所示出的函数及建议也仅是示例性的,本公开并不限于此。
根据本公开的分析无效冲突交易产生原因的技术方案,其给出相应的链码优化建议避免了所述无效冲突交易的产生。
目前,对于超级账本Fabric,只能通过链码访问区块链数据,而链码只提供一些简单的API来查询数据,并不提供复杂的数据查询API。然而,链码是为开发应用程序而设计的,而不是用于离线数据分析。因此,如果用户想要离线分析数据,目前的链码没有提供访问区块链账本数据的API。本公开提出了一种方案来重新组织区块链账本数据,进而提供高级账本数据查询。
<实施例二>
根据本公开的一个实施例,提供了一种用于区块链账本数据的管理装置,包括:遍历单元,其被配置成遍历所述区块链上的所有块,以提取每个交易的文档结构;以及组织单元,其被配置成使用所述文档结构来重新组织所述账本数据,以提供账本数据查询。
如图4所示,根据本公开的一个实施例的用于区块链账本数据的管理装置200可以包括遍历单元101和组织单元201。
通常,数据以一种JSON文档的形式存储在区块链上。目前没有方法或工具显示区块链上存储了多少种文档,缺乏文档层次结构来帮助理解账本数据,因此用户很难根据需要操作账本数据,甚至开发人员自己也可能忘记随时间存储的数据格式。
因此在提供高级数据查询之前,首先需要提取各种JSON文档结构,以帮助用户理解账本数据。
根据本公开的实施例的遍历单元101可以被配置成遍历区块链上的所有块,以提取每个交易的文档结构。然后,划分单元102可以被配置成将所提取的文档结构划分成不同的类型。接下来,遍历单元101可以配置成基于所划分的类型,重新遍历所述区块链上的账本数据,以收集所有文档作为所述文档结构。
接下来,根据本公开的实施例的组织单元201可以被配置成使用所述文档结构来重新组织遍历的账本数据,以提供账本数据查询。
例如,图5示出区块链上存储的JSON文档形式的账本数据,其在经过结构分析之后,获得示例性结构A和结构B。例如,解析后的结构A涉及员工信息,员工信息可以由员工元素所组成。所述员工元素可以包括姓名、部门、电话、电邮及员工号等。解析后的结构B涉及地址,地址可以包括房号、街道、城镇、县、邮编及国家等。这里,本领域技术人员应该清楚,上述文档结构仅是示例性的,本公开并不限于此。
根据本公开的一个实施例,可以将收集的所有文档以所述文档结构的形式存储到第三方数据库,以提供更高级的数据查询例如交叉表查询、基于字段的查询等。
使用根据本公开实施例的用于区块链账本数据的管理装置可以提供更高级的基于文档结构的数据查询。
区块链的一个主要特征是无法篡改。因此,对于每个文档,其历史操作记录可以基于交易存储在区块链账本中。然而,区块链不提供访问或跟踪操作历史的便捷方式。因此,本公开提出了一种重新组织账本数据以提供历史跟踪的方法。
<实施例三>
根据本公开的一个实施例,提出了一种用于区块链账本数据的管理装置,包括:遍历单元,其被配置成遍历存储在所述区块链账本数据上的所有交易;组织单元,其被配置成通过所述账本数据的标识符来重新组织所述账本数据;以及索引单元,其被配置成针对所述标识符建立所述账本数据的索引。
如图6所示,根据本公开的实施例的用于区块链账本数据的管理装置300可以包括遍历单元101、组织单元201和索引单元301。
遍历单元101可以被配置成遍历存储在区块链账本数据上的所有交易。然后,组织单元201可以被配置成通过所述账本数据的键(标识符)来重新组织所述账本数据。接下来,索引单元301可以被配置成针对所述键建立所述账本数据的索引。
图7示出提供历史跟踪的经重新组织的账本数据,其中,所述账本数据通过其键例如key1、key2和key3进行了重新组织,进而提供了访问数据改变的完整历史的能力。
根据本公开的一个实施例,所述用于区块链账本数据的管理装置300还可以包括存储单元(未示出),所述存储单元可以将具有索引的账本数据存储到第三方数据库,以用于历史数据的追踪。
使用根据本公开实施例的用于区块链账本数据的管理装置,用户可以方便地跟踪键(标识符)的历史记录,并且可以访问键的更改的完整历史记录。
以上,分别描述了根据本公开的用于区块链账本数据的管理装置的三个实施例。然而,本领域技术人员应该清楚,根据本公开的用于区块链账本数据的管理装置并不限于上述三个实施例。换言之,本领域技术人员可以根据实际需要对根据本公开的用于区块链账本数据的管理装置中的各个单元进行任意组合而不局限于上述三个组合。
下面将结合图8至图10来描述根据本公开的实施例的用于区块链账本数据的管理方法。根据本公开的一个实施例,如图8所示,根据本公开的实施例的用于区块链账本数据的管理方法开始于步骤S810。
在步骤S810中,针对区块链上每个无效冲突交易,遍历其所在块及其相邻块中的一个或多个先前交易,直到确定引起所述无效冲突交易的先前交易。
接下来,在步骤S820中,将所述无效冲突交易及引起所述无效冲突交易的先前交易组成的冲突对划分到不同的冲突模式。
最后,在步骤S830中,针对所述冲突模式,提供相应的改进链码的建议,以避免所述无效冲突交易的发生。
根据本公开的一个实施例的用于区块链账本数据的管理方法还包括针对所述无效冲突交易的读账本操作的标识符,通过回溯的方式查找遍历的路径中的写账本操作;以及将所述写账本操作所属的先前交易确定为引起所述无效冲突交易的先前交易。
根据本公开的一个实施例的用于区块链账本数据的管理方法,其中,所述无效冲突交易和所述先前交易被同时提交。
根据本公开的一个实施例的用于区块链账本数据的管理方法,其中,所述冲突模式包括并发调用相同的函数以及并发调用不同的函数。
根据本公开的一个实施例的用于区块链账本数据的管理方法,其中,当所述冲突模式是并发调用相同的函数时,提供采用一次成批调用来改进链码的建议。
根据本公开的另一个实施例,如图9所示,根据本公开的实施例的用于区块链账本数据的管理方法开始于步骤S910。
在步骤S910中,遍历所述区块链上的所有块,以提取每个交易的文档结构。
接下来,在步骤S920中,使用所述文档结构来重新组织所述账本数据,以提供账本数据查询。
根据本公开的一个实施例的用于区块链账本数据的管理方法还包括将所提取的文档结构划分成不同的类型;以及基于所划分的类型,重新遍历所述区块链上的账本数据,以收集所有文档作为所述文档结构。
根据本公开的一个实施例的用于区块链账本数据的管理方法还包括将收集的所有文档以所述文档结构的形式存储到第三方数据库。
根据本公开的又一个实施例,如图10所示,根据本公开的实施例的用于区块链账本数据的管理方法开始于步骤S1010。
在步骤S1010中,遍历存储在所述区块链账本数据上的所有交易。
接下来,在步骤S1020中,通过所述账本数据的标识符来重新组织所述账本数据。
然后,在步骤S1030中,针对所述标识符建立所述账本数据的索引。
根据本公开的一个实施例的用于区块链账本数据的管理方法还包括将具有索引的账本数据存储到第三方数据库,以用于历史数据的追踪。
根据本公开的实施例的用于区块链账本数据的管理方法的上述步骤的各种具体实施方式前面已经作过详细描述,在此不再重复说明。
显然,根据本公开的用于区块链账本数据的管理方法的各个操作过程可以以存储在各种机器可读的存储介质中的计算机可执行程序的方式实现。
而且,本公开的目的也可以通过下述方式实现:将存储有上述可执行程序代码的存储介质直接或者间接地提供给系统或设备,并且该系统或设备中的计算机或者中央处理单元(CPU)读出并执行上述程序代码。此时,只要该系统或者设备具有执行程序的功能,则本公开的实施方式不局限于程序,并且该程序也可以是任意的形式,例如,目标程序、解释器执行的程序或者提供给操作系统的脚本程序等。
上述这些机器可读存储介质包括但不限于:各种存储器和存储单元,半导体设备,磁盘单元例如光、磁和磁光盘,以及其他适于存储信息的介质等。
另外,计算机通过连接到因特网上的相应网站,并且将依据本公开的计算机程序代码下载和安装到计算机中然后执行该程序,也可以实现本公开的技术方案。
图11为其中可以实现根据本公开的实施例的用于区块链账本数据的管理方法的通用个人计算机1300的示例性结构的框图。
如图11所示,CPU 1301根据只读存储器(ROM)1302中存储的程序或从存储部分1308加载到随机存取存储器(RAM)1303的程序执行各种处理。在RAM 1303中,也根据需要存储当CPU 1301执行各种处理等等时所需的数据。CPU 1301、ROM 1302和RAM 1303经由总线1304彼此连接。输入/输出接口1305也连接到总线1304。
下述部件连接到输入/输出接口1305:输入部分1306(包括键盘、鼠标等等)、输出部分1307(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,以及扬声器等)、存储部分1308(包括硬盘等)、通信部分1309(包括网络接口卡比如LAN卡、调制解调器等)。通信部分1309经由网络比如因特网执行通信处理。根据需要,驱动器1310也可连接到输入/输出接口1305。可拆卸介质1311比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器1310上,使得从中读出的计算机程序根据需要被安装到存储部分1308中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质1311安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图11所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质1311。可拆卸介质1311的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 1302、存储部分1308中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
在本公开的系统和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
以上虽然结合附图详细描述了本公开的实施例,但是应当明白,上面所描述的实施方式只是用于说明本公开,而并不构成对本公开的限制。对于本领域的技术人员来说,可以对上述实施方式作出各种修改和变更而没有背离本公开的实质和范围。因此,本公开的范围仅由所附的权利要求及其等效含义来限定。
关于包括以上实施例的实施方式,还公开下述的附记:
附记1.一种用于区块链账本数据的管理装置,包括:
遍历单元,其被配置成遍历所述区块链上每个无效冲突交易所在块及其相邻块中的一个或多个先前交易,直到确定引起所述无效冲突交易的先前交易;
划分单元,其被配置成将所述无效冲突交易及引起所述无效冲突交易的先前交易组成的冲突对划分到不同的冲突模式;以及
建议单元,其被配置成针对所述冲突模式,提供相应的改进链码的建议,以避免所述无效冲突交易的发生。
附记2.根据附记1所述的装置,其中,所述遍历单元进一步被配置成:
针对所述无效冲突交易的读账本操作的标识符,通过回溯的方式查找遍历的路径中的写账本操作;以及
将所述写账本操作所属的先前交易确定为引起所述无效冲突交易的先前交易。
附记3.根据附记2所述的装置,其中,所述无效冲突交易和所述先前交易被同时提交。
附记4.根据附记1所述的装置,其中,所述冲突模式包括并发调用相同的函数以及并发调用不同的函数。
附记5.根据附记4所述的装置,其中,当所述冲突模式是并发调用相同的函数时,所述建议单元进一步被配置成提供采用一次成批调用来改进链码的建议。
附记6.根据附记1所述的装置,其中,所述遍历单元还被配置成遍历所述区块链上的所有块,以提取每个交易的文档结构,并且
所述装置还包括组织单元,所述组织单元被配置成使用所述文档结构来重新组织所述账本数据,以提供账本数据查询。
附记7.根据附记6所述的装置,其中,所述划分单元还被配置成将所提取的文档结构划分成不同的类型;并且其中,所述遍历单元还被配置成基于所划分的类型,重新遍历所述区块链上的账本数据,以收集所有文档作为所述文档结构。
附记8.根据附记7所述的装置,还包括存储单元,所述存储单元被配置成将收集的所有文档以所述文档结构的形式存储到第三方数据库。
附记9.根据附记1所述的装置,其中,所述遍历单元还被配置成遍历存储在所述区块链账本数据上的所有交易,并且
所述装置还包括组织单元和索引单元,所述组织单元被配置成通过所述账本数据的标识符来重新组织所述账本数据,并且所述索引单元被配置成针对所述标识符建立所述账本数据的索引。
附记10.根据附记9所述的装置,还包括存储单元,所述存储单元被配置成将具有索引的账本数据存储到第三方数据库,以用于历史数据的追踪。
附记11.一种用于区块链账本数据的管理方法,包括:
针对所述区块链上每个无效冲突交易,遍历其所在块及其相邻块中的一个或多个先前交易,直到确定引起所述无效冲突交易的先前交易;
将所述无效冲突交易及引起所述无效冲突交易的先前交易组成的冲突对划分到不同的冲突模式;以及
针对所述冲突模式,提供相应的改进链码的建议,以避免所述无效冲突交易的发生。
附记12.根据附记11所述的方法,还包括:
针对所述无效冲突交易的读账本操作的标识符,通过回溯的方式查找遍历的路径中的写账本操作;以及
将所述写账本操作所属的先前交易确定为引起所述无效冲突交易的先前交易。
附记13.根据附记12所述的方法,其中,所述无效冲突交易和所述先前交易被同时提交。
附记14.根据附记11所述的方法,其中,所述冲突模式包括并发调用相同的函数以及并发调用不同的函数。
附记15.根据附记14所述的方法,其中,当所述冲突模式是并发调用相同的函数时,提供采用一次成批调用来改进链码的建议。
附记16.根据附记11所述的方法,还包括:
遍历所述区块链上的所有块,以提取每个交易的文档结构;以及
使用所述文档结构来重新组织所述账本数据,以提供账本数据查询。
附记17.根据附记16所述的方法,还包括:
将所提取的文档结构划分成不同的类型;以及
基于所划分的类型,重新遍历所述区块链上的账本数据,以收集所有文档作为所述文档结构。
附记18.根据附记17所述的方法,还包括:
将收集的所有文档以所述文档结构的形式存储到第三方数据库。
附记19.根据附记11所述的方法,还包括:
遍历存储在所述区块链账本数据上的所有交易;
通过所述账本数据的标识符来重新组织所述账本数据;以及
针对所述标识符建立所述账本数据的索引。
附记20.一种程序产品,包括存储在其中的机器可读指令代码,其中,所述指令代码当由计算机读取和执行时,能够使所述计算机执行根据附记11-19中任何一项所述的方法。
Claims (10)
1.一种用于区块链账本数据的管理装置,包括:
遍历单元,其被配置成遍历所述区块链上每个无效冲突交易所在块及其相邻块中的一个或多个先前交易,直到确定引起所述无效冲突交易的先前交易;
划分单元,其被配置成将所述无效冲突交易及引起所述无效冲突交易的先前交易组成的冲突对划分到不同的冲突模式;以及
建议单元,其被配置成针对所述冲突模式,提供相应的改进链码的建议,以避免所述无效冲突交易的发生。
2.根据权利要求1所述的装置,其中,所述遍历单元进一步被配置成:
针对所述无效冲突交易的读账本操作的标识符,通过回溯的方式查找遍历的路径中的写账本操作;以及
将所述写账本操作所属的先前交易确定为引起所述无效冲突交易的先前交易。
3.根据权利要求2所述的装置,其中,所述无效冲突交易和所述先前交易被同时提交。
4.根据权利要求1所述的装置,其中,所述冲突模式包括并发调用相同的函数以及并发调用不同的函数。
5.根据权利要求4所述的装置,其中,当所述冲突模式是并发调用相同的函数时,所述建议单元进一步被配置成提供采用一次成批调用来改进链码的建议。
6.一种用于区块链账本数据的管理方法,包括:
遍历所述区块链上的所有块,以提取每个交易的文档结构;以及
使用所述文档结构来重新组织所述账本数据,以提供账本数据查询。
7.根据权利要求6所述的方法,还包括:
将所提取的文档结构划分成不同的类型;以及
基于所划分的类型,重新遍历所述区块链上的账本数据,以收集所有文档作为所述文档结构。
8.根据权利要求7所述的方法,还包括将收集的所有文档以所述文档结构的形式存储到第三方数据库。
9.一种用于区块链账本数据的管理方法,包括:
遍历存储在所述区块链账本数据上的所有交易;
通过所述账本数据的标识符来重新组织所述账本数据;以及
针对所述标识符建立所述账本数据的索引。
10.根据权利要求9所述的方法,还包括:
将具有索引的账本数据存储到第三方数据库,以用于历史数据的追踪。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910410016.2A CN111949315A (zh) | 2019-05-16 | 2019-05-16 | 用于区块链账本数据的管理装置和方法 |
US16/868,899 US20200364183A1 (en) | 2019-05-16 | 2020-05-07 | Device and method for managing ledger data on blockchain |
EP20173459.7A EP3739471A1 (en) | 2019-05-16 | 2020-05-07 | Device and method for managing ledger data on blockchain |
JP2020081893A JP2020188459A (ja) | 2019-05-16 | 2020-05-07 | ブロックチェーンの台帳データの管理装置及び管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910410016.2A CN111949315A (zh) | 2019-05-16 | 2019-05-16 | 用于区块链账本数据的管理装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111949315A true CN111949315A (zh) | 2020-11-17 |
Family
ID=70616964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910410016.2A Pending CN111949315A (zh) | 2019-05-16 | 2019-05-16 | 用于区块链账本数据的管理装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200364183A1 (zh) |
EP (1) | EP3739471A1 (zh) |
JP (1) | JP2020188459A (zh) |
CN (1) | CN111949315A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210266173A1 (en) * | 2020-02-21 | 2021-08-26 | International Business Machines Corporation | Resolution of conflicting data |
CN114764709A (zh) * | 2021-01-14 | 2022-07-19 | 富士通株式会社 | 信息处理装置和信息处理方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111967062A (zh) * | 2020-08-21 | 2020-11-20 | 支付宝(杭州)信息技术有限公司 | 基于区块链的数据处理系统、方法及装置 |
US11790459B1 (en) | 2023-03-23 | 2023-10-17 | Proforce Ledger, Inc. | Methods and apparatuses for AI-based ledger prediction |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180225448A1 (en) * | 2017-02-07 | 2018-08-09 | Microsoft Technology Licensing, Llc | Transaction processing for consortium blockchain network |
CN109191124A (zh) * | 2018-08-16 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 区块链网络、部署方法及存储介质 |
CN109447641A (zh) * | 2018-10-26 | 2019-03-08 | 众安信息技术服务有限公司 | 向区块链浏览器传输区块链数据的方法和设备 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10839020B2 (en) * | 2014-04-14 | 2020-11-17 | Netspective Communications Llc | Multi-source user generated electronic data integration in a blockchain-based transactional system |
US11164165B1 (en) * | 2016-04-08 | 2021-11-02 | Greenberg & Lieberman, Llc | Multi-asset blockchain network platform |
US9967088B2 (en) * | 2016-05-23 | 2018-05-08 | Accenture Global Solutions Limited | Rewritable blockchain |
JP2020526811A (ja) * | 2017-07-07 | 2020-08-31 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ブロックチェーンスクリプトにおける制御フロー |
US11580238B2 (en) * | 2018-01-29 | 2023-02-14 | Vinay Kumar Agarwal | Proof-of-approval distributed ledger |
US11494344B2 (en) * | 2018-03-06 | 2022-11-08 | International Business Machines Corporation | Customized endorsement logic for blockchain |
US10896149B2 (en) * | 2018-07-29 | 2021-01-19 | International Business Machines Corporation | Composition operators for smart contract |
US11308073B2 (en) * | 2018-08-08 | 2022-04-19 | International Business Machines Corporation | Database node functional testing |
US11070360B2 (en) * | 2018-08-13 | 2021-07-20 | International Business Machines Corporation | Parallel transaction validation and block generation in a blockchain |
US10721069B2 (en) * | 2018-08-18 | 2020-07-21 | Eygs Llp | Methods and systems for enhancing privacy and efficiency on distributed ledger-based networks |
US11876910B2 (en) * | 2019-01-31 | 2024-01-16 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing a multi tenant blockchain platform for managing Einstein platform decisions using distributed ledger technology (DLT) |
US20200272619A1 (en) * | 2019-02-21 | 2020-08-27 | Fiducia DLT LTD | Method and system for audit and payment clearing of electronic trading systems using blockchain database |
US11790368B2 (en) * | 2019-03-05 | 2023-10-17 | International Business Machines Corporation | Auto-evolving database endorsement policies |
-
2019
- 2019-05-16 CN CN201910410016.2A patent/CN111949315A/zh active Pending
-
2020
- 2020-05-07 US US16/868,899 patent/US20200364183A1/en not_active Abandoned
- 2020-05-07 JP JP2020081893A patent/JP2020188459A/ja active Pending
- 2020-05-07 EP EP20173459.7A patent/EP3739471A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180225448A1 (en) * | 2017-02-07 | 2018-08-09 | Microsoft Technology Licensing, Llc | Transaction processing for consortium blockchain network |
CN109191124A (zh) * | 2018-08-16 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 区块链网络、部署方法及存储介质 |
CN109447641A (zh) * | 2018-10-26 | 2019-03-08 | 众安信息技术服务有限公司 | 向区块链浏览器传输区块链数据的方法和设备 |
Non-Patent Citations (1)
Title |
---|
ANKUR SHARMA,ET AL: "How to Databasify a blockchain: the case of Hyperledger fabric", ARXIV, pages 1 - 28 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210266173A1 (en) * | 2020-02-21 | 2021-08-26 | International Business Machines Corporation | Resolution of conflicting data |
US11792022B2 (en) * | 2020-02-21 | 2023-10-17 | International Business Machines Corporation | Resolution of conflicting data |
CN114764709A (zh) * | 2021-01-14 | 2022-07-19 | 富士通株式会社 | 信息处理装置和信息处理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2020188459A (ja) | 2020-11-19 |
US20200364183A1 (en) | 2020-11-19 |
EP3739471A1 (en) | 2020-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110291517B (zh) | 图数据库中的查询语言互操作性 | |
CN111949315A (zh) | 用于区块链账本数据的管理装置和方法 | |
CN111143389B (zh) | 事务执行方法、装置、计算机设备及存储介质 | |
CN107818115B (zh) | 一种处理数据表的方法及装置 | |
US7188116B2 (en) | Method and apparatus for deleting data in a database | |
KR20020034998A (ko) | 단일 집합 프로세스에서 다수의 데이터 마트를 분포시키는방법 및 장치 | |
JP7438603B2 (ja) | トランザクション処理方法、装置、コンピュータデバイス及びコンピュータプログラム | |
CN111444027B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
JP5075653B2 (ja) | データベース管理方法、データベース管理装置、データベース管理プログラム、及び、データベースシステム | |
CN111046237A (zh) | 用户行为数据处理方法、装置、电子设备及可读介质 | |
Vajk et al. | Automatic NoSQL schema development: A case study | |
CN114329096A (zh) | 一种原生图数据库处理方法及系统 | |
Peng et al. | Efficient hop-constrained st simple path enumeration | |
US10318388B2 (en) | Datasets profiling tools, methods, and systems | |
CN117421302A (zh) | 一种数据处理方法及相关设备 | |
Figueiredo et al. | Moredata: A geospatial data enrichment framework | |
CN114385657A (zh) | 数据存储方法、装置及存储介质 | |
CN117194080B (zh) | 消息处理方法及装置 | |
CN115098228B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
CN113449005B (zh) | 账户管理方法及装置 | |
US20230359668A1 (en) | Dataflow graph datasets | |
Wu et al. | DMOMVP: a business-process-oriented data model optimization method based on database vertical partition | |
JP2018181121A (ja) | 分析装置、分析プログラム及び分析方法 | |
CN114691683A (zh) | 一种业务数据的管理系统及其处理方法、装置和设备 | |
CN118012847A (zh) | 基于元模型的数据模型版本管理方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |