Method and system for generating blocks of a partitioned blockchain

By introducing technical means of partitioned blockchain and paired sequences into the blockchain system, the problem that existing blockchains are difficult to store multiple transaction formats and types is solved, and the resource efficiency and license use are improved.

CN114510750BActive Publication Date: 2025-03-28MASTERCARD INT INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210312737.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2016-07-15
Filing Date
2017-06-07
Publication Date
2025-03-28
Estimated Expiration
2037-06-07

AI Technical Summary

Technical Problem

Existing blockchain systems have difficulty storing multiple transaction formats and types in a single blockchain, resulting in excessive computing resources and processing power required to deploy and operate blockchains, and also limiting the licensed use of licensed blockchains.

Method used

By introducing the concept of partitioned blockchain, using paired sequences that capture subnet information, new block headers and new blocks are generated, allowing a single blockchain to store multiple formats and types of transactions, reducing resource requirements, and enhancing the licensed use of licensed blockchains.

Benefits of technology

It realizes the storage of multiple transaction formats and types in a single blockchain, reducing the computing resources and processing power requirements for deploying and operating the blockchain, while enhancing the licensed use of licensed blockchains.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114510750B_ABST
    Figure CN114510750B_ABST
Patent Text Reader

Abstract

A method for generating blocks of a partitioned blockchain, comprising: storing blocks comprising the partitioned blockchain, wherein each block comprises a block header and a transaction entry; receiving at least one transaction data entry for each of a plurality of subnets; generating a hash value of a block header included in a most recently received block; generating a new block header, wherein the new block header comprises the generated hash value, a timestamp, and a sequence of pairs, wherein the sequence of pairs comprises pairs for each of a plurality of subnets, each pair comprising a subnet identifier associated with the corresponding subnet and a merkle root of each transaction data entry received for the corresponding subnet; generating a new block, wherein the new block comprises the generated new block header and at least one transaction data entry for each of the plurality of subnets; and electronically sending the new block to a plurality of nodes associated with the partitioned blockchain.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with application number 201780043007.3 filed on June 7, 2017.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS

[0003] This application claims the benefit of and priority to U.S. Application No. 15 / 211,111, filed on July 15, 2016. The entire disclosure of the above application is incorporated herein by reference. Technical Field

[0004] The present disclosure relates to the generation of blocks for a partitioned blockchain, and more particularly, to the use of pairwise sequences that capture subnet information to enable a permissioned or permissionless blockchain to store transactions of multiple formats and types for a more robust blockchain with greater utility. Background Art

[0005] Blockchain has been developed to provide a decentralized distributed database to record electronic transactions. In many cases, blockchain has been used to use digital, virtual, cryptocurrency-based transactions. In other cases, blockchain can be used to simply record data at different times, for example, for confirmation and time stamping of files. In any case, the blockchain is generally composed of blocks, where each block includes a header and a single series of transaction records.

[0006] However, the transaction records stored in the blocks that make up the blockchain are usually required to have the same data format and include the same data type, and sometimes even the same size of data. In the case where an entity wants to use multiple types of blockchains, for example, different blockchains for several different currencies, the entity must deploy and operate each different blockchain, which may require a lot of resources and processing power. Similarly, an entity may want to operate a permissioned blockchain, where different levels of permission can be used to participate in the blockchain, for example, by limiting the nodes that can add new blocks to the blockchain. However, since the format of all transactions in a traditional blockchain is similar, permissions may not be extended to the actual transactions in the blockchain.

[0007] Therefore, there is a need for a technical solution that provides a partitioned blockchain that is capable of storing multiple transaction formats and types in a single blockchain, reducing the computing resources and processing power required to deploy and operate a blockchain, while also providing enhanced use of permissions for a permissioned blockchain. Summary of the invention

[0008] The present disclosure provides a description of systems and methods for generating blocks of a partitioned blockchain. The use of a partitioned blockchain can enable a single blockchain to store transaction records of multiple different blockchains, thereby reducing the deployment required to implement multiple blockchains to a single partitioned blockchain. In addition, partitioning of transaction records in a blockchain can limit access to transaction records because transaction records can be formatted differently in each partition.

[0009] A method for generating a block of a partitioned blockchain, comprising: storing at least one block constituting the partitioned blockchain in a memory of a processing server, wherein the at least one block includes a newly added block, and the newly added block includes at least a block header and one or more transaction entries; receiving, by a receiving device of the processing server, at least one transaction data entry for each of a plurality of subnets; generating, by a hash module of the processing server, a hash value by applying one or more hash algorithms to at least a block header included in the newly added block; generating, by a generation module of the processing server, a new block header, wherein the new block The header includes at least a generated hash value, a timestamp, and a pair sequence, wherein the pair sequence includes pairs for each of the multiple subnets, and each pair includes at least a subnet identifier associated with the corresponding subnet and a merkle root of each of the at least one transaction data entry received for the corresponding subnet; a new block is generated by a generation module of the processing server, wherein the new block includes at least a generated new block header and the at least one transaction data entry for each of the multiple subnets; and a sending device of the processing server at least electronically sends the generated new block to multiple nodes associated with the partitioned blockchain.

[0010] A system for generating blocks of a partitioned blockchain, comprising: a memory of a processing server, configured to store at least one block constituting the partitioned blockchain, wherein the at least one block includes a newly added block, the newly added block at least including a block header and one or more transaction entries; a receiving device of the processing server, configured to receive at least one transaction data entry of each subnet in a plurality of subnets; a hash module of the processing server, configured to generate a hash value by applying one or more hash algorithms to at least a block header included in the newly added block; a generation module of the processing server, configured to: generate a new block header, wherein In the processing module, the new block header includes at least a generated hash value, a timestamp, and a pair sequence, wherein the pair sequence includes pairs for each subnet in a plurality of subnets, each pair includes at least a subnet identifier associated with the corresponding subnet and a merkle root of each of at least one transaction data entry received for the corresponding subnet, and the generation module generates a new block, wherein the new block includes at least a generated new block header and the at least one transaction data entry for each subnet in the plurality of subnets; and a sending device of the processing server, which is configured to electronically send at least the generated new block to a plurality of nodes associated with the partitioned blockchain. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The scope of the present disclosure can be best understood from the following detailed description of exemplary embodiments when read in conjunction with the accompanying drawings, which include the following figures:

[0012] Figure 1 is a block diagram illustrating a high-level system architecture for generating and implementing a partitioned blockchain according to an exemplary embodiment;

[0013] Figure 2 is a diagram showing a method according to an exemplary embodiment Figure 1 A block diagram of a processing server for generating blocks and joining blocks in a partitioned blockchain;

[0014] Figure 3 is a diagram showing the use of an exemplary embodiment Figure 2 A flowchart of a process for a processing server to generate block headers for a partitioned blockchain having multiple subnets;

[0015] Figure 4 is a diagram showing the use of Figure 2 A flowchart of a process by which a processing server generates blocks of a partitioned blockchain;

[0016] Figure 5 is a flow chart illustrating an exemplary method of generating a block for a partitioned blockchain according to an exemplary embodiment;

[0017] Figure 6 is a block diagram illustrating a computer system architecture according to an exemplary embodiment.

[0018] Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter.It should be understood that the detailed description of the exemplary embodiments is for illustrative purposes only and is therefore not intended to necessarily limit the scope of the present disclosure. DETAILED DESCRIPTION

[0019] Professional terminology

[0020] Blockchain-a ledger of all transactions of a blockchain-based currency. One or more computing devices may constitute a blockchain network that may be configured to process and record transactions as part of a block in a blockchain. Once a block is completed, the block is added to the blockchain and the transaction record is updated. In many cases, the blockchain may be a chronological ledger of transactions, or may be presented in any other order suitable for use by the blockchain network. In some configurations, transactions recorded in the blockchain may include a destination address and a currency amount, so that the blockchain records how much currency is attributable to a specific address. In some cases the transaction is financial, while in some cases the transaction is not financial, or may include additional or different information, such as a source address, a timestamp, etc. In some embodiments, the blockchain may also include or alternatively include almost any type of data in the form of a transaction, which is placed or needs to be placed in a permissionless distributed database that maintains a growing list of data records that is protected from tampering and modification, even by the operator of the data, and the blockchain may be confirmed and verified by the blockchain network through proof of work and / or any other suitable verification technology associated therewith. In some cases, data related to a given transaction may further include additional data that is appended to the transaction data and is not directly part of the transaction. In some cases, the inclusion of such data in a blockchain may constitute a transaction. In such cases, a blockchain may not be directly associated with a particular digital currency, virtual currency, legal tender, or other type of currency. In some cases, participation in a blockchain (e.g., as a node that submits and / or confirms transactions) may be possible without permission (e.g., without moderation or restriction). In other cases, a blockchain may be a permissioned blockchain in which only authorized computing devices may operate as nodes, where the level of participation may be based on the permissions associated therewith.

[0021] A system for generating and using partitioned blockchains

[0022] Figure 1A system 100 for implementing, generating, and using a partitioned blockchain in a blockchain network is shown.

[0023] The system 100 includes a processing server 102. The processing server 102, discussed in more detail below, may be a node in a blockchain network configured to generate blocks and add blocks to a partitioned blockchain. The processing server 102 may be connected to multiple other blockchain nodes 104 (e.g., Figure 1 The processing server 102 and the blockchain nodes 104 may utilize proof of work or other suitable types of consensus mechanisms to confirm and validate blocks to be added to the partitioned blockchain using the associated methods and systems.

[0024] The processing server 102 may be configured to receive data from one or more computing devices 106 (eg, Figure 1 The computing devices 106a and 106b shown receive transaction records. Each transaction record received by the processing server 102 can be associated with one of the multiple different subnets. As used herein, the term "subnet" can refer to a partition in a partitioned blockchain, which represents a category, group, or other division of transaction records in the partitioned blockchain, which are formatted or subject to semantic specifications associated with each subnet. For example, a partitioned blockchain may include transaction records for three different subnets, wherein the transaction records associated with each respective subnet may be formatted differently and may involve the transfer of different cryptocurrencies associated with each subnet.

[0025] In some embodiments, processing server 102 may receive transaction records for multiple subnets from a single computing device 106. In other embodiments, processing server 102 may receive transaction records for a single subnet from computing device 106, and may receive transaction records from multiple different computing devices 106, where each computing device 106 may provide transaction records for one of the multiple different subnets. For example, computing device 106a may provide transaction records for a first subnet, while computing device 106b may provide transaction records for a second subnet.

[0026] The transaction record may be formatted based on a semantic specification associated with the corresponding subnet. The semantic specification may include rules or other data regarding the format and use of the transaction record. For example, the semantic specification of the subnet may include rules regarding which data is included in the transaction record, rules for the ordering of the data, rules for the size of each data value, and the hashing algorithm used when generating the merkle root of the subnet, which will be described in more detail below. For example, the subnet semantic specification may require that the transaction record include a 4-byte timestamp, a 16-byte transaction amount, a 16-byte source address and a corresponding 32-byte signature, a 4-byte number of destinations, and for each of a plurality of destinations, a 16-byte destination address and a corresponding 32-byte signature, and may also require a specific hashing algorithm, for example, double hashing using the SHA-256 algorithm for generating the merkle root of the subnet.

[0027] In some embodiments, processing server 102 may receive transaction records formatted according to the semantic specifications of the corresponding subnet. In other embodiments, processing server 102 may receive transaction data entries for each transaction, which may include data to be included in the transaction record, wherein processing server 102 may generate the transaction record according to the semantic specifications of the subnets, such as by formatting the received data accordingly. In some cases, processing server 102 may receive a mixture of formatted transaction records and unformatted transaction data. For example, processing server 102 may receive data for transactions for a first subnet from computing device 106a, which may need to be formatted according to the semantic specifications of the first subnet, and may receive appropriately formatted transaction records for a second subnet from computing device 106b.

[0028] Once the processing server 102 has received and / or generated the transaction record, the processing server 102 can generate a new block header to include it in a new block to be added to the partitioned blockchain. The new block header may include at least a timestamp, a hash value corresponding to the previous block in the blockchain, and a sequence of pairs. The timestamp may be generated by the processing server 102 when generating the new block header, and may be formatted and represented based on rules associated with the partition of the blockchain. For example, the timestamp may be the number of seconds since the beginning of the UNIX epoch, or may be a date and time in a specific format. The hash value may be generated by applying one or more hash algorithms to the block header of the previous block that was most recently added to the blockchain. Thus, the hash value may serve as a designator for the previous block, which may be used by the blockchain node 104 to ensure the correct ordering of the blocks in the blockchain. The one or more hash algorithms used when generating the hash value may be specific to the partitioned blockchain so that each blockchain node 104 that generates a new block header in the blockchain network uses the same hash algorithm.

[0029] The sequence of pairs included in the new block header may be generated by the processing server 102 and may include a pair for each subnet to which the partitioned blockchain corresponds. For example, in the example above, the sequence of pairs may include two pairs: one for each of the first and second subnets. Each pair in the sequence of pairs may include a subnet identifier and a merkle root. The subnet identifier may be an identification value associated with the corresponding subnet. For example, the subnet identifier may be an integer, an alphanumeric, or other suitable value. In some cases, the subnet identifier may be in a specific format that may be associated with the partitioned blockchain so that each subnet identifier included in a pair in the sequence of pairs is similarly formatted.

[0030] A merkle root may be generated by hashing each transaction record associated with the respective subnet, each transaction record to be included in a new block to be added to the partitioned blockchain. Methods for generating merkle roots for multiple data values ​​(e.g., transaction records here) will be apparent to those skilled in the relevant art. In some cases, as part of generating a merkle root, the individual transaction records may be sorted in a particular order. For example, each transaction record may be hashed, the hash values ​​then sorted by a natural order (e.g., ascending numerical order), and a merkle root may be generated by hashing the transaction records arranged in that order. In some cases, the ordering of the merkle roots for the subnets and / or the hashing algorithm used in the merkle roots may be part of the semantic specification of the respective subnets. In other cases, the ordering and / or hashing algorithm may be specified by rules associated with the partitioned blockchain itself.

[0031] In some cases, the processing server 102 may receive transaction records for certain subnets, but may not receive any transaction records for one or more subnets during the generation of a new block. In this case, a predefined value may be used to generate a merkle root for that subnet. For example, in one example, a merkle root may be generated by hashing a value of "0" using the same hashing algorithm as other merkle roots. The use of predefined values ​​may enable the generation of merkle roots for subnets that have not received transaction records, which facilitates the generation of block headers for blocks without having to wait for transaction records, and may also be used to indicate that the block does not contain any transaction records for the subnet at this time, because the value of the merkle root clearly indicates this situation.

[0032] Once the new block header is generated, the processing server 102 can generate a new block. The new block can include the new block header and all transaction records received and / or generated for inclusion in the new block, each of which has been used in a corresponding merkle root included in the new block header. The processing server 102 can then add the new block to the blockchain, and can electronically send the new block and / or updated blockchain to each blockchain node 104 in the blockchain network connected to it. The blockchain node 104 can then use suitable methods and systems to confirm the new block and propagate the new block to other blockchain nodes 104 throughout the blockchain network.

[0033] In some embodiments, the new block header of the generated new block may include additional data. The additional data may be based on the partitioned blockchain itself, for example, the additional data may be required as part of the implementation of the partitioned blockchain (e.g., a version number), or the additional data may be based on the permission type of the partitioned blockchain. For example, a permissionless blockchain may include a difficulty target and a nonce in the new block header, which may be generated by the processing server 102 as part of the consensus mechanism (e.g., proof of work) used when generating the new block header. In another example, a permissioned blockchain may include one or more audit signatures in the new block header.

[0034] The methods and systems discussed herein may enable the generation and implementation of a partitioned blockchain, wherein transactions in multiple formats may be included in a single blockchain by using subnets. Each subnet may be implemented as a pair of sequences that may be included in the block header of a block to be added to the partitioned blockchain. The use of sequences may enable the combination of multiple transaction types into a partitioned blockchain without significantly increasing the data size of the block header. In addition, the use of subnets that may format transaction records using different semantic specifications may enable the partitioned blockchain to store a distributed database of transaction records of multiple different subnets, wherein only authorized entities understand the transaction records of the subnets. For example, the semantic specification of a subnet may only be known by an authorized entity, which may make the transaction records of the subnet incomprehensible to unauthorized entities. Therefore, the partitioned blockchain discussed herein may not only increase the capacity of the blockchain, but also maintain the security and trust level of the existing blockchain format because it is capable of storing transaction records in multiple formats.

[0035] Processing Server

[0036] Figure 2 An embodiment of a processing server 102 in the system 100 is shown. It will be apparent to those skilled in the relevant art that Figure 2The embodiments of the processing server 102 shown in the foregoing are provided for illustration only and may not be exhaustive of all possible configurations of the processing server 102 for performing the functions discussed herein. For example, Figure 6 The computer system 600 shown and discussed in greater detail below may be a suitable configuration for the processing server 102 .

[0037] The processing server 102 may include a receiving device 202. The receiving device 202 may be configured to receive data on one or more networks via one or more network protocols. The receiving device 202 may be configured to receive data from the computing device 104 and other devices and systems via a suitable communication network and a corresponding network protocol. In some embodiments, the receiving device 202 may include multiple devices, for example, different receiving devices that receive data through different networks (e.g., a first receiving device that receives data through a local area network and a second receiving device that receives data through a blockchain network). The receiving device 202 may receive an electronically transmitted data signal, wherein the data may be superimposed or otherwise encoded onto the data signal, and the data signal may be decoded, parsed, read, or otherwise obtained by receiving the data signal through the receiving device 202. In some cases, the receiving device 202 may include a parsing module that parses the received data signal to obtain the data superimposed thereon. For example, the receiving device 202 may include a parser program that is configured to receive a data signal and transform the received data signal into an available input for the processing device to perform a function to complete the methods and systems described herein.

[0038] The receiving device 202 may be configured to receive a data signal electronically transmitted by the computing device 106, which may be superimposed or encoded with a transaction record and / or transaction data. Each transaction record or transaction data set may be accompanied by a subnet identifier associated with the corresponding subnet. In some cases, the data signal electronically transmitted by the computing device 106 and received by the receiving device 202 may be superimposed or encoded with a merkle root of the corresponding transaction. The receiving device 202 may also be configured to receive a data signal from the blockchain node 104, which may be superimposed or encoded with blockchain data, such as a new block for verifying and adding to a partitioned blockchain.

[0039] The processing server 102 may also include a communication module 204. The communication module 204 may be configured to transmit data between modules, engines, databases, memories, and other components of the processing server 102 for performing the functions discussed herein. The communication module 204 may consist of one or more communication types and utilize various communication methods for communication within a computing device. For example, the communication module 204 may include a bus, a pin connector, a wire, etc. In some embodiments, the communication module 204 may also be configured to communicate between internal components of the processing server 102 and external components of the processing server 102 (e.g., externally connected databases, display devices, input devices, etc.). The processing server 102 may also include a processing device. The processing device may be configured to perform the functions of the processing server 102 discussed herein, which is obvious to those skilled in the relevant art. In some embodiments, the processing device may include multiple engines and / or modules (e.g., query module 210, hash module 212, data identification module 214) that are specifically configured to perform one or more functions of the processing device, and / or the processing device may consist of the above-mentioned engines and / or modules. As used herein, the term "module" can be software or hardware that is specifically programmed to receive input, perform one or more processes using the input, and provide output. Based on the content of this disclosure, the input, output, and processing performed by various modules will be obvious to those skilled in the art.

[0040] The processing server 102 may include a subnet database 206. The subnet database 206 may be configured to store a plurality of subnet profiles 208 using a suitable data storage format and schema. The subnet database 206 may be a relational database that utilizes a structured query language to store, identify, modify, update, access, and the like structured data sets stored therein. Each subnet profile 208 may be a structured data set configured to store data related to a subnet. Each subnet profile 208 may include at least a subnet identifier and semantic specification data associated with the relevant subnet. The semantic specification data may include rules for formatting transaction records associated with the relevant subnet, and may also include additional rules and / or data associated with the relevant subnet, such as a hash algorithm and sorting information used when generating a merkle root for a pair of the relevant subnet.

[0041] The processing server 102 may include a query module 210. The query module 210 may be configured to perform a query on a database to identify information. The query module 210 may receive one or more data values ​​or query strings, and based thereon may perform a string query on an indicated database (e.g., the subnet database 206) to identify information stored therein. The query module 210 may then output the identified information to an appropriate engine or module of the processing server 102 as needed. The query module 210 may, for example, perform a query on the subnet database 206 to identify a subnet profile 208 for a plurality of transaction data entries received from the computing device 106, which may be used by the processing server 102 in the process of formatting the transaction data entries and including them as transaction records in the partitioned blockchain.

[0042] The processing server 102 may also include a hash module 212. The hash module 212 may be configured to generate a hash value by applying one or more hash algorithms to data provided to the hash module 212. The hash module 212 may receive as input the data to be hashed, may apply one or more hash algorithms to the data, and may output the generated hash value to another module or engine of the processing server 102. In some cases, the hash module 212 may be provided with a hash algorithm to be used when generating the hash value. In other cases, the hash module 212 may identify the hash algorithm to be used, for example, by generating a query and executing the query on the subnet database 206 and the memory 218 by the query module 210 to identify the hash algorithm to be used. For example, the hash module 212 may be configured to generate a hash value for a block header, generate a hash value for a transaction record, and generate a Merkle root for multiple sets of transaction records.

[0043] The processing server 102 may also include a generation module 214. The generation module 214 may be configured to generate transaction records, new block headers, and new blocks for performing the functions of the processing server 102 as discussed herein. The generation module 214 may receive a request, may generate data based on the request, and may output the generated data to another module or engine of the processing server 102. For example, the generation module 214 may be instructed to generate a transaction record for the received transaction data based on the subnet semantic specification included in the relevant subnet profile 208. The generation module 214 may also be configured to generate a new block header. The new block header may include at least a timestamp, a hash value of a previous block header (e.g., generated by the hash module 212), and a sequence of pairs also generated by the generation module 214. The sequence of pairs may include: a pair for each subnet in the partitioned blockchain, the pair including a subnet identifier and a Merkle root of the transaction record of the subnet to be included in the corresponding block (e.g., generated by the hash module 212). The generation module 214 may also be configured to generate a new block consisting of a new block header and a corresponding transaction record.

[0044] The processing server 102 may also include a sending device 216. The sending device 216 may be configured to send data over one or more networks via one or more network protocols. The sending device 216 may be configured to send data to the computing device 106 and other entities via a suitable communication network and a corresponding network protocol. In some embodiments, the sending device 216 may include multiple devices, for example, different sending devices that send data over different networks (e.g., a first sending device that sends data over a local area network and a second sending device for sending data over a blockchain network). The sending device 216 may electronically send a data signal superimposed with data that can be parsed by a receiving computing device. In some cases, the sending device 216 may include one or more modules for superimposing, encoding, or otherwise formatting data into a data signal suitable for transmission.

[0045] The sending device 216 can be configured to electronically send a data signal to a blockchain node 104 in a blockchain network to which the processing server 102 is connected, the data signal being superimposed or encoded with a new block and / or updated blockchain. The sending device 216 can also be configured to electronically send a data signal to the computing device 106 and other entities for use in sending data used in conjunction with the functionality discussed herein. For example, the sending device 216 can send semantic specification data to the computing device 106 for use in formatting transaction records for a subnet.

[0046] The processing server 102 may also include a memory 218. The memory 218 may be configured to store data used by the processing server 102 to perform the functions discussed herein. The memory 218 may be configured to store data using a suitable data formatting method and pattern, and may be any suitable type of memory, such as a read-only memory, a random access memory, etc. The memory 218 may include, for example, encryption keys and algorithms, communication protocols and standards, data formatting standards and protocols, program code for modules and applications of processing devices, and other data that may be suitable for use by the processing server 102 in performing the functions disclosed herein, which will be apparent to those skilled in the relevant art. In some embodiments, the memory 218 may include or be composed of a relational database that utilizes a structured query language to store, identify, modify, update, access, etc., a structured data set stored therein.

[0047] The process of generating a new block header in a partitioned blockchain

[0048] Figure 3 A process 300 is shown for generating a new block header 302 to be included in a partitioned blockchain that includes data for multiple different subnets.

[0049] In the process 300, a new block header 302 is generated for a new block to be added to a partitioned blockchain 304. The partitioned blockchain 304 may include a plurality of blocks 306. Each block 306 included in the partitioned blockchain 304 may include at least a block header 308 and a plurality of transaction records 310. The hash module 212 of the processing server 102 may be configured to generate a hash value 312 by applying one or more hashing algorithms to the block header 308 included in the block 306, which is the most recently added block to the partitioned blockchain 304. In some embodiments, the most recently added block may be identified by a timestamp included in the block header 308. The generation module 214 of the processing server 102 may generate a new timestamp 314 to include in the new block header 302, and the new timestamp 314 may be generated when the new block header 302 is generated.

[0050] As part of the process 300, the receiving device 202 of the processing server 102 may receive a plurality of transaction records 310 for each of the plurality of different subnets 318. In some cases, the receiving device 202 may receive transaction data entries, which may be formatted by the generating module 214 of the processing server 102 into a transaction record 310 for each subnet 318 based on a semantic specification associated with the respective subnet 318, such as may be identified by the respective subnet profile 208 stored in the subnet database 206. Each of the plurality of subnets 318 may have a subnet identifier 320 associated therewith. The subnet identifier 320 may accompany each transaction record 310 or transaction data entry associated with the respective subnet 318, and the subnet identifier 320 may also be stored in the respective subnet profile 208 of the subnet.

[0051] The hash module 212 of the processing server 102 can generate a merkle root 322 for each subnet 318. The merkle root 322 of each subnet 318 can be a root node in a merkle tree, where the merkle tree is generated using the transaction records 310 received or generated for the corresponding subnet 318. In some cases, the transaction records can be hashed by the hash module 212 of the processing server 102, and then the hash values ​​can be sorted before generating the merkle root 322. In some cases, the sorting and hashing can be based on a semantic specification associated with the subnet 318, for example, the semantic specification can be stored in the corresponding subnet profile 208.

[0052] The generation module 214 of the processing server 102 may be configured to generate a pair 324 for each subnet 318. Each pair 324 may include a subnet identifier 320 associated with the corresponding subnet 318 and a generated merkle root 322 of the corresponding subnet 318. The generation module 214 may generate a pair sequence 316 that includes each pair 324 for each subnet 318 included in the partitioned blockchain 304. The generation module 214 may include the generated sequence 316 in the new block header 302. The new block header 302 including the hash value 312, the timestamp 314, and the pair sequence 316 may be included in the new block 306 generated by the generation module 214 of the processing server 102 to verify the new block and add it to the partitioned blockchain 304.

[0053] The process of generating blocks and adding them to the partitioned blockchain

[0054] Figure 4 A process 400 is shown for generating and adding a new block to a partitioned blockchain, wherein the partitioned blockchain includes transaction records for multiple different subnets, the transaction records being formatted based on semantic specifications associated with the subnets.

[0055] At step 402, a receiving device 202 of a processing server 102 may receive a plurality of transaction data entries for a plurality of subnets. Each transaction data entry is associated with a transaction to be included in a partitioned blockchain and may include transaction data associated with the transaction and a subnet identifier of a subnet associated with the transaction data entry. At step 404, the processing server 102 may determine whether the transaction data entry has been formatted as a transaction record based on a semantic specification associated with each subnet. The determination may be made based on a comparison of the format of the transaction data entry and the format with a semantic specification associated with the corresponding subnet, wherein the semantic specification associated with the subnet may be identified by querying a subnet database 206 (e.g., by querying a query module 210 of the processing server 102) to identify a subnet profile 208 including an accompanying subnet identifier.

[0056] If, at step 404, the processing server 102 determines that one or more transaction data entries are not correctly formatted as transaction records, then at step 406, the generation module 214 may generate a formatted transaction record for each incorrect transaction data entry. Each transaction record may be formatted based on a semantic specification associated with the corresponding subnet as identified in the relevant subnet profile 208. Once each transaction data entry is formatted when it is received, or once the generation module 214 formats each transaction data entry, then at step 408, the processing server 102 may determine whether a merkle root is provided for any subnet. This determination may be made based on data provided by each computing device 106 that provides the transaction data entry to the processing server 102. In some cases, the processing server 102 may receive a merkle root for one subnet, rather than a merkle root for each subnet included in the partitioned blockchain. For example, the computing device 106a may provide a formatted transaction record and a corresponding merkle root for the first subnet, while the computing device 106b may provide an unformatted transaction data entry for the second subnet and not provide a merkle root for it.

[0057] If a merkle root is not provided for each subnet, the hash module 212 of the processing server 102 may generate a merkle root for each necessary subnet by applying one or more hashing algorithms to the relevant transaction records at step 410. In some cases, the hashing algorithms used by the hash module 212 and / or the ordering of transaction records when generating the merkle root may be specified in a subnet semantic specification, which may be identified in the relevant subnet profile 208.

[0058] Once the processing server 102 has the merkle root of each subnet by receiving or generating, the hash module 212 of the processing server 102 may begin generating a block header for a new block by generating a hash value of a block header in the latest block included in the partitioned blockchain, at step 412. The hash value may be generated by applying one or more hashing algorithms to the block header. At step 414, the generation module 214 of the processing server 102 may generate a new block header for the new block. The new block header may include at least a hash value of a block header of the latest block in the partitioned blockchain, as well as a timestamp and a pair sequence (e.g., also generated by the generation module 214). The pair sequence may include a pair for each subnet included in the partitioned blockchain, wherein each pair includes a subnet identifier and a merkle root of the corresponding subnet.

[0059] At step 416, the generation module 214 of the processing server 102 may generate a new block to be added to the blockchain. The new block may include at least the generated new block header and each formatted transaction record. In some cases, when the formatted transaction record is included in the new block, the formatted transaction record may include and / or be appended with a relevant subnet identifier. At step 418, the sending device 216 of the processing server 102 may electronically send a data signal superimposed or encoded with the new block to other blockchain nodes 104 in the blockchain network connected thereto. The other blockchain nodes 104 may verify the block and then add the newly generated block to their copies of the blockchain, and may propagate the new block to other blockchain nodes 104 in the blockchain network.

[0060] Exemplary method for generating blocks of a partitioned blockchain

[0061] Figure 5 A method 500 is shown for generating a new block to be added to a partitioned blockchain, the new block including a sequence of pairs in a block header, the block including data related to multiple subnets.

[0062] At step 502, at least one block constituting a partitioned blockchain may be stored in a memory (e.g., memory 218) of a processing server (e.g., processing server 102), wherein the at least one block includes a most recently added block, the most recently added block including at least a block header and one or more transaction entries. At step 504, at least one transaction data entry for each of the plurality of subnets may be received by a receiving device (e.g., receiving device 202) of the processing server.

[0063] At step 506, a hash value may be generated by a hash module (e.g., hash module 212) of the processing server by applying one or more hash algorithms to at least a block header included in the most recently added block. At step 508, a new block header may be generated by a generation module (e.g., generation module 214) of the processing server, wherein the new block header includes at least the generated hash value, a timestamp, and a pair sequence, wherein the pair sequence includes a pair for each subnet of the plurality of subnets, each pair including at least a subnet identifier associated with the corresponding subnet and a merkle root of each of the at least one transaction data entry received for the corresponding subnet.

[0064] At step 510, a new block may be generated by a generation module of the processing server, wherein the new block includes at least a generated new block header and the at least one transaction data entry of each of the plurality of subnets. At step 512, a sending device (e.g., sending device 216) of the processing server may electronically send at least the generated new block to a plurality of nodes (e.g., blockchain node 104) associated with the partitioned blockchain.

[0065] In one embodiment, the method 500 may further include: generating, by a hash module of the processing server, a merkle root for each of the plurality of subnets by applying one or more hash algorithms to each of the at least one transaction data entry received for the corresponding subnet. In some embodiments, receiving at least one transaction data entry for each of the plurality of subnets may further include receiving a merkle root for each of the plurality of subnets. In one embodiment, the method 500 may further include: generating, by a generation module of the processing server, an updated partitioned blockchain by adding a generated new block to the partitioned blockchain, wherein sending the generated new block includes sending the generated updated partitioned blockchain including the generated new block.

[0066] In some embodiments, each of the at least one transaction data entry for each of the plurality of subnets may include at least a subnet identifier associated with the corresponding subnet. In one embodiment, the generated new block header may also include a version number, a difficulty target, and a random number. In another embodiment, the random number may be received from one of the plurality of nodes associated with the partitioned blockchain.

[0067] In some embodiments, method 500 may further include storing a plurality of subnet profiles (e.g., subnet profile 208) in a subnet database (e.g., subnet database 206) of a processing server, wherein each subnet profile includes a structured data set associated with the subnet, which includes at least a subnet identifier and one or more semantic specifications. In another embodiment, each of at least one transaction data entry received for a subnet may be formatted based on one or more semantic specifications included in a subnet profile, wherein the subnet profile includes the associated subnet identifier. In another embodiment, a merkle root associated with a subnet may be generated using one or more hashing algorithms based on one or more semantic specifications included in a subnet profile, wherein the subnet profile includes the associated subnet identifier.

[0068] Computer system architecture

[0069] Figure 6 A computer system 600 is shown in which embodiments of the present disclosure or portions thereof may be implemented as computer readable code. For example, hardware, software, firmware, a non-transitory computer readable medium having instructions stored thereon, or a combination thereof may be used to implement the present disclosure in the computer system 600. Figure 1 The processing server 102, and Figure 1 The processing server 102 may be implemented in one or more computer systems or other processing systems. Hardware, software, or any combination thereof may be embodied as a method for implementing Figure 3-5 Modules and components of the method.

[0070] If programmable logic is used, such logic can be executed on a commercially available processing platform configured by executable software code into a special-purpose computer or special-purpose device (e.g., a programmable logic array, an application-specific integrated circuit, etc.). It will be appreciated by those skilled in the art that various computer system configurations including multi-core multi-processor systems, minicomputers, mainframe computers, linked or aggregated computers with distributed functions, and general-purpose or microcomputers that can be embedded in almost any device can be used to practice the embodiments of the disclosed subject matter. For example, the above embodiments can be implemented using at least one processor device and a memory.

[0071] The processor unit or device as discussed herein may be a single processor, a plurality of processors, or a combination thereof. A processor device may have one or more processor "cores". The terms "computer program medium", "non-transitory computer readable medium", and "computer usable medium" as discussed herein are generally used to refer to tangible media, such as removable storage unit 618, removable storage unit 622, and a hard disk installed in hard disk drive 612.

[0072] Various embodiments of the present disclosure are described with the aid of this exemplary computer system 600. After reading this specification, it will be apparent to those skilled in the relevant art how to implement the present disclosure using other computer systems and / or computer architectures. Although the various operations may be described as sequential processes, some operations may in fact be performed in parallel, simultaneously, and / or in a distributed environment, and program code may be stored locally or remotely for access by a single or multiple processor machine. In addition, in some embodiments, the order of the operations may be rearranged without departing from the spirit of the disclosed subject matter.

[0073] Processor device 604 can be a dedicated or general processor device configured to perform the functions disclosed herein. Processor device 604 can be connected to communication infrastructure 606, for example, bus, message queue, network, multi-core message transmission scheme, etc. Network can be any network suitable for performing the functions disclosed herein, which can include local area network (LAN), wide area network (WAN), wireless network (such as WiFi), mobile communication network, satellite network, Internet, optical fiber, coaxial cable, infrared, radio frequency (RF) or any combination thereof. Other suitable network types and configurations will be apparent to those skilled in the art. Computer system 600 can also include main memory 608 (for example, random access memory, read-only memory, etc.), and can also include auxiliary memory 610. Auxiliary memory 610 can include hard disk drive 612 and removable storage drive 614, such as floppy disk drive, tape drive, CD-ROM drive, flash memory, etc.

[0074] Removable storage drive 614 can read from and / or write to removable storage unit 618 in a known manner. Removable storage unit 618 may include a removable storage medium that can be read and written by removable storage drive 614. For example, if removable storage drive 614 is a floppy disk drive or a universal serial bus port, removable storage unit 618 may be a floppy disk or a portable flash drive, respectively. In one embodiment, removable storage unit 618 may be a non-transitory computer-readable recording medium.

[0075] In some embodiments, secondary memory 610 may include alternative means for allowing computer programs or other instructions to be loaded into computer system 600, such as a removable storage unit 622 and interface 620. Examples of such means may include a program cartridge and cartridge interface (e.g., as found in video game systems), a removable memory chip (e.g., EEPROM, PROM, etc.) and associated socket, and other removable storage units 622 and interfaces 620, as will be apparent to those skilled in the art.

[0076] Data stored in computer system 600 (e.g., stored in primary memory 608 and / or secondary memory 610) may be stored on any type of suitable computer-readable medium, such as optical storage (e.g., compact disk, digital versatile disk, Blu-ray disk, etc.) or tape storage (e.g., hard drive). The data may be configured in any type of suitable database configuration (e.g., relational database, structured query language (SQL) database, distributed database, object database, etc.). Suitable configurations and storage types will be apparent to those skilled in the art.

[0077] The computer system 600 may also include a communication interface 624. The communication interface 624 may be configured to allow software and data to be transmitted between the computer system 600 and external devices. Exemplary communication interfaces 624 may include a modem, a network interface (e.g., an Ethernet card), a communication port, a PCMCIA slot and card, etc. The software and data transmitted via the communication interface 624 may be in the form of a signal, which may be electronic, electromagnetic, optical or other signal, which is apparent to those skilled in the relevant art. The signal may travel via a communication path 626, which may be configured to carry the signal and may be implemented using wires, cables, optical fibers, telephone lines, cellular phone links, radio frequency links, etc.

[0078] The computer system 600 may also include a display interface 602. The display interface 602 may be configured to allow data to be transmitted between the computer system 600 and an external display 630. Exemplary display interfaces 602 may include a high-definition multimedia interface (HDMI), a digital video interface (DVI), a video graphics array (VGA), etc. The display 630 may be any suitable type of display for displaying data sent via the display interface 602 of the computer system 600, including a cathode ray tube (CRT) display, a liquid crystal display (LCD), a light emitting diode (LED) display, a capacitive touch display, a thin film transistor (TFT) display, etc.

[0079] Computer program media and computer usable media may refer to memory, such as main memory 608 and secondary memory 610, which may be memory semiconductors (e.g., DRAM, etc.). These computer program products may be means for providing software to the computer system 600. Computer programs (e.g., computer control logic) may be stored in the main memory 608 and / or the secondary memory 610. The computer program may also be received via the communication interface 624. When the computer program is executed, it may enable the computer system 600 to implement the present method discussed herein. In particular, when the computer program is executed, it may enable the processor device 604 to implement the present method discussed herein. Figure 3-5 Thus, the computer program may represent a controller of the computer system 600. Where software is used to implement the present disclosure, the software may be stored in a computer program product and loaded into the computer system 600 using the removable storage drive 614, the interface 620, and the hard disk drive 612 or the communication interface 624.

[0080] The processor device 604 may include one or more modules or engines configured to perform the functions of the computer system 600. Each module or engine may be implemented using hardware, and in some examples may also be implemented using software (e.g., software corresponding to program code and / or programs stored in the main memory 608 or the auxiliary memory 610). In this example, the program code may be compiled by the processor device 604 (e.g., by a compilation module or engine) before the program code is executed by the hardware of the computer system. For example, the program code may be a source code written in a programming language, and the programming language is compiled into a lower-level language such as an assembly language or a machine code for execution by the processor device 604 and / or any additional hardware component of the computer system 600. The compilation process may include the use of lexical analysis, preprocessing, parsing, semantic analysis, grammar-guided translation, code generation, code optimization, and any other technology applicable to translating the program code into a lower-level language suitable for controlling the computer system 600 to perform the functions disclosed herein. It is obvious to those skilled in the relevant art that the process causes the computer system 600 to become a specially configured computer system 600 that is specially programmed to perform the above-mentioned functions.

[0081] Among other features, technology consistent with the present disclosure provides a system and method for generating blocks for a partitioned blockchain. Although various exemplary embodiments of the disclosed systems and methods have been described above, it should be understood that they are provided for purposes of illustration only and not limitation. This is not exhaustive and does not limit the disclosure to the exact form disclosed. Modifications and variations may be made in accordance with the above teachings or may be obtained from practice of the disclosure without departing from the breadth or scope.

Claims

1. A method for generating a block of a partitioned blockchain, comprising: receiving, by a receiving device of a processing server, at least one transaction data entry for at least one of the plurality of subnets; generating, by a processor of the processing server, a new block header, wherein the new block header comprises at least a sequence of pairs, the pair comprising at least a subnet identifier associated with a corresponding subnet and a merkle root of a transaction data entry received for the corresponding subnet; Generating a new block by the processing server, wherein the new block includes the new block header; electronically sending, by a sending device of the processing server, at least the generated new block to a plurality of nodes associated with the partitioned blockchain; and storing a plurality of subnet profiles in a subnet database of the processing server, wherein each subnet profile comprises a structured data set associated with a subnet, comprising at least a subnet identifier and one or more semantic specifications; Wherein each of the at least one transaction data entry received for a subnet is formatted based on the one or more semantic specifications included in a subnet profile, wherein the subnet profile includes an associated subnet identifier.

2. The method according to claim 1, further comprising: The merkle root of at least one of the plurality of subnets is generated by the processing server by applying one or more hashing algorithms to at least one transaction data entry received for the corresponding subnet.

3. The method according to claim 1, wherein: Receiving the at least one transaction data entry for at least one of the plurality of subnets further comprises receiving the merkle root for each of the plurality of subnets.

4. The method according to claim 1, further comprising: An updated partitioned blockchain is generated by the processing server by adding the generated new block to the partitioned blockchain, wherein, Sending the generated new block includes: sending an updated partitioned blockchain including the generation of the generated new block.

5. The method according to claim 1, wherein: Each of the at least one transaction data entry of at least one subnet of the plurality of subnets includes at least the subnet identifier associated with the corresponding subnet.

6. The method according to claim 1, wherein: The merkle root associated with a subnet is generated using one or more hashing algorithms based on the one or more semantic specifications included in a subnet profile, wherein the subnet profile includes an associated subnet identifier.

7. The method according to claim 1, wherein: The generated new block header also includes a version number, difficulty target, and random number.

8. The method according to claim 7, wherein: The random number is received from a node among the plurality of nodes associated with the partitioned blockchain.

9. A system for generating blocks of a partitioned blockchain, comprising: a receiving device of the processing server configured to receive at least one transaction data entry for at least one subnet of the plurality of subnets; The processing server is configured to generating a new block header, wherein the new block header comprises at least a sequence of pairs, wherein the pair comprises at least a subnet identifier associated with a corresponding subnet and a merkle root of a transaction data entry received for the corresponding subnet; and Generate a new block, wherein the new block includes the new block header; A sending device of the processing server is configured to electronically send at least the generated new block to a plurality of nodes associated with the partitioned blockchain; and A subnet database of the processing server is configured to store a plurality of subnet profiles, wherein each subnet profile comprises a structured data set associated with a subnet, which comprises at least a subnet identifier and one or more semantic specifications; Wherein each of the at least one transaction data entry received for a subnet is formatted based on the one or more semantic specifications included in a subnet profile, wherein the subnet profile includes an associated subnet identifier.

10. The system according to claim 9, wherein: The processing server is further configured to generate the merkle root of at least one of the plurality of subnets by applying one or more hashing algorithms to at least one transaction data entry received for the corresponding subnet.

11. The system according to claim 9, wherein: Receiving the at least one transaction data entry for each of the plurality of subnets further comprises receiving the merkle root for each of the plurality of subnets.

12. The system according to claim 9, wherein: The processing server is further configured to generate an updated partitioned blockchain by adding the generated new block to the partitioned blockchain, and Sending the generated new block includes: sending the generated updated partitioned blockchain including the generated new block.

13. The system according to claim 9, wherein: Each transaction data entry of the at least one transaction data entry of at least one subnet of the plurality of subnets includes at least the subnet identifier associated with the corresponding subnet.

14. The system according to claim 9, wherein: The merkle root associated with a subnet is generated using one or more hashing algorithms based on the one or more semantic specifications included in a subnet profile, wherein the subnet profile includes an associated subnet identifier.

15. The system according to claim 9, wherein: The generated new block header also includes a version number, difficulty target, and random number.

16. The system of claim 15, wherein: The random number is received from a node among the plurality of nodes associated with the partitioned blockchain.

Citation Information

Patent Citations

  • Distributed type dynamic cache expanding method and system supporting load balancing

    CN102244685A

  • User public key address binding, searching and verifying method and system based on crypto currency open account book technology

    CN104320262A