CN110569246A - block chain node information synchronization method and device, computer equipment and storage medium - Google Patents

block chain node information synchronization method and device, computer equipment and storage medium Download PDF

Info

Publication number
CN110569246A
CN110569246A CN201910859383.0A CN201910859383A CN110569246A CN 110569246 A CN110569246 A CN 110569246A CN 201910859383 A CN201910859383 A CN 201910859383A CN 110569246 A CN110569246 A CN 110569246A
Authority
CN
China
Prior art keywords
layer
block
directed graph
graph
blocks
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.)
Granted
Application number
CN201910859383.0A
Other languages
Chinese (zh)
Other versions
CN110569246B (en
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.)
Tencent Technology Shenzhen Co Ltd
Shenzhen University
Original Assignee
Tencent Technology Shenzhen Co Ltd
Shenzhen University
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 Tencent Technology Shenzhen Co Ltd, Shenzhen University filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910859383.0A priority Critical patent/CN110569246B/en
Publication of CN110569246A publication Critical patent/CN110569246A/en
Application granted granted Critical
Publication of CN110569246B publication Critical patent/CN110569246B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

the application relates to a method, a device, computer equipment and a storage medium for synchronizing information of block chain link points, wherein the method comprises the following steps: obtaining a block-based directed graph of a current block chain node, wherein the block is a data structure object comprising storage data and a directional relation; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2; receiving a synchronization graph used for information synchronization and sent by other blockchain nodes, wherein the synchronization graph has the same data structure as the directed graph; and comparing the synchronous graph with the directed graph layer by layer, and merging information to synchronously update the directed graph. The method can improve the stability and the safety of the data stored in the block chain data platform on the premise of improving the throughput of the block chain platform.

Description

block chain node information synchronization method and device, computer equipment and storage medium
The present application is a divisional application entitled "block data storage method, apparatus, computer device, and storage medium" filed by the chinese patent office on 23/7/2019 with application number 201910666566.0, the entire contents of which are incorporated herein by reference.
Technical Field
The present invention relates to the field of computer technologies, and in particular, to a method and an apparatus for synchronizing information of block link nodes, a computer device, and a storage medium.
Background
With the rapid development of scientific technology, various technologies are rapidly advanced, a large number of advanced technologies are continuously developed, and a block chain technology belongs to a very important data storage technology in the current era and is applied in a great number of scenes. The blockchain can provide safe and reliable service for users, and users are encouraged to share their data without worrying about the data being tampered. Distributed nodes in the blockchain platform share the same bill, so that the transaction records cannot be tampered randomly, and the defect of a centralized system is overcome.
the blockchain based on the chain structure takes a long time for the participants in the blockchain platform to get synchronized and form a consensus, which is also the root cause of the low throughput of the chain structure. Many have proposed improvements including improvements to the chain structure of bitcoins. E.g., using a directed graph (DAG) as the underlying data structure for the blockchain. As shown in fig. 1, the DAG structure allows multiple tiles to be added to the blockchain platform at the same time, thus not taking time on the consensus among the nodes. The DAG structure is balanced in asynchrony and speed, so that the throughput of the DAG structure is greatly improved compared with a chain structure.
However, because the DAG structure is a divergent structure, the stability of the structure is poor, and therefore, the stability of the stored data is poor based on the block data storage method of the conventional directed graph structure.
Disclosure of Invention
therefore, it is necessary to provide a block link node information synchronization method, device, computer device and storage medium for improving the stability of stored data, aiming at the problem of poor stability of stored data in the conventional block data storage method.
A method of block link point information synchronization, the method comprising:
Obtaining a block-based directed graph of a current block chain node, wherein the block is a data structure object comprising storage data and a directional relation; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2;
receiving a synchronization graph used for information synchronization and sent by other blockchain nodes, wherein the synchronization graph has the same data structure as the directed graph;
And comparing the synchronous graph with the directed graph layer by layer, and merging information to synchronously update the directed graph.
In one embodiment, receiving a synchronization map for information synchronization sent by other blockchain nodes includes:
communicating with other blockchain nodes through a P2P handshake protocol to obtain other blockchain nodes in the blockchain platform;
And acquiring the directed graphs of other currently traversed blockchain nodes, and determining the directed graphs of the other blockchain nodes as synchronous graphs which are sent by the other blockchain nodes and used for information synchronization.
In one embodiment, the step of comparing the synchronous directed graph with the directed graph layer by layer, and performing information merging to synchronously update the directed graph includes:
taking the layer which is obtained by comparing the synchronous graph with the directed graph currently layer by layer as a comparison layer;
merging the synchronization map with an alignment layer of the directed graph when the synchronization map is inconsistent with the alignment layer of the directed graph;
and pointing each block in the merged comparative layer to each block in a layer above the comparative layer.
in one embodiment, taking the layer to which the synchronization map and the directed map are currently compared layer by layer as a comparison layer includes:
and starting from a navigation layer, taking the layer which is obtained by comparing the synchronous graph with the directed graph currently as a comparison layer by layer, wherein the navigation layer guides the layer to which a navigation block belongs, the navigation block is the block with the maximum connectivity in the synchronous graph and the directed graph, and the connectivity of the block is equal to the number of paths from the block to the created block.
In one embodiment, when the synchronization map and the alignment layer of the directed graph respectively comprise different blocks, it is determined that the synchronization map and the alignment layer of the directed graph are not consistent.
in one embodiment, directing each of the blocks in the merged pair of layers to each of the blocks in a layer above the pair of layers comprises:
And respectively taking the combined comparison layer as an updated comparison layer, and pointing each block in the updated comparison layer to the block pointed by each block in the comparison layer before updating.
In one embodiment, comparing the synchronization graph with the directed graph layer by layer, and performing information merging to synchronously update the directed graph further includes:
and when the comparison layers of the synchronous graph and the directed graph are consistent, completing the process of comparing the synchronous graph and the directed graph layer by layer and merging information to synchronously update the directed graph.
A block link point information synchronization apparatus, the apparatus comprising:
the directed graph acquisition module is used for acquiring a directed graph based on a block, wherein the block is a data structure object comprising storage data and a pointing relation; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2;
A synchronization information receiving module, configured to receive a synchronization map for information synchronization sent by another blockchain node, where the synchronization map has the same data structure as the finite map;
And the information synchronous updating module is used for comparing the synchronous graph with the directed graph layer by layer and combining information to synchronously update the directed graph.
a computer device comprising a memory and a processor, the memory having stored therein a computer program that, when executed by the processor, causes the processor to perform the steps of:
obtaining a block-based directed graph of a current block chain node, wherein the block is a data structure object comprising storage data and a directional relation; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2;
Receiving a synchronization graph used for information synchronization and sent by other blockchain nodes, wherein the synchronization graph has the same data structure as the directed graph;
And comparing the synchronous graph with the directed graph layer by layer, and merging information to synchronously update the directed graph.
A computer-readable storage medium having stored thereon a computer program which, when executed by a processor, causes the processor to perform the steps of:
obtaining a block-based directed graph of a current block chain node, wherein the block is a data structure object comprising storage data and a directional relation; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2;
Receiving a synchronization graph used for information synchronization and sent by other blockchain nodes, wherein the synchronization graph has the same data structure as the directed graph;
And comparing the synchronous graph with the directed graph layer by layer, and merging information to synchronously update the directed graph.
in the block chain node information synchronization method, the block chain node information synchronization device, the computer equipment and the storage medium, since the width of the directed graph organizing the blocks is K, and K is a natural number greater than or equal to 2, compared with a chain structure with the width of 1, the block chain platform can have higher throughput. And the width of the directed graph is limited to K, and the divergence of the directed graph can be limited by limiting the arrangement of the directed graph layer by layer, so that the directed graph becomes a layered and wide directed graph, and the stability of data storage of a block chain platform is improved. When the directed graph used for information synchronization is received, based on the data structure of the directed graph, information is merged to synchronously update the directed graph in a mode of comparing the synchronous graph and the directed graph layer by layer, so that block updating of all block chain link points in the block chain platform is completed, the state that the stored data of all block chain link points in the whole block chain platform are consistent is achieved, and the stability and the safety of the stored data of the block chain platform are improved. Therefore, based on the block chain link point information synchronization method, device, computer equipment and storage medium of the embodiment, the stability and the security of the data stored in the block chain data platform can be improved on the premise of improving the throughput of the block chain platform.
Drawings
FIG. 1 is a block chain structure based on a conventional directed graph structure;
FIG. 2 is a diagram illustrating an exemplary block data storage method;
FIG. 3 is a flow chart illustrating a block data storage method according to an embodiment;
FIG. 4 is an exemplary diagram of a directed graph in a block data storage method in one embodiment;
FIG. 5 is a flowchart illustrating the insertion of new blocks in the block data storage method according to an embodiment;
FIG. 6 is a flow chart illustrating a block link point update process of the block data storage method according to an embodiment;
FIG. 7 is a flow chart illustrating a transaction execution process of the block data storage method according to an embodiment;
FIG. 8 is a system diagram of a block data storage method according to one embodiment;
FIG. 9 is a block diagram of a data storage device in one embodiment;
FIG. 10 is a diagram showing an internal configuration of a computer device according to an embodiment.
Detailed Description
in order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
The blockchain is a novel application mode of computer technologies such as distributed data storage, point-to-point transmission, a consensus mechanism and an encryption algorithm. A block chain (Blockchain), which is essentially a decentralized database, is a series of data blocks associated by using a cryptographic method, and each data block contains information of a batch of network transactions, so as to verify the validity (anti-counterfeiting) of the information and generate a next block. The blockchain may include a blockchain underlying platform, a platform product services layer, and an application services layer.
The block chain underlying platform can comprise processing modules such as user management, basic service, intelligent contract and operation monitoring. The user management module is responsible for identity information management of all blockchain participants, and comprises public and private key generation maintenance (account management), key management, user real identity and blockchain address corresponding relation maintenance (authority management) and the like, and under the authorization condition, the user management module supervises and audits the transaction condition of certain real identities and provides rule configuration (wind control audit) of risk control; the basic service module is deployed on all block chain node equipment and used for verifying the validity of the service request, recording the service request to storage after consensus on the valid request is completed, for a new service request, the basic service firstly performs interface adaptation analysis and authentication processing (interface adaptation), then encrypts service information (consensus management) through a consensus algorithm, transmits the service information to a shared account (network communication) completely and consistently after encryption, and performs recording and storage; the intelligent contract module is responsible for registering and issuing contracts, triggering the contracts and executing the contracts, developers can define contract logics through a certain programming language, issue the contract logics to a block chain (contract registration), call keys or other event triggering and executing according to the logics of contract clauses, complete the contract logics and simultaneously provide the function of upgrading and canceling the contracts; the operation monitoring module is mainly responsible for deployment, configuration modification, contract setting, cloud adaptation in the product release process and visual output of real-time states in product operation, such as: alarm, monitoring network conditions, monitoring node equipment health status, and the like.
The platform product service layer provides basic capability and an implementation framework of typical application, and developers can complete block chain implementation of business logic based on the basic capability and the characteristics of the superposed business. The application service layer provides the application service based on the block chain scheme for the business participants to use.
FIG. 2 is a diagram illustrating an exemplary block data storage method. Referring to fig. 2, the application scenario includes distributed block link nodes 210 connected by a network. Block chain node 210 is used to store blocks. Each blockchain node 210 is made up of one or more servers. A plurality of blockchain nodes 210 form a blockchain platform. The blockchain platform may be a private blockchain platform or a developed blockchain platform. The blockchain platform may be a cloud blockchain platform. The cloud block chain platform is a platform which is constructed on a cloud base and enables a user to quickly construct infrastructure and block chain services required by the user on an open cloud platform.
The block chain node 210 acquires a directed graph based on a block, wherein the block is a data structure object comprising storage data and a pointing relationship; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2; determining a target layer of the directed graph; and when a newly added block is inserted, pointing the newly added block to K blocks on the previous layer of the target layer.
FIG. 3 is a flowchart illustrating a block data storage method according to an embodiment. The present embodiment is mainly illustrated by applying the block data storage method to the block link point 210 in fig. 2. Referring to fig. 3, the method specifically includes the following steps:
S302, a block-based directed graph is acquired.
The block link points acquire a block-based directed graph. Each blockchain node in the blockchain platform stores all the blocks in the whole blockchain platform. The blocks are organized and stored by adopting a directed graph structure. A block is a data structure object that includes storage data and a pointing relationship.
The pointing relationship refers to a linking relationship between blocks, and a block of a next layer is pointed to a block of a previous layer. Specifically, for example, the block identifier of the block of the previous layer to which the next layer block points may be stored in the block of the next layer, so as to express the pointing relationship of the next layer block to the block of the previous layer identified by the block identifier. For another example, the block storage location of the block of the previous layer pointed to may also be stored in the block of the next layer, so as to express the pointing relationship of the block of the next layer to the block of the previous layer.
Stored data refers to data stored in a block, such as may be a transaction record. The transaction record can comprise a transaction object and a transaction amount; further, the transaction record may also include a balance of the transaction object prior to execution of the transaction, such as may be referred to as a first balance; still further, the transaction record may also include a balance of the transaction object after the transaction is performed, such as may be referred to as a second balance.
in this embodiment, a directed graph structure is used to organize the blocks. And taking the blocks as the vertexes of the directed graph and the directional relations of the blocks as the directed edges of the directed graph. The directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number which is greater than or equal to 2.
the width K of the directed graph means that the maximum number of vertices of each layer of the directed graph, that is, the maximum number of blocks of each layer in the directed graph is K. The width of the directed graph also indicates the number of blocks that can be added to the block chain platform simultaneously in one round of inserting the new blocks. Theoretically, the larger the width of the directed graph, the greater the throughput of the blockchain platform; however, the width of the directed graph is too large, which means that the more transactions included in the blockchain platform, the propagation time for achieving the full network synchronization is increased, which may reduce the throughput to some extent. Therefore, in a preferred implementation, the width of the directed graph can be adjusted according to the network traffic and the block generation speed to achieve better throughput.
the layer-by-layer arrangement means that when the newly added blocks are inserted into the directed graph, the newly added blocks are inserted into the current layer first when the current layer does not reach the K blocks. The next layer of the current layer can be inserted only after the number of blocks of the current layer reaches K. The width of the directed graph is limited to K, and the divergence of the directed graph can be limited by limiting the arrangement of the directed graph layer by layer, so that the directed graph becomes a layered and wide directed graph, and the stability of data storage of a block chain platform is improved. In this embodiment, the width of the directed graph is a natural number greater than or equal to 2, so that the blockchain platform can have a greater throughput compared to the chain structure with a width of 1.
and S304, determining a target layer of the directed graph.
the blockchain node determines a target layer of the directed graph. The target layer refers to the layer to which the newly added block insertion directed graph belongs. The directed graph is arranged layer by layer, the width of the directed graph is K, and K is a natural number greater than or equal to 2, so that the target layer can be determined according to the block number of the current layer.
The number of blocks of the current layer may be stored by one variable. The number of blocks of the current layer may also be determined by traversing the directed graph structure. After determining the block number of the current layer, when the block number of the current layer is less than K, determining the target layer as the current layer; when the number of blocks of the current layer is greater than or equal to K, it may be determined that the target layer is the next layer of the current layer, and the current layer is updated to the next layer of the current layer.
S306, when inserting the new block, pointing the new block to K blocks of the previous layer of the target layer.
And when the block chain node inserts the newly added block, the newly added block points to K blocks on the upper layer of the target layer. In this embodiment, the newly added blocks will point to the K blocks of the layer above the target layer. It can be understood that, in the directed graph in the block data storage method according to the present embodiment, each block points to K blocks on a layer above the block, that is, in the directed graph, one block points to all blocks on a layer above the block. Therefore, the stability of the directed graph can be improved, and the stability of data stored by the block chain platform can be improved.
The block data storage method of the embodiment is operated on the block chain node with the newly added block inserted. When the newly added block is inserted, the newly added block points to the K blocks on the upper layer of the target layer, which may be that the pointing relationship of the newly added block is set to point to the K blocks on the upper layer of the target layer, so that the newly added block points to the K blocks on the upper layer of the target layer. Because the newly added blocks point to the K blocks on the upper layer of the target layer, a stable structure that each block in the graph points to all blocks on the upper layer of the block can be maintained, and the stability of data storage of the block chain platform can be improved. Meanwhile, because of the block chain of the conventional chain structure or the directed graph structure, a block generally points to a previous block or two blocks in a plurality of blocks, and therefore, in this embodiment, one block needs to point to all K blocks of the previous layer, so that the data security can be improved.
Based on the block data storage method of the embodiment, a directed graph based on a block is obtained, wherein the block is a data structure object comprising storage data and a pointing relation; the directed graph takes the blocks as the vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; arranging the directed graphs layer by layer, wherein the width of each directed graph is K, and K is a natural number greater than or equal to 2; determining a target layer of the directed graph; and when the newly added block is inserted, pointing the newly added block to K blocks on the upper layer of the target layer. Since the width of the directed graph of the block is K, which is a natural number greater than or equal to 2, the block chain platform can have a greater throughput compared to the chain structure with a width of 1. And the width of the directed graph is limited to K, and the divergence of the directed graph can be limited by limiting the arrangement of the directed graph layer by layer, so that the directed graph becomes a layered and wide directed graph, and the stability of data storage of a block chain platform is improved. When the newly added block is inserted, the newly added block points to K blocks on the upper layer of the target layer, and a stable structure that each block in the graph points to all blocks on the upper layer of the block can be maintained, so that the stability of data storage of the block chain platform can be improved, and the safety of the stored data can be improved. Therefore, based on the block data storage method of the embodiment, the stability and the safety of the data stored in the block chain data platform can be improved on the premise of improving the throughput of the block chain platform.
In one embodiment, after the newly added block is pointed to K blocks of a previous layer of the target layer when the newly added block is inserted, the method further includes: and propagating the directed graph inserted into the newly added block to other blockchain nodes in the blockchain platform. After a newly added block is inserted into a local block chain node, the newly added block needs to be transmitted to other block chain nodes in the block chain platform, so that all block chain link points in the block chain platform are subjected to block updating, and the state that the stored data of all block chain link points in the whole block chain platform are consistent is achieved. Based on the block data storage method of the embodiment, all block chain link points in the block chain platform can be subjected to block updating, so that the state that the data stored in each block chain link point in the whole block chain platform is consistent is achieved.
in one embodiment, when inserting the newly added block, pointing the newly added block to K blocks of a layer above the target layer, includes: when inserting the newly added block, if the number of blocks of the previous layer of the target layer is equal to K, the newly added block is pointed to the K blocks of the previous layer.
the directed graph is the directed graph with the width of K, and the directed graphs are arranged layer by layer. Therefore, the layer above the target layer is not the newest layer, and the block number thereof must not be less than K, otherwise the layer above should be the target layer.
this embodiment summarizes the case that the number of the last layer blocks of the target layer is equal to K, and the newly added blocks can be pointed to all the blocks of the last layer without selecting the blocks again.
in one embodiment, the directed graph may be as shown in fig. 4, the created block is block 0, and the width of the directed graph is 3. The first layer blocks 1, 2 and 3 all point to the created block; the second layer blocks 4, 5, 6 point to the 3 blocks 1, 2, 3 of the first layer; the blocks 7, 8, 9 of the third layer point to the 3 blocks 4, 5, 6 of the second layer; the blocks 10, 11, 12 of the fourth layer point to the 3 blocks 7, 8, 9 of the third layer; the blocks 13, 14, 15 of the fifth layer point to the 3 blocks 10, 11, 12 of the fourth layer.
In one embodiment, when inserting the newly added block, pointing the newly added block to K blocks of a layer above the target layer, includes: when inserting the newly added block, if the number of the blocks on the upper layer of the target layer is more than K, pointing the newly added block to K candidate blocks on the upper layer; the candidate blocks are the first K blocks with the reverse connectivity in the previous layer in descending order.
This embodiment summarizes the case where the number of blocks in the layer above the target layer is greater than K. This may occur when the number of blocks in a layer exceeds the width K of the predetermined directed graph due to network delay, etc. In this case, the reverse connectivity of each block in the previous layer of the target layer is determined, and K blocks with high reverse connectivity may be used as candidate blocks (candidates) determined to be the previous layer. Thus, the determined K candidate blocks are used as the blocks of the previous layer, and the newly added blocks point to the K candidate blocks to maintain the width of the directed graph as K. The stability of the directed graph structure is improved, and therefore the stability of data stored by the block chain platform is improved.
Further, the determining process of the reverse connectivity of each block of the previous layer includes: determining the connectivity of each block in the directed graph; the connectivity of the block is equal to the number of paths from the block to the created block; determining the block with the maximum connectivity as a navigation block; and determining the reverse connectivity of the block of the previous layer, wherein the reverse connectivity of the block of the previous layer is equal to the number of paths from the block of the previous layer to the navigation block.
The connectivity of a block is equal to the number of paths of the block to the founder block. Can record Cvis the connectivity of block v to the founder block. Taking FIG. 4 as an example, there are 9 paths from Block 8 to founder Block 0, namely C89. These 9 paths are in turn:<8,4,1,0>,<8,4,2,0>,<8,4,3,0>,<8,5,1,0>,<8,5,2,0>,<8,5,3,0>,<8,6,1,0>,<8,6,2,0>,<8,6,3,0>。
The tile not pointed to by any tile is called a leaf tile, which may be denoted as tip, the leaf tile with the largest connectivity is called a navigation tile, and the navigation tile is denoted as navigator. It can be understood that the navigation block is the block with the largest connectivity in the directed graph. In fig. 4, the connectivity of the leaf nodes 13, 14 and 15 is at the same time the greatest, so they are navigators.
The reverse connectivity (reverse connectivity) is the number of paths from a block (e.g. block v) to the navigation block, and can be denoted as Rv. In FIG. 4, the number of passes from block 8 to navigator is 9, i.e., R89 is equal to, including<13,10,8>,<13,11,8>,<13,12,8>,<14,10,8>,<14,11,8>,<14,12,8>,<15,10,8>,<15,11,8>,<15,12,8>。
In one embodiment, when the newly added block is inserted, if the number of the blocks on the upper layer of the target layer is greater than K, the M blocks with smaller reverse connectivity are used as the newly added blocks inserted in the next round; wherein the value of M is equal to the number of blocks of the previous layer minus K. In this way, while keeping the width of the directed graph as K, the blocks discarded in the current round due to the number of the blocks are reinserted into the directed graph in the next round, so that the reliability of the directed graph is improved, and the stability of data stored by the data chain platform is improved.
In one embodiment, when inserting the newly added block, pointing the newly added block to K blocks of a layer above the target layer, includes: when the newly added block is inserted, verifying the legality of each block of the previous preset number layers of the target layer; when each block of the previous preset number layers of the target layer is legal, the newly added block points to K blocks of the previous layer of the target layer.
In the previous preset number layer, the preset number may be denoted as constant. The preset number may be a preset number, for example, the first preset number layer may be the first 5 layers, the first 3 layers, the first 6 layers, and the like. Before the newly added block is inserted, the legality of the blocks of the layers with the preset number before the target layer to be inserted is verified, so that the safety of the block chain platform can be improved, and the safety of data stored by the data chain platform is improved.
In one embodiment, when the newly added block is inserted, the validity of the newly added block may be verified according to K blocks on the previous layer of the target layer, and when the newly added block is valid, the newly added block is pointed to the K blocks on the previous layer of the target layer. Therefore, the safety of the directed graph structure can be improved, and the safety of data stored by the data chain platform is improved.
It should be noted that, in the above embodiment, when verifying the validity of one block, the hash value may be determined according to K blocks on the upper layer of the block, and it is verified whether the hash value is consistent with the hash value carried by the block, if so, the hash value is legal, otherwise, the hash value is illegal.
In one preferred embodiment, as shown in fig. 5, when inserting the new block, pointing the new block to K blocks of the previous layer of the target layer includes: verifying the validity of each block of the previous preset number layers of the target layer; when each block of the previous preset number layers of the target layer is legal, the newly added block is pointed to K blocks of the previous layer. Thus, the new block is added to the directed graph. After the new block is added into the directed graph, if the block number of the target layer is larger than K, sorting the blocks of the target layer to select a candidate block. For example, the tiles with K top bits are sorted from large to small according to the magnitude of the reverse connectivity, and the candidate tiles of the target layer are the top K-bit tiles. The determination method of the reverse connectivity is the same as that in the above embodiment, and is not described herein.
In one embodiment, after obtaining the block-based directed graph, the method further includes: receiving a synchronization map for information synchronization, wherein the synchronization map has the same data structure as the directed map; and comparing the synchronous graph with the directed graph layer by layer, and merging information to synchronously update the directed graph.
the blockchain nodes may communicate with each other using P2P (Peer-to-Peer) protocol. After a newly added block is inserted into a local block chain node, the newly added block needs to be transmitted to other block chain nodes in the block chain platform, so that all block chain link points in the block chain platform are subjected to block updating, and the state that the stored data of all block chain link points in the whole block chain platform are consistent is achieved. One blockchain node may first acquire other blockchain nodes in the blockchain platform through the handshake protocol of P2P. Therefore, the block link points where the block data storage method operates in the present application may receive the directed graph of other block link nodes for information synchronization. In this embodiment, the local directed graph of the block link points in the block data storage method in the present application is updated in a manner of comparing layer by layer and merging information. And applying the data to each blockchain node of the blockchain platform, thereby synchronously updating the directed graph of each blockchain node. And finally, the state that the data stored in each block chain link point is consistent in the whole block chain platform is achieved.
Further, the directed graphs of each block chain node are compared layer by layer, and information is merged to synchronously update the local directed graphs, including: merging the synchronization map with an alignment layer of the directed graph when the synchronization map is inconsistent with the alignment layer of the directed graph; and pointing each block in the merged comparative layer to each block in a layer above the comparative layer. In this way, when the comparison layers of the directed graphs of the two block chain nodes are inconsistent, the comparison layers of the directed graphs of the two block chain nodes are combined; and pointing each block in the merged comparative layer to each block one layer above the comparative layer.
and the comparison layer is the layer-by-layer comparison of the layers in the directed graph of the two block chain nodes, and the currently compared layer is called the comparison layer. The layer-by-layer up-comparison can be performed starting from the navigation layer. The navigation layer refers to a layer to which the navigation block belongs. The inconsistency of the comparison layers of the directed graphs of the two block chain nodes means that the comparison layers of the directed graphs of the two block chain nodes respectively comprise different blocks.
assuming that the comparison layer of the graph comprises blocks 1, 2 and 3; updating the specific pair of layers in the graph, including blocks 1, 4; the two alignment layers are not identical. At this time, the two comparison layers need to be merged, that is, the synchronization map and the comparison layers of the directed graph need to be merged. As in this example, merging the two alignment layers results in a merged alignment layer comprising blocks 1, 2, 3, 4. The step of directing each block in the merged comparison layer to each block in the layer above the comparison layer means that the merged comparison layer is respectively used as an updated comparison layer, and each block in the updated comparison layer is directed to a block pointed by each block in the comparison layer before updating, namely each block in the layer above the comparison layer before updating. Assuming that the blocks 1, 2, 3 before the update of the comparison layer in the graph point to the block 0, and the blocks 1, 4 before the update of the comparison layer in the update graph point to the block 0, after the update, the blocks 1, 2, 3, 4 after the update of the comparison layer of the directed graph point to the block 0, and the blocks 1, 2, 3, 4 after the update of the comparison layer of the update graph point to the block 0. Since the contents of the directed graph and the update graph are consistent with the contents of the layer immediately above the layer, block 0 is included, and at this time, the update process may be ended.
Assuming that the blocks 1, 2, 3 before the update of the comparison layer of the directed graph point to the block 5, and the blocks 1, 4 before the update of the comparison layer of the updated graph point to the block 6, after the update, the blocks 1, 2, 3, 4 after the update of the comparison layer of the directed graph point to the block 5, and the blocks 1, 2, 3, 4 after the update of the comparison layer of the updated graph point to the block 6. Because the directed graph and the updated graph have different upper layers of the comparison layer, the comparison layer needs to be continuously and iteratively updated, and the comparison layer is updated to the upper layer of the original comparison layer, that is, the layer where the block 5 in the directed graph is located, that is, the layer where the block 6 in the updated graph is located. At this time, the comparison layer of the directed graph is not consistent with the comparison layer of the update graph, and therefore, the comparison layers need to be continuously merged, the obtained merged comparison layer includes the blocks 5 and 6, and then in the directed graph, the blocks 5 and 6 of the merged comparison layer point to the block pointed before the merged comparison layer of the directed graph, that is, the block 6 also points to the block pointed by the block 5. In the updated map, the blocks 5 and 6 of the merged comparison layer point to the block pointed before the comparison layer of the synchronization map is merged, i.e. the block 5 also points to the block pointed by the block 6.
Based on the block data storage method of the present embodiment, a specific block link point information synchronization scheme is provided. Thus, the stability of the blockchain platform can be improved.
in one embodiment, standing at the third person's perspective, as shown in fig. 6, each blockchain node first communicates with other blockchain nodes via the P2P handshake protocol; and judging whether all the block chain nodes in the block chain platform are traversed or not, if not, selecting two block chain nodes, starting layer-by-layer comparison from the navigation layer, merging the two comparison layers when the two comparison layers are inconsistent, and pointing the merged comparison layer to each block of the previous layer of the comparison layer before updating. Wherein the navigation layer is a layer to which the navigation block belongs. And when the information of the two blockchain nodes at a certain layer is consistent, the layer of circulation is exited, and other blockchain nodes are continuously merged until all blockchain nodes in the blockchain platform are traversed. Thus, the information of each blockchain node in the blockchain platform is synchronized.
wherein, the two selected blockchain nodes are, for one blockchain node, the blockchain node and the node sending the synchronization map.
Assume that the directed graph ratio of blockchain node a is in the pair of layers, including blocks 1, 2, 3; the block diagram in the directed graph of the block chain node B comprises blocks 1 and 4; the two alignment layers are not identical. At this time, the two comparison layers need to be merged, that is, the comparison layers of the directed graph of the block chain node a and the block link node B are merged to obtain a merged comparison layer, which includes the blocks 1, 2, 3, and 4 in this example. The step of directing each block in the merged comparison layer to each block in a layer above the comparison layer means that the merged comparison layer is respectively used as a comparison layer after updating the directed graph in the two block chain nodes, and each block in the updated comparison layer is directed to a block to which each block in the comparison layer is directed before updating, namely, each block in the layer above the comparison layer before updating.
assuming that the blocks 1, 2, and 3 before the update of the comparison layer in the block chain node a point to the block 0 and the blocks 1 and 4 before the update of the comparison layer in the block chain node B point to the block 0, after the update, the blocks 1, 2, 3, and 4 after the update of the comparison layer of the block chain node a point to the block 0 and the blocks 1, 2, 3, and 4 after the update of the comparison layer of the block chain node B point to the block 0. Since the contents of the two blockchain nodes are consistent with the contents of the last layer of the two layers in the two blockchain nodes, both the two blockchain nodes include the block 0, at this time, the updating process may be ended. Assuming that the blocks 1, 2, and 3 before the comparison layer of the block chain node a is updated point to the block 5, and the blocks 1 and 4 before the comparison layer of the block chain node B is updated point to the block 6, after the update, the blocks 1, 2, 3, and 4 after the comparison layer of the block chain node a is updated point to the block 5, and the blocks 1, 2, 3, and 4 after the comparison layer of the block chain node B is updated point to the block 6. Because the last layer of the comparison layer in the two block chain nodes is different, the update of the comparison layer needs to be continuously executed in an iterative manner, and the comparison layer is updated to the last layer of the original comparison layer, namely, the layer where the block 5 is located in the block chain node a, namely, the layer where the block 6 is located in the block chain node B. At this time, the comparison layer of the block link point a is not consistent with the comparison layer of the block link point B, and therefore, the comparison layers need to be continuously merged to obtain merged comparison layers including the blocks 5 and 6, and then in the block link node a, the blocks 5 and 6 of the merged comparison layers point to the block to which the comparison layer of the block link point a is merged, that is, the block 6 also points to the block to which the block 5 points. In block link point B, the blocks 5 and 6 of the merged comparison layer point to the block pointed before the comparison layer of the synchronization map is merged, i.e. block 5 also points to the block pointed to by block 6.
in one embodiment, after the newly added block is pointed to K blocks of a previous layer of the target layer when the newly added block is inserted, the method further includes: traversing each block of the update layer aiming at the directed graph, and storing the transaction in the block into a transaction set; and executing each transaction in the transaction set, and updating the world state (world state) according to the transaction result.
wherein the world state comprises state information of each transaction object, and the state information comprises account balance of the transaction object. The updating layer is a layer in the directed graph, which is currently updated with the world state. Based on the block data storage method of the embodiment, all transaction information in the blockchain platform can be traversed, and all transactions can be executed. The process of executing the transaction may include calculating an account balance for each transaction object based on the transaction object and the transaction amount, as well as the transaction action. Wherein the transaction action may include roll-out and roll-in. If object a transfers 100 to object B, the account balance of object a is decremented by 100 and the account balance of object Bd is incremented by 100 when the transaction is executed. When traversing all the transaction information of the blockchain platform, traversing can be performed layer by layer from the next layer of the stable layer of the directed graph. The stable layer refers to the maximum number of layers that the set directed graph should be larger than in order to ensure the stability of the block chain platform. In this way, the world state is updated, thereby improving the applicability of the stored data.
Further, executing each transaction in the transaction set and updating the world state according to the transaction result, including: ordering the transactions in the transaction set according to the transaction amount; and executing each transaction in the transaction set according to the sequencing result, and updating the world state according to the transaction result.
in this embodiment, before executing the transaction, the transactions are sorted according to the transaction amount, then the transactions are executed according to the sorting sequence, and the world state is updated according to the transaction result. Therefore, the transaction execution with larger amount of money can be preferentially ensured, so that the transaction loss caused by technical problems can be reduced, and the safety of stored data is improved.
In an embodiment, as shown in fig. 7, the update process of the world state first determines whether the update layer is greater than a stable _ level (stable _ level), and if not, the update is ended. If yes, traversing the transactions of all blocks in the current layer, and storing the transactions into a transaction set (tx _ set); then, the transactions in the transaction combination are sequenced according to the transaction amount; then, executing each transaction in the transaction set according to the sorting result, and updating the world state (world state) according to the transaction result. And finally, pointing the updating layer to the next layer of the updating layer, and iteratively updating the world state.
in one embodiment, a block data storage method includes:
Acquiring a directed graph based on a block, wherein the block is a data structure object comprising storage data and a pointing relation; the directed graph takes the blocks as the vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; arranging the directed graphs layer by layer, wherein the width of each directed graph is K, and K is a natural number greater than or equal to 2;
Determining a target layer of the directed graph;
When the newly added block is inserted, verifying the legality of each block of the previous preset number layers of the target layer;
when the blocks of the previous preset number layer of the target layer are legal, if the number of the blocks of the previous layer of the target layer is more than K, executing (1) and (2);
(1) pointing the newly added block to K candidate blocks on the upper layer; the candidate blocks are the first K blocks with the reverse connectivity in the previous layer from big to small; the process of determining the reverse connectivity of each block of the previous layer includes: determining the connectivity of each block in the directed graph; the connectivity is equal to the number of paths from the block to the created block; determining the block with the maximum connectivity as a navigation block; determining the reverse connectivity of the block of the previous layer, wherein the reverse connectivity is equal to the number of paths from the block of the previous layer to the navigation block;
(2) Taking the M blocks with smaller reverse connectivity as newly added blocks inserted in the next round; wherein, the value of M is equal to the number of blocks of the previous layer minus K;
When a synchronization graph used for information synchronization is received, merging the comparison layers of the synchronization graph and the directed graph when the synchronization graph is inconsistent with the comparison layers of the directed graph; wherein, the data structure of the synchronization graph is the same as that of the finite graph;
directing each block in the merged comparative layer to each block of a layer above the comparative layer;
traversing each block of the update layer aiming at the directed graph, and storing the transaction in the block into a transaction set;
Ordering the transactions in the transaction set according to the transaction amount;
And executing each transaction in the transaction set according to the sequencing result, and updating the world state according to the transaction result.
through the process, each newly added block can find a proper level, the whole directed graph can always keep stable in structure, and the stability of block data storage is improved. Because newly added blocks are required to verify the blocks of the previous preset number of layers, the verification time of each block is ensured, the defect that the block verification time is not fixed, which easily occurs in the traditional directed graph, can be overcome, and the throughput of block data storage is improved. The directed graph used in the block data storage method is always fixed in width, and the whole directed graph structure is always stable, so that the convergence time can be ensured, and the throughput and the stability of block data storage are improved. Meanwhile, other data structures are not introduced into the directed graph structure in the application. The method only structurally improves the original directed graph structure, keeps a simple data structure and improves the applicability of the block data storage method.
in one embodiment, the Directed Graph with K width, which is arranged layer by layer with the blocks as vertices and the directional relationships of the blocks as Directed edges, may be referred to as a cogag (compact Directed ac Graph). A system framework for implementing block data storage based on the cogag is shown in fig. 8, and mainly includes the following five modules:
a network module: the functions of performing communication among the blockchain nodes by using a P2P protocol and the like; such as, can include
a CoDAG module: defining a data structure of the bottom layer block chain and maintaining the stability of the whole structure;
a miner module: digging the mine by a block chain link point in a block chain platform through a PoW consensus mechanism, and adjusting a mine digging difficulty value according to an actual situation;
a consensus algorithm module: the block chain link points in the block chain platform form consensus, namely the state that the stored data of each block chain link point is consistent is achieved;
the bottom layer data structure: including Merkle Tree, hash computation module, etc.
And the block chain link points in the block chain platform jointly maintain the normal operation of the CoDAG by contributing the calculation power of the block chain link points, so that the decentralization is realized. In the CoDAG, transaction objects can be mutually transferred, and transfer information cannot be tampered. The developer can develop his own DApp (application program) by writing code based on the CoDAG structure, and realize his own desired functions. The DApp may implement the Call to the network module, the cogag module, the miner module, the consensus algorithm module, and the underlying data structure based on a Console (Console) deployed with an RPC (Remote Procedure Call Protocol).
As shown in fig. 9, in one embodiment, there is provided a block data storage device 600, comprising:
A directed graph obtaining module 902, configured to obtain a directed graph based on a block, where the block is a data structure object including storage data and a directional relationship; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2;
A target layer determination module 904, configured to determine a target layer of the directed graph;
a new block inserting module 906, configured to point the newly added block to K blocks in a layer above the target layer when the newly added block is inserted.
the block data storage device acquires a directed graph based on a block, wherein the block is a data structure object comprising storage data and a pointing relationship; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2; determining a target layer of the directed graph; and when a newly added block is inserted, pointing the newly added block to K blocks on the previous layer of the target layer. Since the width of the directed graph of the block is K, which is a natural number greater than or equal to 2, the block chain platform can have a greater throughput compared to the chain structure with a width of 1. And the width of the directed graph is limited to K, and the divergence of the directed graph can be limited by limiting the arrangement of the directed graph layer by layer, so that the directed graph becomes a layered and wide directed graph, and the stability of data storage of a block chain platform is improved. When a newly added block is inserted, the newly added block points to K blocks on the upper layer of the target layer, and a stable structure that each block in the graph points to all blocks on the upper layer of the block can be maintained, so that the stability of data storage of the block chain platform can be improved, and the safety of the stored data can be improved. Therefore, based on the block data storage device of the embodiment, the stability and the safety of the data stored in the block chain data platform can be improved on the premise of improving the throughput of the block chain platform.
In one embodiment, the new block inserting module is configured to, when the newly added block is inserted, point the newly added block to K candidate blocks in a previous layer if the number of blocks in the previous layer of the target layer is greater than K; the candidate blocks are the first K blocks with the reverse connectivity in the previous layer in descending order.
In one embodiment, the method further comprises the following steps:
a connectivity determining module, configured to determine connectivity of each block in the directed graph; the connectivity is equal to the number of paths from the block to a founder block;
the navigation block determining module is used for determining the block with the maximum connectivity as a navigation block;
a backward connectivity determining module, configured to determine a backward connectivity of the block of the previous layer, where the backward connectivity is equal to the number of paths from the block of the previous layer to the navigation block.
in one embodiment, the new block insertion module is configured to, when inserting the newly added block, if the number of blocks in a previous layer of the target layer is greater than K, further use M blocks with smaller reverse connectivity as newly added blocks to be inserted in a next round; wherein the value of M is equal to the number of blocks of the previous layer minus K.
in one embodiment, the new block inserting module is further configured to, when inserting a newly added block, point the newly added block to K blocks in a previous layer if the number of blocks in the previous layer of the target layer is equal to K.
In one embodiment, the method further comprises the following steps:
A synchronization information receiving module, configured to receive a synchronization map for information synchronization, where the synchronization map has a same data structure as the finite map;
And the information synchronous updating module is used for comparing the synchronous graph with the directed graph layer by layer and combining information to synchronously update the directed graph.
in one embodiment, the information synchronization updating module is configured to merge the synchronization map with an alignment layer of the directed graph when the synchronization map is inconsistent with the alignment layer of the directed graph; and pointing each block in the merged comparative layer to each block in a layer above the comparative layer.
in one embodiment, the method further comprises the following steps:
The world state updating module is used for traversing each block of an updating layer aiming at the directed graph and storing the transaction in the block into a transaction set; and executing each transaction in the transaction set, and updating the world state according to the transaction result.
In one embodiment, the world state updating module is further configured to sort the transactions in the transaction set according to transaction amounts; and executing each transaction in the transaction set according to the sequencing result, and updating the world state according to the transaction result.
In one embodiment, the method further comprises the following steps: a validity verification module;
the validity verification module is used for verifying the validity of each block of the previous preset number layers of the target layer when the newly added block is inserted;
And the new block inserting module is used for pointing the newly added block to K blocks on the previous layer of the target layer when each block on the previous preset number of layers of the target layer is legal.
FIG. 10 is a diagram showing an internal configuration of a computer device according to an embodiment. Referring to fig. 10, the computer device may be each server in the block link point 210 shown in fig. 1. The computer device includes a processor, a memory, and a network interface connected by a system bus. Wherein the memory includes a non-volatile storage medium and an internal memory. The non-volatile storage medium of the computer device may store an operating system and a computer program. The computer program, when executed, causes a processor to perform a block data storage method. The processor of the computer device is used for providing calculation and control capability and supporting the operation of the whole computer device. The internal memory may store a computer program that, when executed by the processor, causes the processor to perform a block data storage method. The network interface of the computer device is used for network communication.
Those skilled in the art will appreciate that the architecture shown in fig. 10 is merely a block diagram of some of the structures associated with the disclosed aspects and is not intended to limit the computing devices to which the disclosed aspects apply, as particular computing devices may include more or less components than those shown, or may combine certain components, or have a different arrangement of components.
in one embodiment, the block data storage apparatus provided in the present application may be implemented in a form of a computer program, the computer program may be executed on a computer device as shown in fig. 10, and the nonvolatile storage medium of the computer device may store various program modules constituting the block data storage apparatus, such as the directed graph obtaining module 902, the target layer determining module 904, and the new block inserting module 906 shown in fig. 9. A computer program composed of program modules is used to make the computer device execute the steps in the block data storage method according to the embodiments of the present application described in this specification, for example, the computer device may obtain a block-based directed graph through a directed graph obtaining module 902 in a block data storage apparatus as shown in fig. 9, where the block is a data structure object including storage data and a pointing relationship; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2. The computer device can determine a target layer of the directed graph through a target layer determination module 904. The computer device may point the newly added tile to K of the tiles on the previous layer of the target layer when the newly added tile is inserted by the new tile insertion module 906.
in one embodiment, a computer device is provided, comprising a memory and a processor, the memory storing a computer program which, when executed by the processor, causes the processor to perform the steps of the above-described block data storage method. The steps of the block data storage method may be steps in the block data storage methods of the above embodiments.
as such, in one embodiment, a computer device comprises a memory and a processor, the memory storing a computer program that, when executed by the processor, causes the processor to perform the steps of:
obtaining a directed graph based on a block, wherein the block is a data structure object comprising storage data and a directional relation;
the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph;
The directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2;
Determining a target layer of the directed graph;
And when a newly added block is inserted, pointing the newly added block to K blocks on the previous layer of the target layer.
In one embodiment, said directing the newly added block to K blocks of a layer above the target layer when inserting the newly added block comprises:
When the newly added block is inserted, if the number of the blocks of the last layer of the target layer is more than K, the newly added block is inserted into the target layer
pointing the newly added block to K candidate blocks on the previous layer; the candidate blocks are the first K blocks with the reverse connectivity in the previous layer in descending order.
In one embodiment, the determining of the inverse connectivity of each of the blocks of the previous layer includes:
determining the connectivity of each block in the directed graph; the connectivity is equal to the number of paths from the block to a founder block;
determining the block with the maximum connectivity as a navigation block;
determining a backward connectivity of the block of the previous layer equal to a number of paths from the block of the previous layer to the navigation block.
in one embodiment, when inserting the newly added block, if the number of blocks in the previous layer of the target layer is greater than K, further:
Taking the M blocks with smaller reverse connectivity as newly added blocks inserted in the next round;
wherein the value of M is equal to the number of blocks of the previous layer minus K.
In one embodiment, said directing the newly added block to K blocks of a layer above the target layer when inserting the newly added block comprises:
when inserting the newly added block, if the block number of the last layer of the target layer is equal to K, then
and pointing the newly added block to the K blocks of the previous layer.
In one embodiment, after the obtaining the block-based directed graph, the method further includes:
receiving a synchronization map for information synchronization, the synchronization map having the same data structure as the finite map;
And comparing the synchronous graph with the directed graph layer by layer, and merging information to synchronously update the directed graph.
In one embodiment, the step of comparing the synchronous directed graph with the directed graph layer by layer, and performing information merging to synchronously update the directed graph includes:
Merging the synchronization map with an alignment layer of the directed graph when the synchronization map is inconsistent with the alignment layer of the directed graph;
And pointing each block in the merged comparative layer to each block in a layer above the comparative layer.
In one embodiment, after the step of pointing the newly added block to K blocks in a layer above the target layer when the newly added block is inserted, the method further includes:
traversing each block of an updating layer aiming at the directed graph, and storing the transaction in the block into a transaction set;
And executing each transaction in the transaction set, and updating the world state according to the transaction result.
in one embodiment, the executing each transaction in the transaction set and updating the world state according to the transaction result includes:
sorting the transactions in the transaction set according to the transaction amount;
and executing each transaction in the transaction set according to the sequencing result, and updating the world state according to the transaction result.
In one embodiment, said directing the newly added block to K blocks of a layer above the target layer when inserting the newly added block comprises:
When the newly added block is inserted, verifying the legality of each block of the layers with the preset number in the target layer;
and when the blocks of the previous preset number layers of the target layer are legal, pointing the newly added blocks to the K blocks of the previous layer of the target layer.
In one embodiment, a computer readable storage medium is provided, storing a computer program that, when executed by a processor, causes the processor to perform the steps of the above-described block data storage method. The steps of the block data storage method may be steps in the block data storage methods of the above embodiments.
as such, in one embodiment, a computer readable storage medium stores a computer program that, when executed by a processor, causes the processor to perform the steps of:
Obtaining a directed graph based on a block, wherein the block is a data structure object comprising storage data and a directional relation;
The directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph;
the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2;
determining a target layer of the directed graph;
and when a newly added block is inserted, pointing the newly added block to K blocks on the previous layer of the target layer.
In one embodiment, said directing the newly added block to K blocks of a layer above the target layer when inserting the newly added block comprises:
When the newly added block is inserted, if the number of the blocks of the last layer of the target layer is more than K, the newly added block is inserted into the target layer
pointing the newly added block to K candidate blocks on the previous layer; the candidate blocks are the first K blocks with the reverse connectivity in the previous layer in descending order.
In one embodiment, the determining of the inverse connectivity of each of the blocks of the previous layer includes:
Determining the connectivity of each block in the directed graph; the connectivity is equal to the number of paths from the block to a founder block;
determining the block with the maximum connectivity as a navigation block;
determining a backward connectivity of the block of the previous layer equal to a number of paths from the block of the previous layer to the navigation block.
In one embodiment, when inserting the newly added block, if the number of blocks in the previous layer of the target layer is greater than K, further:
Taking the M blocks with smaller reverse connectivity as newly added blocks inserted in the next round;
Wherein the value of M is equal to the number of blocks of the previous layer minus K.
in one embodiment, said directing the newly added block to K blocks of a layer above the target layer when inserting the newly added block comprises:
when inserting the newly added block, if the block number of the last layer of the target layer is equal to K, then
and pointing the newly added block to the K blocks of the previous layer.
in one embodiment, after the obtaining the block-based directed graph, the method further includes:
receiving a synchronization map for information synchronization, the synchronization map having the same data structure as the finite map;
and comparing the synchronous graph with the directed graph layer by layer, and merging information to synchronously update the directed graph.
In one embodiment, the step of comparing the synchronous directed graph with the directed graph layer by layer, and performing information merging to synchronously update the directed graph includes:
merging the synchronization map with an alignment layer of the directed graph when the synchronization map is inconsistent with the alignment layer of the directed graph;
And pointing each block in the merged comparative layer to each block in a layer above the comparative layer.
in one embodiment, after the step of pointing the newly added block to K blocks in a layer above the target layer when the newly added block is inserted, the method further includes:
Traversing each block of an updating layer aiming at the directed graph, and storing the transaction in the block into a transaction set;
and executing each transaction in the transaction set, and updating the world state according to the transaction result.
in one embodiment, the executing each transaction in the transaction set and updating the world state according to the transaction result includes:
Sorting the transactions in the transaction set according to the transaction amount;
And executing each transaction in the transaction set according to the sequencing result, and updating the world state according to the transaction result.
in one embodiment, said directing the newly added block to K blocks of a layer above the target layer when inserting the newly added block comprises:
when the newly added block is inserted, verifying the legality of each block of the layers with the preset number in the target layer;
and when the blocks of the previous preset number layers of the target layer are legal, pointing the newly added blocks to the K blocks of the previous layer of the target layer.
It should be understood that although the steps in the embodiments of the present application are not necessarily performed in the order indicated by the step numbers. The steps are not performed in the exact order shown and described, and may be performed in other orders, unless explicitly stated otherwise. Moreover, at least some of the steps in various embodiments may include multiple sub-steps or multiple stages, which are not necessarily performed at the same time, but may be performed at different times, and the order of performing the sub-steps or stages is not necessarily sequential, but may be performed alternately or alternately with other steps or at least some of the sub-steps or stages of other steps.
it will be understood by those skilled in the art that all or part of the processes of the methods of the embodiments described above can be implemented by a computer program, which can be stored in a non-volatile computer-readable storage medium, and can include the processes of the embodiments of the methods described above when the program is executed. Any reference to memory, storage, database, or other medium used in the embodiments provided herein may include non-volatile and/or volatile memory, among others. Non-volatile memory can include read-only memory (ROM), Programmable ROM (PROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), or flash memory. Volatile memory can include Random Access Memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in a variety of forms such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced SDRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), Rambus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).
The technical features of the embodiments described above may be arbitrarily combined, and for the sake of brevity, all possible combinations of the technical features in the embodiments described above are not described, but should be considered as being within the scope of the present specification as long as there is no contradiction between the combinations of the technical features.
The above-mentioned embodiments only express several embodiments of the present invention, and the description thereof is more specific and detailed, but not construed as limiting the scope of the invention. It should be noted that, for a person skilled in the art, several variations and modifications can be made without departing from the inventive concept, which falls within the scope of the present invention. Therefore, the protection scope of the present patent shall be subject to the appended claims.

Claims (15)

1. A method of block link point information synchronization, the method comprising:
obtaining a block-based directed graph of a current block chain node, wherein the block is a data structure object comprising storage data and a directional relation; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2;
Receiving a synchronization graph used for information synchronization and sent by other blockchain nodes, wherein the synchronization graph has the same data structure as the directed graph;
And comparing the synchronous graph with the directed graph layer by layer, and merging information to synchronously update the directed graph.
2. The method of claim 1, wherein receiving the synchronization map for information synchronization sent by other blockchain nodes comprises:
communicating with other blockchain nodes through a P2P handshake protocol to obtain other blockchain nodes in the blockchain platform;
And acquiring the directed graphs of other currently traversed blockchain nodes, and determining the directed graphs of the other blockchain nodes as synchronous graphs which are sent by the other blockchain nodes and used for information synchronization.
3. the method according to claim 1, wherein comparing the synchronization graph with the directed graph layer by layer, and performing information merging to update the directed graph synchronously comprises:
taking the layer which is obtained by comparing the synchronous graph with the directed graph currently layer by layer as a comparison layer;
merging the synchronization map with an alignment layer of the directed graph when the synchronization map is inconsistent with the alignment layer of the directed graph;
and pointing each block in the merged comparative layer to each block in a layer above the comparative layer.
4. The method of claim 3, wherein using the layer to which the synchronization map and the directed map are currently compared layer by layer as a comparison layer comprises:
And starting from a navigation layer, taking the layer which is obtained by comparing the synchronous graph with the directed graph currently as a comparison layer by layer, wherein the navigation layer guides the layer to which a navigation block belongs, the navigation block is the block with the maximum connectivity in the synchronous graph and the directed graph, and the connectivity of the block is equal to the number of paths from the block to the created block.
5. the method according to claim 3, wherein the synchronization map is determined to be inconsistent with the alignment layer of the directed graph when the synchronization map and the alignment layer of the directed graph respectively include different blocks.
6. The method of claim 3, wherein directing each block in the merged pair of layers to each block in a layer above the pair of layers comprises:
And respectively taking the combined comparison layer as an updated comparison layer, and pointing each block in the updated comparison layer to the block pointed by each block in the comparison layer before updating.
7. The method according to claim 3 or 6, wherein the synchronization graph and the directed graph are compared layer by layer, and information is merged to update the directed graph synchronously, further comprising:
And when the comparison layers of the synchronous graph and the directed graph are consistent, completing the process of comparing the synchronous graph and the directed graph layer by layer and merging information to synchronously update the directed graph.
8. the method according to claim 1, wherein after the synchronous update of the directed graph, the method further comprises the steps of:
when a newly added block needs to be inserted, determining a target layer of the directed graph after synchronous updating;
When a newly added block is inserted, if the number of blocks on the upper layer of the target layer is larger than K, pointing the newly added block to K candidate blocks on the upper layer; the candidate blocks are the first K blocks with the reverse connectivity in the previous layer in descending order;
And the reverse connectivity of the block of the previous layer is equal to the number of paths from the block of the previous layer to the navigation block, the navigation block is the block with the maximum connectivity in the directed graph after the synchronous update, and the connectivity of the block is equal to the number of paths from the block to the created block.
9. The method of claim 8, wherein when inserting the new blocks, if the number of blocks in the previous layer of the target layer is greater than K, the method further comprises:
Taking the M blocks with smaller reverse connectivity as newly added blocks inserted in the next round;
wherein the value of M is equal to the number of blocks of the previous layer minus K.
10. A block link point information synchronization apparatus, the apparatus comprising:
the directed graph acquisition module is used for acquiring a directed graph based on a block, wherein the block is a data structure object comprising storage data and a pointing relation; the directed graph takes the blocks as vertexes of the directed graph and takes the directional relations of the blocks as directed edges of the directed graph; the directed graphs are arranged layer by layer, the width of each directed graph is K, and K is a natural number greater than or equal to 2;
A synchronization information receiving module, configured to receive a synchronization map for information synchronization sent by another blockchain node, where the synchronization map has the same data structure as the finite map;
and the information synchronous updating module is used for comparing the synchronous graph with the directed graph layer by layer and combining information to synchronously update the directed graph.
11. the apparatus of claim 10, wherein:
The information synchronization updating module is used for taking the layer which is obtained by comparing the synchronization graph with the directed graph currently layer by layer as a comparison layer; merging the synchronization map with an alignment layer of the directed graph when the synchronization map is inconsistent with the alignment layer of the directed graph; and pointing each block in the merged comparative layer to each block in a layer above the comparative layer.
12. The apparatus of claim 11, further comprising:
a connectivity determining module, configured to determine connectivity of each block in the directed graph; the connectivity is equal to the number of paths from the block to a founder block;
The navigation block determining module is used for determining the block with the maximum connectivity as a navigation block;
And the information synchronous updating module is used for taking the layer to which the synchronous graph and the directed graph are currently compared as a comparison layer by layer from a navigation layer, and the navigation layer guides the layer to which the navigation block belongs.
13. The apparatus according to any one of claims 10 to 12, wherein the information synchronization updating module is further configured to, when the synchronization graph is consistent with the comparison layer of the directed graph, complete a process of comparing the synchronization graph with the directed graph layer by layer, and performing information merging to perform synchronization updating on the directed graph.
14. A computer arrangement comprising a memory and a processor, the memory having stored therein a computer program which, when executed by the processor, causes the processor to carry out the steps of the method of any one of claims 1 to 9.
15. A computer-readable storage medium, having stored thereon a computer program which, when executed by a processor, causes the processor to carry out the steps of the method of any one of claims 1 to 9.
CN201910859383.0A 2019-07-23 2019-07-23 Block chain node information synchronization method and device, computer equipment and storage medium Active CN110569246B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910859383.0A CN110569246B (en) 2019-07-23 2019-07-23 Block chain node information synchronization method and device, computer equipment and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910859383.0A CN110569246B (en) 2019-07-23 2019-07-23 Block chain node information synchronization method and device, computer equipment and storage medium
CN201910666566.0A CN110362633B (en) 2019-07-23 2019-07-23 Block data storage method, device, computer equipment and storage medium

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910666566.0A Division CN110362633B (en) 2019-07-23 2019-07-23 Block data storage method, device, computer equipment and storage medium

Publications (2)

Publication Number Publication Date
CN110569246A true CN110569246A (en) 2019-12-13
CN110569246B CN110569246B (en) 2022-03-11

Family

ID=68219633

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910859383.0A Active CN110569246B (en) 2019-07-23 2019-07-23 Block chain node information synchronization method and device, computer equipment and storage medium
CN201910666566.0A Active CN110362633B (en) 2019-07-23 2019-07-23 Block data storage method, device, computer equipment and storage medium

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910666566.0A Active CN110362633B (en) 2019-07-23 2019-07-23 Block data storage method, device, computer equipment and storage medium

Country Status (1)

Country Link
CN (2) CN110569246B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110943869A (en) * 2019-12-16 2020-03-31 杭州复杂美科技有限公司 Block consensus and broadcast method, equipment and storage medium
CN111935005A (en) * 2020-08-07 2020-11-13 腾讯科技(深圳)有限公司 Data transmission method, device, processing equipment and medium
CN113300889A (en) * 2020-12-31 2021-08-24 恬家(上海)信息科技有限公司 Method for adjusting link width and block link network system
CN115049493A (en) * 2022-06-29 2022-09-13 北京知帆科技有限公司 Block chain data tracking method and device and electronic equipment

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989934B (en) * 2019-12-05 2023-08-25 达闼机器人股份有限公司 Block chain link point data storage method, block chain system and block chain node
CN111061735B (en) * 2019-12-13 2023-07-25 度小满科技(北京)有限公司 Capacity expansion method and device based on single-chain blockchain
CN111340623B (en) * 2020-02-21 2023-10-24 度小满科技(北京)有限公司 Data storage method and device

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170212781A1 (en) * 2016-01-26 2017-07-27 International Business Machines Corporation Parallel execution of blockchain transactions
CN107147735A (en) * 2017-05-12 2017-09-08 北京博晨技术有限公司 A kind of distributed account book system based on hierarchy
CN107977340A (en) * 2017-12-27 2018-05-01 邵美 A kind of importance ranking method of block chain trade network node
US20180262493A1 (en) * 2016-03-28 2018-09-13 Black Gold Coin, Inc. Systems and methods for providing block chain or distributed ledger-based entity identity and relationship verification
CN108595720A (en) * 2018-07-12 2018-09-28 中国科学院深圳先进技术研究院 A kind of block chain spatiotemporal data warehouse method, system and electronic equipment
CN108734453A (en) * 2018-05-21 2018-11-02 腾讯科技(深圳)有限公司 Block chain data processing method, device, computer equipment and storage medium
CN108765151A (en) * 2018-05-11 2018-11-06 深圳市恋上互联网技术有限公司 A kind of method of commerce based on block chain
CN108769154A (en) * 2018-05-15 2018-11-06 北京工业大学 Date storage method based on directed acyclic graph and distributed account book
CN108985732A (en) * 2018-06-08 2018-12-11 中国地质大学(武汉) The common recognition and account book data organization method and system of DAG technology based on no block
CN109523260A (en) * 2018-11-28 2019-03-26 段红 A kind of high concurrent common recognition mechanism of dynamic node election
CN109672733A (en) * 2018-12-20 2019-04-23 众安信息技术服务有限公司 The account book synchronous method and equipment of block chain based on DAG
CN109815208A (en) * 2018-12-13 2019-05-28 重庆邮电大学 A kind of battery management system based on block chain

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005010632A2 (en) * 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
US7908163B2 (en) * 2005-07-15 2011-03-15 The Board Of Trustees Of The University Of Alabama Method and system for parallel scheduling of complex dags under uncertainty
CN108805570B (en) * 2018-06-01 2021-05-25 腾讯科技(深圳)有限公司 Data processing method, device and storage medium
CN109544344B (en) * 2018-12-24 2021-07-02 众安信息技术服务有限公司 Block chain transaction processing method and equipment based on DAG

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170212781A1 (en) * 2016-01-26 2017-07-27 International Business Machines Corporation Parallel execution of blockchain transactions
US20180262493A1 (en) * 2016-03-28 2018-09-13 Black Gold Coin, Inc. Systems and methods for providing block chain or distributed ledger-based entity identity and relationship verification
CN107147735A (en) * 2017-05-12 2017-09-08 北京博晨技术有限公司 A kind of distributed account book system based on hierarchy
CN107977340A (en) * 2017-12-27 2018-05-01 邵美 A kind of importance ranking method of block chain trade network node
CN108765151A (en) * 2018-05-11 2018-11-06 深圳市恋上互联网技术有限公司 A kind of method of commerce based on block chain
CN108769154A (en) * 2018-05-15 2018-11-06 北京工业大学 Date storage method based on directed acyclic graph and distributed account book
CN108734453A (en) * 2018-05-21 2018-11-02 腾讯科技(深圳)有限公司 Block chain data processing method, device, computer equipment and storage medium
CN108985732A (en) * 2018-06-08 2018-12-11 中国地质大学(武汉) The common recognition and account book data organization method and system of DAG technology based on no block
CN108595720A (en) * 2018-07-12 2018-09-28 中国科学院深圳先进技术研究院 A kind of block chain spatiotemporal data warehouse method, system and electronic equipment
CN109523260A (en) * 2018-11-28 2019-03-26 段红 A kind of high concurrent common recognition mechanism of dynamic node election
CN109815208A (en) * 2018-12-13 2019-05-28 重庆邮电大学 A kind of battery management system based on block chain
CN109672733A (en) * 2018-12-20 2019-04-23 众安信息技术服务有限公司 The account book synchronous method and equipment of block chain based on DAG

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MINHAJ AHMAD KHAN ET AL.: "IoT security: Review, blockchain solutions, and open challenges", 《FUTURE GENERATION COMPUTER SYSTEMS》 *
YINQIU LIU ET AL.: "LightChain: A Lightweight Blockchain System for Industrial Internet of Things", 《IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS》 *
邵奇峰 等: "区块链技术:架构及进展", 《计算机学报》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110943869A (en) * 2019-12-16 2020-03-31 杭州复杂美科技有限公司 Block consensus and broadcast method, equipment and storage medium
CN110943869B (en) * 2019-12-16 2022-03-04 杭州复杂美科技有限公司 Block consensus and broadcast method, equipment and storage medium
CN111935005A (en) * 2020-08-07 2020-11-13 腾讯科技(深圳)有限公司 Data transmission method, device, processing equipment and medium
CN111935005B (en) * 2020-08-07 2023-10-24 腾讯科技(深圳)有限公司 Data transmission method, device, processing equipment and medium
CN113300889A (en) * 2020-12-31 2021-08-24 恬家(上海)信息科技有限公司 Method for adjusting link width and block link network system
CN115049493A (en) * 2022-06-29 2022-09-13 北京知帆科技有限公司 Block chain data tracking method and device and electronic equipment

Also Published As

Publication number Publication date
CN110362633B (en) 2023-12-05
CN110569246B (en) 2022-03-11
CN110362633A (en) 2019-10-22

Similar Documents

Publication Publication Date Title
CN110569246B (en) Block chain node information synchronization method and device, computer equipment and storage medium
CN110912707B (en) Block chain-based digital certificate processing method, device, equipment and storage medium
CN109493050B (en) Transfer method based on block chain main chain and parallel multiple sub-chains
CN109242467B (en) Block chain-based networking method and device, computer equipment and storage medium
CN109472572B (en) Contract system based on block chain main chain and parallel multiple sub-chains
CN102170440B (en) Method suitable for safely migrating data between storage clouds
KR101986081B1 (en) Method for sharing and verifing a block between specific nodes in a blockchain
KR20200116011A (en) Systems and methods for parallel-processing blockchain transactions
US20230316273A1 (en) Data processing method and apparatus, computer device, and storage medium
CN109493052B (en) Cross-chain contract system based on main chain and parallel multiple sub-chains
CN113141259B (en) Method and device for replacing identity certificate in block chain network
CN112527912B (en) Data processing method and device based on block chain network and computer equipment
CN110837491B (en) Block chain financial big data processing system and method
CN110264354A (en) It creates block chain account and verifies the method and device of block chain transaction
CN109347868A (en) A kind of Information Authentication method, apparatus and storage medium
CN110598375B (en) Data processing method, device and storage medium
CN109815748A (en) A kind of centre data source method for monitoring based on block chain
CN112069550B (en) Electronic contract evidence-storing system based on intelligent contract mode
KR20190068799A (en) Method and apparatus for performing hierarchically agreement based on service zone
JP2022551874A (en) Method and Apparatus for Secure Symbiosis Mining
CN110910110A (en) Data processing method and device and computer storage medium
JP2020204898A (en) Method, system, and program for managing operation of distributed ledger system
CN115883646A (en) Cross-chaining method, system, storage medium and server
KR102294569B1 (en) Block Chain Management System To Build Block Chain Network
Shariar et al. A decentralized computational system built on blockchain for educational institutions

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40016926

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant