Blockchain network data transmission method and apparatus, and blockchain network

By adopting Named Data Network (NDN) as the underlying architecture in the blockchain network and utilizing interest packets and synchronization forwarding table design, the problem of low data synchronization efficiency in the blockchain network is solved, and more efficient data transmission and resource utilization are achieved.

CN119814807BActive Publication Date: 2025-11-25BEIJING UNIV OF POSTS & TELECOMM
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510156394.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-02-12
Publication Date
2025-11-25
Estimated Expiration
2045-02-12

AI Technical Summary

Technical Problem

The low efficiency of data synchronization between nodes and the insufficient utilization of network resources in blockchain networks lead to redundancy and insufficient bandwidth utilization in data transmission under the traditional IP network architecture.

Method used

The Named Data Network (NDN) is adopted as the underlying architecture of the blockchain network. By using the naming method of interest packets and the design of a synchronous forwarding table, targeted forwarding and reduction of redundant data transmission are achieved. The content caching and name addressing features of NDN are utilized to optimize the data transmission process of the blockchain network.

Benefits of technology

It reduces data redundancy in the blockchain network, improves data synchronization efficiency and system performance, and enhances the utilization rate of network resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119814807B_ABST
    Figure CN119814807B_ABST
Patent Text Reader

Abstract

The application provides a blockchain network data transmission method and device and a blockchain network. The method comprises the following steps: obtaining a target interest package in a blockchain network; if it is confirmed that the target interest package is obtained for the first time, updating a local synchronization forwarding table according to an incoming node ID corresponding to the target interest package and a node name of a source node of the target interest package generated in advance in a naming manner of a named data network; if it is confirmed that there is a downstream neighbor node in the blockchain network, broadcasting the target interest package to the downstream neighbor node so that the target interest package is finally broadcast to the whole blockchain network; and if another interest package returned by the downstream neighbor node is received, judging whether to update the block state of the self and each downstream neighbor node according to the returned another interest package, or sending a data package corresponding to a new block to the downstream neighbor node returning the another interest package. The application can reduce the redundancy of blockchain network data transmission and improve the performance of the blockchain system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of blockchain technology, and in particular to blockchain network data transmission methods, devices, and blockchain networks. Background Technology

[0002] Blockchain technology, as a decentralized distributed ledger technology, has been widely applied in finance, supply chain, healthcare, and digital asset management. Its core characteristics include decentralization, tamper resistance, and transparency. However, as blockchain networks continue to expand, the efficiency of data synchronization between nodes and network performance have become increasingly critical issues limiting blockchain development. Given the limitations of current network infrastructure architecture, most blockchain systems rely on IP-based peer-to-peer transmission protocols for data propagation and synchronization; however, this network model has significant bottlenecks.

[0003] Traditional blockchain systems are based on a TCP / IP network architecture, where nodes identify themselves using IP addresses. Blockchain networks employ broadcast or neighbor-based propagation methods, resulting in relatively low network resource utilization. Especially with a large number of nodes, traditional methods easily lead to packet overload, resulting in insufficient bandwidth utilization and low transmission efficiency.

[0004] Named Data Networking (NDN) is a novel content-based network architecture that enables efficient data routing and distribution via content names rather than IP addresses. This architecture offers a new approach to solving the synchronization problem in blockchain networks. Through NDN's content caching and name-based addressing features, data can be propagated more efficiently between nodes. Furthermore, NDN's natural support for broadcasting is well-suited for blockchain, reducing data transmission redundancy and overhead.

[0005] However, existing research and practice on replacing the blockchain network layer with NDN largely focuses on how data is sent and received. Naming and transmission designs are relatively simple, and the adaptation methods lack full utilization of NDN performance. Because the location of block data generation is unknown, NDN sends a large number of request messages, consuming channel resources. Simply using a broadcast transmission strategy ignores the characteristics of blockchain node data transmission, and aimless NDN data requests also cause a certain degree of data redundancy. Summary of the Invention

[0006] In view of this, embodiments of this application provide a blockchain network data transmission method, apparatus, and blockchain network to eliminate or improve one or more defects existing in the prior art.

[0007] One aspect of this application provides a blockchain network data transmission method, comprising:

[0008] If a target interest package is obtained in the blockchain network, and it is confirmed that the target interest package is obtained for the first time, the local synchronization forwarding table is updated according to the incoming node ID corresponding to the target interest package and the node name of the source node that initiated the target interest package, which is generated in advance according to the naming method of the named data network.

[0009] If it is confirmed that it currently has downstream neighbor nodes in the blockchain network, then the target interest packet is broadcast to all the downstream neighbor nodes so that the target interest packet is eventually broadcast to the entire blockchain network;

[0010] If another interest packet is received from the downstream neighbor node, then based on the returned other interest packet, it is determined whether to update the block status of itself and each of the downstream neighbor nodes, or to send the data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet.

[0011] In some embodiments of this application, the interest package includes a corresponding application name, an interest type, interest information corresponding to the interest type, and additional information; the application name includes: blockchain based on a named data network;

[0012] The interest types include: data request interests and interest announcements;

[0013] The interest information corresponding to the data request interest includes: information used to represent the requested block;

[0014] The interest information corresponding to the interest announcement includes: information used to indicate connection establishment, connection rejection, response status, update status, connection termination, and the generation of a new block;

[0015] The additional information includes at least one of the following: node name generated using the naming convention of the named data network, block hash value, and block status; the block status includes: block height;

[0016] The target interest packet refers to the interest packet containing information indicating the establishment of a connection, the response status, the update status, the termination of a connection, the generation of a new block, or the request for a block.

[0017] If the target interest packet contains information indicating the establishment of the connection, then the target interest packet is the first interest packet;

[0018] If the target interest packet contains information indicating the response status, then the target interest packet is a second interest packet;

[0019] If the target interest packet contains information for representing the requested block, then the target interest packet is a third interest packet;

[0020] If the target interest packet contains information indicating the update status, then the target interest packet is the fourth interest packet;

[0021] If the target interest packet contains information indicating the generation of the new block, then the target interest packet is the fifth interest packet.

[0022] In some embodiments of this application, the step of obtaining a target interest packet in a blockchain network, if it is confirmed that the target interest packet has been obtained for the first time, involves updating the local synchronization forwarding table based on the incoming node ID corresponding to the target interest packet and the node name of the source node that initiated the target interest packet, which is pre-generated using the naming convention of a named data network. This includes:

[0023] In a blockchain network, a first interest packet containing information indicating the establishment of a connection is generated by itself as the source node; or, a first interest packet containing information indicating the establishment of a connection is received by itself from its upstream neighbor nodes in the blockchain network.

[0024] If the system determines whether it has obtained the first interest packet for the first time, it adds an entry for the source node corresponding to the first interest packet to the local synchronization forwarding table. The entry stores the correspondence between the node name of the source node corresponding to the first interest packet, which is generated in advance according to the naming method of the named data network, and the incoming node ID corresponding to the first interest packet. If the first interest packet is generated locally, the incoming node ID is the ID of the source node; if the first interest packet is received from its own upstream neighbor node, the incoming node ID is the ID of the upstream neighbor node.

[0025] If it is confirmed that there are downstream neighbor nodes in the blockchain network, the IDs of each downstream neighbor node are used as outgoing node IDs and added to the table entry of the source node corresponding to the first interest packet.

[0026] In some embodiments of this application, the step of receiving another interest packet returned by the downstream neighbor node, and determining whether to update the block status of itself and each of the downstream neighbor nodes, or to send a data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet, includes:

[0027] If a second interest packet containing information indicating the response status is received from the downstream neighbor node, it is determined whether the block height indicated by the additional information in the second interest packet is higher than its current block height.

[0028] If so, the downstream neighbor node with a block height higher than its own current block height is identified as the current target node. The known block height of the node is updated according to the block height of the target node indicated by the additional information in the second interest packet. A third interest packet containing information representing the requested block is sent to the target node to update the local block based on the data packet of the highest block returned by the target node. A fourth interest packet containing information representing the update status and the block height of the target node is broadcast to other downstream neighbor nodes besides the target node. This causes other downstream neighbor nodes to update their own known block heights according to the target node's block height and continue broadcasting the fourth interest packet containing information representing the update status and the block height of the target node to their respective downstream neighbor nodes, thereby synchronizing the block height of all nodes in the blockchain network to the block height of the target node.

[0029] If not, and the block height indicated by the additional information in the second interest packet is lower than its own current block height, then the downstream neighbor node whose block height is lower than its own current block height is identified as the current target node. A fourth interest packet containing information indicating the update status and its own block height is sent to the target node, so that the target node updates its known block height according to the target node's block height and returns a third interest packet containing information indicating the requested block. The third interest packet returned by the target node is received, and the data packet of its current highest block is sent to the target node, so that the target node updates its local block according to the received data packet of the highest block and continues to send a fourth interest packet containing information indicating the update status and the target node's block height to its downstream neighbor nodes, thereby synchronizing the block height of all nodes in the blockchain network to the block height of the target node.

[0030] In some embodiments of this application, the blockchain network data transmission method further includes:

[0031] In a blockchain network, a sixth interest packet containing information indicating the termination of the connection is generated by itself as the source node, or a sixth interest packet containing information indicating the termination of the connection is broadcast by its upstream neighbor node in the blockchain network.

[0032] Determine whether it is the first time it has obtained the sixth interest packet. If so, delete the entry of the source node corresponding to the sixth interest packet in the local synchronization forwarding table.

[0033] If it is confirmed that it currently has downstream neighbor nodes in the blockchain network, then the sixth interest packet is broadcast to all the downstream neighbor nodes so that the sixth interest packet is eventually broadcast to the entire blockchain network.

[0034] In some embodiments of this application, the step of obtaining a target interest packet in a blockchain network, if it is confirmed that the target interest packet has been obtained for the first time, involves updating the local synchronization forwarding table based on the incoming node ID corresponding to the target interest packet and the node name of the source node that initiated the target interest packet, which is pre-generated using the naming convention of a named data network. This includes:

[0035] In a blockchain network, a fifth interest packet containing information indicating the generation of the new block is generated by itself as the source node; or, in a blockchain network, a fifth interest packet containing information indicating the generation of the new block is broadcast by its upstream neighbor node.

[0036] If the system determines whether it has received the fifth interest packet for the first time, it adds an entry for the source node corresponding to the fifth interest packet to the local synchronization forwarding table. The entry for the source node corresponding to the fifth interest packet is used to store the correspondence between the node name of the source node generated in advance according to the naming method of the named data network and the incoming node ID corresponding to the fifth interest packet. If the fifth interest packet is generated locally, the incoming node ID is the ID of the source node; if the fifth interest packet is received from its own upstream neighbor node, the incoming node ID is the ID of the upstream neighbor node.

[0037] If it is confirmed that it currently has downstream neighbor nodes in the blockchain network, the IDs of each of the downstream neighbor nodes are used as outgoing node IDs and added to the table of the source node corresponding to the fifth interest packet. Then, a data packet containing information representing the requested block is sent to the source node to obtain the corresponding new block.

[0038] In some embodiments of this application, the step of receiving another interest packet returned by the downstream neighbor node, and determining whether to update the block status of itself and each of the downstream neighbor nodes, or to send a data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet, includes:

[0039] If a third interest packet containing information representing the requested block is received from the downstream neighbor node, then the data packet of the new block, pre-stored locally, is sent to the downstream neighbor node.

[0040] In some embodiments of this application, the blockchain network data transmission method further includes:

[0041] If a target interest packet is obtained in the blockchain network, and it is confirmed that it is not the first time it has obtained the target interest packet, a seventh interest packet containing information indicating the refusal to connect is sent to the upstream neighbor node that sent the target interest packet, so that the upstream neighbor node that receives the seventh interest packet will delete the ID of the node that sent the seventh interest packet from the entry in its synchronization forwarding table.

[0042] Another aspect of this application provides a blockchain network data transmission device, comprising:

[0043] The synchronization forwarding table update module is used to obtain target interest packets in the blockchain network. If it confirms that it has obtained the target interest packet for the first time, it updates the local synchronization forwarding table according to the incoming node ID corresponding to the target interest packet and the node name of the source node that initiated the target interest packet, which is generated in advance according to the naming method of the named data network.

[0044] The interest packet broadcasting module, if it confirms that it currently has downstream neighbor nodes in the blockchain network, broadcasts the target interest packet to all the downstream neighbor nodes so that the target interest packet is eventually broadcast to the entire blockchain network;

[0045] The node and block synchronization module is used to determine whether to update the block status of itself and each of the downstream neighbor nodes, or to send a data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet, if it receives another interest packet returned by the downstream neighbor node.

[0046] A third aspect of this application provides a blockchain network in which each node constituting the blockchain network is used to execute the blockchain network data transmission method.

[0047] A fourth aspect of this application provides an electronic device including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the blockchain network data transmission method.

[0048] A fifth aspect of this application provides a computer-readable storage medium having a computer program stored thereon that, when executed by a processor, implements the blockchain network data transmission method.

[0049] The sixth aspect of this application provides a computer program product, including a computer program that, when executed by a processor, implements the blockchain network data transmission method.

[0050] The blockchain network data transmission method provided in this application obtains a target interest packet in the blockchain network. If it confirms that it has obtained the target interest packet for the first time, it updates the local synchronization forwarding table according to the incoming node ID corresponding to the target interest packet and the node name of the source node that initiated the target interest packet, which is generated in advance using the naming method of the named data network. If it confirms that it currently has downstream neighbor nodes in the blockchain network, it broadcasts the target interest packet to all the downstream neighbor nodes so that the target interest packet is eventually broadcast to the entire blockchain network. If it receives another interest packet returned by the downstream neighbor node, it determines whether to update the block status of itself and each of the downstream neighbor nodes, or send a data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet. This method can make full use of the naming method of the named data network to reduce data redundancy in blockchain network data transmission, improve block data synchronization efficiency, and enhance the performance of the blockchain system.

[0051] Additional advantages, objectives, and features of this application will be set forth in part in the description which follows, and will in part become apparent to those skilled in the art upon review of the following description, or may be learned by practice of the application. The objectives and other advantages of this application can be realized and obtained by means of the structures specifically pointed out in the specification and drawings.

[0052] Those skilled in the art will understand that the purposes and advantages that can be achieved with this application are not limited to those specifically described above, and that the above and other purposes that this application can achieve will be more clearly understood from the following detailed description. Attached Figure Description

[0053] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, do not constitute a limitation thereof. The components in the drawings are not drawn to scale but are merely for illustrating the principles of this application. For ease of illustration and description of certain parts of this application, corresponding portions in the drawings may be enlarged, i.e., may appear larger relative to other components in an exemplary device actually manufactured according to this application. In the drawings:

[0054] Figure 1 This is a schematic diagram of the first process of a blockchain network data transmission method in one embodiment of this application.

[0055] Figure 2 This is a schematic diagram illustrating an example of a data packet naming design provided in this application.

[0056] Figure 3 This is a schematic diagram illustrating another example of a naming design for a data packet provided in this application.

[0057] Figure 4This diagram illustrates a comparison of data propagation between the interest transfer method proposed in this application and existing interest broadcasting methods.

[0058] Figure 5 This is a schematic diagram of the structure of the synchronous forwarding expression proposed in this application.

[0059] Figure 6 This is a schematic diagram of a second process of a blockchain network data transmission method in one embodiment of this application.

[0060] Figure 7 This is a schematic diagram of a third process of a blockchain network data transmission method in one embodiment of this application.

[0061] Figure 8 This is a schematic diagram illustrating a new block propagation example in an application instance of this application.

[0062] Figure 9 This is a system state diagram corresponding to the blockchain network in an application example of this application.

[0063] Figure 10 This is a schematic diagram of the structure of a blockchain network data transmission device in one embodiment of this application. Detailed Implementation

[0064] To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the embodiments and accompanying drawings. Here, the illustrative embodiments and their descriptions are used to explain this application, but are not intended to limit it.

[0065] It should also be noted that, in order to avoid obscuring this application with unnecessary details, only the structures and / or processing steps closely related to the solution according to this application are shown in the accompanying drawings, while other details that are not closely related to this application are omitted.

[0066] It should be emphasized that the term "including / comprises" as used herein refers to the presence of a feature, element, step, or component, but does not exclude the presence or addition of one or more other features, elements, steps, or components.

[0067] It should also be noted that, unless otherwise specified, the term "connection" in this article can refer not only to a direct connection, but also to an indirect connection involving an intermediary.

[0068] In the following description, embodiments of the present application will be illustrated with reference to the accompanying drawings. In the drawings, the same reference numerals represent the same or similar parts, or the same or similar steps.

[0069] In existing blockchain networks, data transmission and synchronization are core components for the normal operation of decentralized systems. However, with the continuous expansion of the number and distribution scale of blockchain nodes, traditional IP-based peer-to-peer (P2P) network architectures have exposed numerous problems when handling large-scale data transmission. The most prominent issue is the inefficiency caused by data redundancy in network data transmission, which directly affects the performance and stability of the entire blockchain system.

[0070] Because blockchain networks employ a decentralized structure, each node needs to synchronize data from other nodes. To ensure data consistency, blockchain nodes often transmit data via broadcast mechanisms. While this broadcast-based data propagation method guarantees that data eventually reaches all nodes, it can easily lead to significant redundant transmission in large-scale networks. For example, when a new block needs to be synchronized by all nodes, multiple nodes may repeatedly receive the same data packets, which are inherently redundant and fail to effectively utilize network bandwidth. Furthermore, data synchronization between nodes often employs a request-response mechanism, where some nodes may continuously request data from other nodes, resulting in frequent data transmission and repeated exchanges, further exacerbating the network burden.

[0071] While some research has attempted to combine NDN with blockchain technology in recent years to explore how NDN can optimize data transmission and synchronization in blockchain, most of these studies have focused on data request mechanisms and data naming, without delving into the potential for deep integration between NDN and blockchain. Existing research on combining NDN with blockchain primarily focuses on how to utilize NDN's content naming and content addressing characteristics to improve the data request and retrieval process in blockchain networks. For example, some studies have explored naming methods to obtain the highest block state and names to retrieve block data; others have proposed subscription methods to overcome the problem that NDN cannot proactively push data. However, these methods also incur the overhead of maintaining new structures. Overall, current solutions still have significant room for improvement. To fully utilize the characteristics of NDN to accelerate data transmission performance at the blockchain network layer, this application designs and implements a low-redundancy, directed forwarding-based efficient synchronization mechanism for NDN blockchain networks. This synchronization mechanism can send NDN interests in a directed manner according to a list of neighboring nodes, forming a network-wide synchronization forwarding tree, thereby reducing the large number of redundant interest packets and corresponding response data packets caused by interest broadcasting. Ultimately, the design of this application has been proven to reduce network transmission redundancy and improve the performance of the blockchain system.

[0072] Named Data Networking (NDN) is a novel internet architecture that inherits the hourglass structure of the IP architecture, transforming IP address-based communication into content-based communication. NDN names data within the network based on its content, matching and retrieving information by name during forwarding. Therefore, this network architecture is independent of data storage location, directly providing services to the data. The NDN forwarding process (NFD) utilizes three data structures: the Pending Interest Table (PIT), the Forwarding Information Base (FIB), and the Content Cache (CS). The PIT records pending interests and their corresponding interfaces; the FIB stores routing information for controlling interest forwarding; and the CS caches incoming data packets. These three structures, along with the forwarding strategy module, implement the aforementioned interest forwarding and data response process. In NDN, the interface connecting the application to the network layer or network nodes is called a plane. When an NDN packet arrives at a plane, NDN processes it and forwards it to another plane in a specific way, thus reaching the packet's next hop. NDN's advantages, such as data caching, local multicast, and adaptive forwarding, can better address the problems of low transmission efficiency and high data redundancy in blockchain systems. Meanwhile, each data packet is encrypted and signed within the NDN, ensuring data integrity and authenticity. Therefore, using NDN as the underlying network architecture in blockchain systems has become a trend.

[0073] The NDN-based blockchain network transmission strategy (i.e., the BlockNDN mechanism) is an NDN network design for transaction blockchain systems. Its purpose is to leverage NDN's multicast capabilities to reduce the overhead of IP networks. This method employs a naming design for block propagation applicable to transaction systems. In this strategy, interests are divided into three parts: application, function, and data digest. Nodes locate missing blocks using the data digest and send back the corresponding block data as a response packet. When a node updates the block state, it also broadcasts the interest, sharing the hash digest of the new block as part of the interest to inform other network nodes of the new block's status.

[0074] The BoNDN mechanism considers the adaptability of the blockchain network layer to NDN, supporting real-time broadcasting of blockchain transaction information through interest-based broadcasting. Because the interest is small, it will not affect the network. Furthermore, considering that NDN does not support proactive data push, this mechanism uses a subscription-based push method to support the broadcasting of block data in the blockchain. Ordinary nodes subscribe to miner nodes based on their interests, and miner nodes maintain a subscription table to record subscription information. When a miner node produces a new block, it sends the block data back to the nodes that subscribed to it according to the information in the subscription table, thus solving the problem of proactive data push.

[0075] The anchor mechanism also focuses on communication overhead and redundant traffic. Considering the security and efficiency issues inherent in simply combining blockchain and NDN, it introduces the concept of an anchor, connecting nodes by tailoring and cascading two NDN systems. In the first layer, the anchor acts as a consumer, and each node acts as a potential producer; in the second layer, the anchor acts as a producer. Newly generated data propagates to the anchor through the first-layer NDN, and the anchor relays it to other nodes through the second-layer NDN.

[0076] Therefore, this application comprehensively considers the advantages and disadvantages of the above strategies and designs and implements a new blockchain network layer synchronization strategy. The embodiments of this application provide a blockchain network data transmission method, a blockchain network data transmission device for executing the blockchain network data transmission method, a physical device, a computer-readable storage medium and a computer program product, and a blockchain network, which can make full use of the characteristics of NDN, reduce data redundancy in data transmission, and improve the efficiency of block data synchronization.

[0077] The following examples will provide a detailed description.

[0078] Based on this, embodiments of this application provide a blockchain network data transmission method that can be implemented by a blockchain network data transmission device, see [link to relevant documentation]. Figure 1 The blockchain network data transmission method specifically includes the following:

[0079] Step 100: Obtain the target interest packet in the blockchain network. If it is confirmed that the target interest packet is obtained for the first time, update the local synchronization forwarding table according to the incoming node ID corresponding to the target interest packet and the node name of the source node that initiated the target interest packet, which is generated in advance using the naming method of the named data network.

[0080] In one or more embodiments of this application, the blockchain network data transmission device is disposed within a node in the blockchain network.

[0081] It is understood that if the first interest packet is generated locally, the incoming node ID is the ID of the source node; if the first interest packet is received from its own upstream neighbor node, the incoming node ID is the ID of that upstream neighbor node. In other words, the node where the blockchain network data transmission device executing the blockchain network data transmission method is located can be the source node that generates the target interest packet, or it can be an intermediate node that receives the target interest packet broadcast by its own upstream neighbor node in the blockchain network.

[0082] In one or more embodiments of this application, the incoming node ID can be abbreviated as incoming face ID or incoming ID, and the outgoing node ID mentioned in subsequent embodiments can be abbreviated as outgoing face ID or outgoing ID. The target interest packet refers to an interest packet containing information indicating connection establishment (pull_status), response status (answer), update status (update), new block generation (newblock), or request block (request_block). The other interest packet in step 300 refers to another target interest packet that is different from the target interest packet in step 100. Furthermore, the interest packet in the embodiments of this application may also contain information indicating connection rejection (occupied), which will be described in detail in subsequent embodiments. The ID (Identity document) refers to a unique identifier of a node in the blockchain network, such as a code.

[0083] In one or more embodiments of this application, the interest package may also be abbreviated as interest.

[0084] Step 200: If it is confirmed that there are downstream neighbor nodes in the blockchain network, then broadcast the target interest packet to all the downstream neighbor nodes so that the target interest packet is eventually broadcast to the entire blockchain network.

[0085] In step 200, if it is confirmed that there are no downstream neighbor nodes in the blockchain network, step 300 is not executed, and the target interest packet containing information indicating its own response status is sent directly to the upstream neighbor node that sent the target interest packet. The additional information in the target interest packet containing information indicating its own response status includes its current block status (such as block height).

[0086] Step 300: If another interest packet is received from the downstream neighbor node, determine whether to update the block status of itself and each of the downstream neighbor nodes based on the returned other interest packet, or send the data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet.

[0087] In step 300, if the currently received interest packet returned by the downstream neighbor node contains a target interest packet that indicates the response status, it means that it is currently in a new node synchronization state. It determines whether the block height indicated by the additional information in the target interest packet is higher than its current block height, and decides whether to update the block status of the local node and other downstream neighbor nodes except the downstream neighbor node based on the determination result.

[0088] In step 300, if a target interest packet containing information representing the requested block is received from the downstream neighbor node, it indicates that the device is currently in the process of synchronizing a new block and sends the data packet of the new block pre-stored locally to the downstream neighbor node.

[0089] As described above, the blockchain network data transmission method provided in this application is a transmission mechanism for reducing data redundancy in blockchain networks. This mechanism is based on NDN networks and aims to optimize the efficiency of existing blockchain networks during data synchronization. The blockchain network data transmission method provided in this application utilizes NDN naming conventions as a routing method, replacing the fixed routing method based on IP addresses in traditional blockchains. By naming and identifying block data and block states, nodes can acquire different data based on different types of interests. The transmission mechanism in this application involves a new data structure called a synchronization forwarding table for storing synchronization status, and designs for naming requests (interests). The synchronization process can be divided into two parts: new node synchronization and new block propagation.

[0090] To further leverage the naming convention of named data networks to reduce data redundancy in blockchain network data transmission, a blockchain network data transmission method is provided in this application embodiment, see [link to relevant documentation]. Figure 2 and Figure 3 The interest package contains a corresponding application name, interest type, interest information corresponding to the interest type, and additional information; the application name includes: blockchain based on named data network (ndnblockchain);

[0091] See Figure 2 and Figure 3 The interest types include: data request interest (request) and interest announcement (main);

[0092] The interest information corresponding to the data request interest includes: information used to represent the request block (request_block);

[0093] The interest information corresponding to the interest announcement includes information indicating connection establishment (pull_status), connection rejection (occupied), response status (answer), update status (update), connection termination (finish), and new block generation (newblock);

[0094] The additional information includes at least one of the following: a node name (e.g., node1) generated using the naming convention of the named data network, a block hash value, and a block status; the block status includes: block height (e.g., 3291, 3292, or 3295);

[0095] The target interest packet refers to the interest packet containing information indicating the establishment of a connection, the response status, the update status, the termination of a connection, the generation of a new block, or the request for a block.

[0096] If the target interest packet contains information indicating the establishment of the connection, then the target interest packet is the first interest packet;

[0097] If the target interest packet contains information indicating the response status, then the target interest packet is a second interest packet;

[0098] If the target interest packet contains information for representing the requested block, then the target interest packet is a third interest packet;

[0099] If the target interest packet contains information indicating the update status, then the target interest packet is the fourth interest packet;

[0100] If the target interest packet contains information indicating the generation of the new block, then the target interest packet is the fifth interest packet.

[0101] It is understood that embodiments of this application also provide a sixth interest package and a seventh interest package that are not part of the target interest package. The sixth interest package refers to an interest package containing information for indicating the termination of the connection; the seventh interest package refers to an interest package containing information for indicating the termination of the connection.

[0102] Specifically, the new data structure provided in this application for synchronization records the forwarding of interest, and adds the recording of block height status at different forwarding planes to adapt to blockchain network transmission. To obtain the block status of the blockchain synchronization network, this application also designs six naming methods, and there is also a separate naming design for block acquisition. A newly joined node first initiates network-wide synchronization, broadcasting its own information to other nodes, and then collects the status of other nodes in the network according to a specific method. After obtaining the status, it sends a block request to surrounding nodes. In the scenario of a new block being generated, the node generating the block informs surrounding nodes of the new block's generation through interest, and other nodes receiving the interest send requests for the block, thereby broadcasting the new block to the entire network.

[0103] In other words, see Figure 4When a node requests data, it selectively sends the request to nodes it is connected to, and sends interests in a targeted manner based on feedback from downstream nodes, thereby reducing redundant requests in the network. In other words, all nodes in the network are connected through interest announcements. When a node initiates a synchronization request, it pulls the synchronization state of the entire network and keeps all nodes in the latest state. This is equivalent to a synchronization node that receives an interest later establishing a subscription relationship with the node that forwards or sends that interest. Routing in this way also reduces redundant data transmission, because only nodes that receive synchronization interests return data, and intermediate routing nodes aggregate the data, thereby reducing redundant traffic in the network. In summary, by designing the naming method, applying a new data structure, and combining the characteristics of NDN, a redundancy-reducing NDN blockchain synchronization method has been implemented.

[0104] To enable inter-node state acquisition and data request functionality, a naming scheme was designed for interest packets and data. The name structure of an interest packet consists of four parts: application name, interest type, type information, and additional information. Additional information may include the node name, block hash value, or block height. The interest type distinguishes between announcement-type interests and regular data request interests.

[0105] There are five types of interest announcements: established connection (pull_status), refused connection (occupied), responding status (answer), updating status (update), and finished connection (finish). Therefore, an interest announcement needs to carry three pieces of information: the first is the type of interest announcement, indicating the role of the interest packet; the second is the identity information of the node sending the interest packet, used to distinguish interests sent by different nodes; and the third is for interests in the update and responding statuses, where the interest name must also include its highest block number.

[0106] In addition to the five types of interest announcements mentioned above, there is also a newblock type of interest announcement used to notify of the generation of a new block. In this interest announcement, the additional information field named after the interest carries the block number of the most recently generated block.

[0107] The information on the six types of interest announcements and their corresponding naming examples are shown in Table 1:

[0108] Table 1

[0109] Type information Naming Examples pull_status / ndnblockchain / main / pull_status / node1 occupied / ndnblockchain / main / occupied / node2 answer / ndnblockchain / main / answer / 3291 update / ndnblockchain / main / update / 3292 finish / ndnblockchain / main / finish / node1 newblock / ndnblockchain / main / newblock / 3295

[0110] In one or more embodiments of this application, a synchronization forwarding table is a data structure that each node maintains during synchronization. The structure of the synchronization forwarding table is defined as follows: each entry consists of the name of the node initiating synchronization, the incoming face ID (also called the incoming ID), and the outgoing face list (also called the outgoing list). In the outgoing face list, each entry records the outgoing face ID (i.e., FaceID) and the block height (simply referred to as height) of the corresponding node. A node's synchronization forwarding table may contain multiple entries simultaneously, for example... Figure 5 The synchronization information in the table ranges from 1 to n, where n is a positive integer greater than 2, and corresponds to the synchronization information of multiple nodes that are currently being synchronized.

[0111] Based on this, in order to further reduce the redundancy of transmitted data during the synchronization process of new nodes, a blockchain network data transmission method provided in this application embodiment is described below. Figure 6 Step 100 of the blockchain network data transmission method specifically includes the following:

[0112] Step 110: In the blockchain network, generate a first interest packet containing information indicating the establishment of the connection, with itself as the source node; or, receive a first interest packet containing information indicating the establishment of the connection broadcast by its upstream neighbor node in the blockchain network.

[0113] Step 120: Determine whether the first interest packet is being acquired for the first time. If so, add an entry for the source node corresponding to the first interest packet to the local synchronization forwarding table. The entry stores the correspondence between the node name of the source node corresponding to the first interest packet, which is generated in advance using the naming convention of the named data network, and the incoming node ID corresponding to the first interest packet. If the first interest packet is generated locally, the incoming node ID is the ID of the source node; if the first interest packet is received from its own upstream neighbor node, the incoming node ID is the ID of that upstream neighbor node.

[0114] Step 130: If it is confirmed that there are downstream neighbor nodes in the blockchain network, the IDs of each downstream neighbor node are used as outgoing node IDs and added to the table of the source node corresponding to the first interest packet.

[0115] Correspondingly, in a blockchain network data transmission method provided in the embodiments of this application, see... Figure 6 Step 300 of the blockchain network data transmission method specifically includes the following:

[0116] Step 310: If a second interest packet containing information indicating the response status is received from the downstream neighbor node, determine whether the block height indicated by the additional information in the second interest packet is higher than the current block height of the current node; if yes, proceed to step 320; otherwise, proceed to step 330.

[0117] Step 320: Identify downstream neighbor nodes whose block height is higher than their current block height as the current target node; update the known block height of the target node according to the block height indicated by the additional information in the second interest packet; and send a third interest packet containing information indicating the requested block to the target node to update the local block based on the data packet of the highest block returned by the target node; and broadcast a fourth interest packet containing information indicating the update status and the block height of the target node to other downstream neighbor nodes other than the target node, so that other downstream neighbor nodes update their known block height according to the block height of the target node and continue to broadcast the fourth interest packet containing information indicating the update status and the block height of the target node to their respective downstream neighbor nodes, thereby synchronizing the block height of all nodes in the blockchain network to the block height of the target node;

[0118] Step 330: If the block height indicated by the additional information in the second interest packet is lower than its own current block height, then the downstream neighbor node whose block height is lower than its own current block height is identified as the current target node. A fourth interest packet containing information indicating the update status and its own block height is sent to the target node, so that the target node updates its known block height according to the target node's block height and returns a third interest packet containing information indicating the requested block. The third interest packet returned by the target node is received, and the data packet of its current highest block is sent to the target node, so that the target node updates its local block according to the received highest block data packet and continues to send fourth interest packets containing information indicating the update status and the target node's block height to its downstream neighbor nodes, thereby synchronizing the block height of all nodes in the blockchain network to the block height of the target node.

[0119] In other words, if the block height indicated by the additional information in the second interest packet is the same as its current block height, no processing is performed.

[0120] To further reduce data redundancy during the synchronization process of new nodes, a blockchain network data transmission method is provided in this application embodiment, see [link to relevant documentation]. Figure 7The blockchain network data transmission method also specifically includes the following:

[0121] Step 410: In the blockchain network, generate a sixth interest packet containing information indicating the termination of the connection, with itself as the source node; or, receive a sixth interest packet containing information indicating the termination of the connection broadcast by its upstream neighbor node in the blockchain network.

[0122] Step 420: Determine whether the sixth interest packet is being obtained for the first time. If so, delete the entry of the source node corresponding to the sixth interest packet in the local synchronization forwarding table.

[0123] Step 430: If it is confirmed that there are downstream neighbor nodes in the blockchain network, then broadcast the sixth interest packet to all the downstream neighbor nodes so that the sixth interest packet is eventually broadcast to the entire blockchain network.

[0124] To further reduce data redundancy during new block synchronization, a blockchain network data transmission method is provided in this application embodiment, see [link to relevant documentation]. Figure 7 Step 100 in the blockchain network data transmission method further includes the following:

[0125] Step 140: In the blockchain network, generate a fifth interest packet containing information indicating the generation of the new block, with itself as the source node; or, receive a fifth interest packet containing information indicating the generation of the new block broadcast by its upstream neighbor node in the blockchain network.

[0126] Step 150: Determine whether the fifth interest packet is being obtained for the first time. If so, add an entry for the source node corresponding to the fifth interest packet to the local synchronization forwarding table. The entry for the source node corresponding to the fifth interest packet is used to store the correspondence between the node name of the source node generated in advance according to the naming method of the named data network and the incoming node ID corresponding to the fifth interest packet. If the fifth interest packet is generated locally, the incoming node ID is the ID of the source node; if the fifth interest packet is received from its own upstream neighbor node, the incoming node ID is the ID of the upstream neighbor node.

[0127] Step 160: If it is confirmed that there are downstream neighbor nodes in the blockchain network, the IDs of each downstream neighbor node are used as outgoing node IDs and added to the table of the source node corresponding to the fifth interest packet. Then, a data packet containing information representing the requested block is sent to the source node to obtain the corresponding new block.

[0128] Correspondingly, in a blockchain network data transmission method provided in the embodiments of this application, see... Figure 7 Step 300 of the blockchain network data transmission method specifically includes the following:

[0129] Step 340: If a third interest packet containing information representing the requested block is received from the downstream neighbor node, then a data packet of the new block pre-stored locally is sent to the downstream neighbor node.

[0130] To further reduce data redundancy during the synchronization process of new nodes, a blockchain network data transmission method is provided in this application embodiment, see [link to relevant documentation]. Figure 7 The blockchain network data transmission method further includes the following:

[0131] Step 500: Obtain the target interest packet in the blockchain network. If it is confirmed that it is not the first time it has obtained the target interest packet, send a seventh interest packet containing information indicating the refusal of connection to the upstream neighbor node that sent the target interest packet, so that the upstream neighbor node that receives the seventh interest packet will delete the ID of the node that sent the seventh interest packet from the entry in its synchronization forwarding table.

[0132] Based on this, to further illustrate the above embodiments, this application also provides specific application examples of the blockchain network data transmission method, which are described in detail through new node synchronization method, new block synchronization method and system status, as follows:

[0133] (I) New Node Synchronization Method

[0134] When a new node joins the network, it is out of sync with the blockchain network and therefore needs to initiate a network synchronization. The general process is as follows: A new node initiates network-wide synchronization by sending a connection establishment request (pull_status) carrying its local node name. To ensure it receives the true synchronized block height, the node needs to broadcast this interest. Nodes receiving this interest create an entry in their synchronization forwarding table and continue forwarding the interest to other nodes, treating the broadcasting nodes as downstream nodes, and waiting for the height from those downstream nodes. When a node in the synchronization state has no downstream node with an unknown height, it returns its own block height to the upstream node. Therefore, through this two-step process of establishing synchronization and returning the height, the node initiating synchronization can obtain the latest block status in the network and send a request for a block to a neighbor with the highest block in the network, based on the content of its synchronization forwarding table. During this process, other nodes in the network may also not be at the highest block height; in such cases, they will update their own status upon receiving an interest with the block height from an upstream or downstream node. The message types involved will be described in detail below:

[0135] (1) / pull_status / : When a node initiates synchronization, assuming node M wants to initiate synchronization, it sends a pull_status interest to all neighboring nodes, requesting to establish a synchronization connection with the neighboring nodes. It also creates an entry in its local synchronization forwarding table, identified by the local node, and records all FaceIDs sent by the pull_status interest in the sending list. When a neighboring node receives a pull_status request, it checks whether it has already received a synchronization interest request from the same node. If not, i.e., if it is the first time it has received this interest announcement, the neighboring node considers itself to be joining the network-wide synchronization process, takes the source of the interest as its upstream, creates a new synchronization forwarding relationship entry to maintain this synchronization relationship, and continues to broadcast the interest. It records the FaceIDs of the downstream neighboring nodes involved in its broadcast in the outgoing face list of the entry.

[0136] (2) / occupied / : If a node's synchronization forwarding table already contains an entry for node M, it means that the node is already in the current synchronization relationship. When it receives another request to establish a synchronization relationship with the node's identifier, it needs to send an interest broadcast of type 'occupied' to the incoming face of that interest to refuse to establish a synchronization connection. Similarly, the node that receives the interest of type 'occupied' will delete the incoming face of the interest from the corresponding entry list in its local synchronization forwarding table.

[0137] (3) / answer / {height} / : After a node has confirmed the status of all its neighboring nodes, a node without any downstream nodes or a node that knows the status of all downstream nodes will return its highest block status to its "upstream" node, carrying the name of the answer interest. Upon receiving the answer interest with block height indicating that its child nodes have completed synchronization of all its child nodes, the "upstream" node first determines the difference between this height and its own known height. If it is higher than its own status, it updates its own known highest height and requests the missing blocks from the downstream node. Simultaneously, it uses the update interest to notify its other downstream nodes to update their own highest block status. If it is lower than its own known highest block status, it sends an update interest with the highest block number to that downstream node to update its status.

[0138] (4) / update / {height} / : When a node receives an update interest, it indicates that its highest block status is lower than that of the upstream node. Therefore, it updates its highest known block number and sends a request block to the upstream node, as well as an update interest to other downstream nodes to update their highest known blocks.

[0139] (5) / finish_pull / : After all nodes except the node that initiated the synchronization request have reported their own status to the previous node, the node that initiated the synchronization request obtains the highest status of the entire network. Then, the node that initiated the synchronization sends a finish_pull interest to all exit faces in the synchronization forwarding table to indicate the end of the synchronization and deletes the entry. The node that receives the finish_pull interest also forwards the interest according to the exit face in its local table and deletes the entry corresponding to that node in its local relation table.

[0140] (II) New Block Synchronization Method

[0141] When a new block is generated, nodes need to publish it to the entire network. However, NDN itself does not support data broadcasting, so it is necessary to announce interests to notify other nodes of the new block's generation, allowing other nodes to verify the block and request data. In the synchronization method of this application, after a miner node mines a new block, it first broadcasts the news of the new block's generation to other neighboring nodes through the interest / ndnblockchain / main / newblock / {number}. Nodes that receive this interest continue to broadcast it, and then broadcast it to the entire network. Because it is not necessary to know the status of the node that sent the interest in the new block broadcasting scenario, it is only necessary to record the ID of the incoming face in the synchronization forwarding table and send the interest requesting the block to the incoming face (such as / ndnblockchain / request / request_block / {number}), thereby obtaining the latest block.

[0142] This method can reduce unnecessary interest broadcasts in the network and prevent multiple different nodes from generating response data for the interest, thus affecting the propagation of valid blocks. Figure 8 As a propagation example, the following is an example of a new block generating node generating a new block and broadcasting it:

[0143] Assuming node A is the new block generator, when node A generates a new block, it: 1. Notifies surrounding nodes of the new block's creation using the interest column ` / ndnblockchain / main / newblock / 3213`. Nodes B and C, as neighbors, are the first to receive node A's interest. Upon receiving it, 2. they forward the `newblock` interest to their neighbors D and E respectively, recording the incoming face ID of the interest from node A in their synchronization forwarding table. Guided by the synchronization forwarding table, 2. they send a `request_block` interest to node A. Nodes D and E, upon receiving the new block interest from nodes B and C, also update their own synchronization forwarding tables, and 3. send `request_block` interest requests to nodes B and C. Since node D is a neighbor of both B and C, it receives the new block interest twice. However, the second interest is merged in the NDN node, so ultimately, the node only sends a request for a block to node B. After receiving the newblock interest from node C, node E sends a request_block to node C to request a block.

[0144] When an interest is returned, node A processes the requests from nodes B and C normally and returns the corresponding data. When node D sends an interest to node C, since node C has already sent an interest requesting a block, the interest is aggregated. When node C receives the corresponding data, it stores it in its local CS table and forwards it to node D. When node E's interest reaches node C, because its local CS table already contains data that satisfies that interest, the data packet is returned directly from the CS table.

[0145] (III) System Status

[0146] During block synchronization, system M can be roughly defined as follows:

[0147] M = {Q, Σ, δ, Q0, ε}

[0148] Among them, see Figure 9 The state set Q is as follows:

[0149] Q =

[0150] {unsync,msgwaiting,requpdt,blockupdt,datawaiting,sync,reqblock,blockwaiting};

[0151] Among them, unsync can also be written as un-sync; msgwaiting can also be written as msg-waiting; requpdt can also be written as req-updt; blockupdt can also be written as block-updt; datawaiting can also be written as data-waiting; reqblock can also be written as req-block; blockwaiting can also be written as block-waiting. The specific meanings will be explained in detail later.

[0152] In the state set, un-sync represents the initial state Q_0. Since normally functioning nodes do not have a final state, this application uses an empty set of final states. When the system is in any of these states, a state transition occurs in the following manner upon receiving an input Σ = {E1, E2, ..., E11}. See Table 3 for an explanation of the input Σ.

[0153] Table 3

[0154] enter explain E1 Once the node has started, it receives the pull_status signal from itself. E2 Received pull_status interest E3 Receive interest carrying an answer or update type no higher than its highest known block. E4 Receive interest in answer or update type blocks higher than the highest known block. E5 Blocks that received the request E6 Block processing completed E7 Received interest of type finish_pull E8 Data processing completed E9 Received a new block message or generated a new block E10 Forwarding of new block notification message completed E11 Receive new block data and add it to the local blockchain E12 Rejoining the blockchain network

[0155] The correspondence between each state and the input is shown in Table 4.

[0156] Table 4

[0157]

[0158] During the block synchronization process, the nodes in the system can be roughly divided into seven states.

[0159] (1) un-sync: This indicates that newly added nodes or nodes that have rejoined the network after a long period of disconnection due to network reasons are in an un-sync state. After joining the network, these nodes will actively send an E1. pull_status type interest to initiate network-wide synchronization and enter the msg-waiting state.

[0160] (2) msg-waiting: This indicates that nodes in the mmsg-waiting state are in full network synchronization. These nodes will send interest requests of type answer or update based on the received upstream and downstream messages. When a node in the message synchronization state receives an interest request of type answer or update, it will compare the block number carried by this interest with the highest known block number locally. If the block number received in E3 is not higher than the local answer or update interest, the node will maintain the message synchronization state and continue to process requests in the network; if the block number received in E4 is higher than the local answer or update interest, the node will enter the req-updt state and send a request for a block interest. If a finish_pull interest is received in the message synchronization state in E7, it means that this round of synchronization has ended and the node will enter the sync state.

[0161] (3) req-updt: This means that a node in the req-updt state has known the difference between its local block and other synchronization nodes, and sends a request for a block according to the information in the synchronization information table. When E5 receives the requested block, it enters the block-updt state.

[0162] (4) block-updt: This indicates that a node in the block-updt state will wait to receive block data from other nodes, while continuing to process other synchronization requests in the network. If it receives an answer or update interest in this state, it will also determine the difference between the block height carried locally and in the interest. If it receives an answer or update interest with a height greater than the highest known height locally, it will return to the req-updt state to update its own request height. When node E6 receives all the requested block data, it will return to the msg-waiting state to continue participating in the network synchronization. Alternatively, if node E7 receives a finish type interest, it will enter the data-waiting state until it receives and processes the requested block.

[0163] (5) data-waiting: This indicates that the node knows the highest state in the entire network, and the node will continue to process the received blocks in this state. After E8 receives and processes all requested blocks, it enters the sync state.

[0164] (6) sync: This indicates that the synchronized state is the state of the vast majority of nodes in the network, and these nodes possess the highest-level synchronized block in the entire network. Synchronized nodes can enter the message synchronization state to participate in network-wide synchronization when they receive an interest of type pull_status at E2; synchronized nodes enter the req-block state when they generate a new block at E9 or receive an interest of a new block. Alternatively, if a node needs to rejoin the blockchain due to network or other reasons, it will enter the unsync state and re-initiate synchronization.

[0165] (7) req-block: Indicates that a new block has been generated. Nodes in this state update their own synchronization interest table, record the direction of interest received from the new block announcement, and continue to broadcast that interest. When E10. The synchronization interest table modification ends, the node enters the block-waiting state to prepare to request a new block.

[0166] (8) Block-waiting: This indicates that the node in this state will send a new block request to the incoming ID of the new block synchronization interest in the synchronization interest table and wait for the block to propagate. When node E11 receives the new block and adds it to the local blockchain, it returns to the sync state.

[0167] From a software perspective, this application also provides a blockchain network data transmission apparatus for performing all or part of the blockchain network data transmission method, see [link to relevant documentation]. Figure 10 The blockchain network data transmission device specifically includes the following components:

[0168] The synchronization forwarding table update module 10 is used to obtain target interest packets in the blockchain network. If it is confirmed that it has obtained the target interest packet for the first time, it updates the local synchronization forwarding table according to the incoming node ID corresponding to the target interest packet and the node name of the source node that initiated the target interest packet, which is generated in advance according to the naming method of the named data network.

[0169] The interest package broadcasting module 20, if it confirms that it currently has downstream neighbor nodes in the blockchain network, broadcasts the target interest package to all the downstream neighbor nodes so that the target interest package is eventually broadcast to the entire blockchain network;

[0170] The node and block synchronization module 30 is used to determine whether to update its own and each of the downstream neighbor nodes' block status, or to send a data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet, if it receives another interest packet returned by the downstream neighbor node.

[0171] The embodiments of the blockchain network data transmission device provided in this application can be used to execute the processing flow of the embodiments of the blockchain network data transmission method described above. Its functions will not be repeated here, but can be referred to the detailed description of the embodiments of the blockchain network data transmission method described above.

[0172] The portion of the blockchain network data transmission device that performs blockchain network data transmission can be completed within nodes such as servers or client devices. The specific choice depends on the processing power of the client device and the limitations of the user's usage scenario. This application does not impose any limitations in this regard. If all operations are completed within the client device, the client device may further include a processor for the specific processing of blockchain network data transmission.

[0173] The aforementioned client device may have a communication module (i.e., a communication unit) that can communicate with a remote server to achieve data transmission. The server may include a server on the task scheduling center side; in other implementation scenarios, it may also include a server on an intermediate platform, such as a server on a third-party server platform that has a communication link with the task scheduling center server. The server may include a single computer device, a server cluster consisting of multiple servers, or a distributed server structure.

[0174] The server and the client device can communicate using any suitable network protocol, including those not yet developed as of the date of this application. Such network protocols may include, for example, TCP / IP, UDP / IP, HTTP, HTTPS, etc. Furthermore, such network protocols may also include RPC (Remote Procedure Call Protocol) and REST (Representational State Transfer Protocol) protocols used on top of the aforementioned protocols.

[0175] As can be seen from the above description, the blockchain network data transmission device provided in this application embodiment can make full use of the naming method of named data network to reduce data redundancy in blockchain network data transmission, improve block data synchronization efficiency and enhance blockchain system performance.

[0176] This application embodiment also provides a blockchain network, wherein each node constituting the blockchain network is used to execute the blockchain network data transmission method.

[0177] This application also provides an electronic device, which may include a processor, a memory, a receiver, and a transmitter. The processor is used to execute the blockchain network data transmission method mentioned in the above embodiments. The processor and the memory can be connected via a bus or other means, taking a bus connection as an example. The receiver can be connected to the processor and the memory via wired or wireless means.

[0178] The processor can be a central processing unit (CPU). The processor can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or combinations of the above types of chips.

[0179] Memory, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs, non-transitory computer-executable programs, and modules, such as the program instructions / modules corresponding to the blockchain network data transmission method in the embodiments of this application. The processor executes various functional applications and data processing by running the non-transitory software programs, instructions, and modules stored in the memory, thereby implementing the blockchain network data transmission method in the above method embodiments.

[0180] The memory may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created by the processor, etc. Furthermore, the memory may include high-speed random access memory and non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, the memory may optionally include memory remotely located relative to the processor, which can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.

[0181] The one or more modules are stored in the memory, and when executed by the processor, they perform the blockchain network data transmission method in the embodiment.

[0182] In some embodiments of this application, the user equipment may include a processor, a memory, and a transceiver unit. The transceiver unit may include a receiver and a transmitter. The processor, memory, receiver, and transmitter may be connected via a bus system. The memory is used to store computer instructions, and the processor is used to execute the computer instructions stored in the memory to control the transceiver unit to send and receive signals.

[0183] As one implementation method, the functions of the receiver and transmitter in this application can be implemented by transceiver circuits or dedicated transceiver chips, and the processor can be implemented by dedicated processing chips, processing circuits or general-purpose chips.

[0184] As another implementation approach, the server provided in this application embodiment can be implemented using a general-purpose computer. That is, the program code implementing the processor, receiver, and transmitter functions is stored in memory, and the general-purpose processor implements the processor, receiver, and transmitter functions by executing the code in memory.

[0185] This application also provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the steps of the aforementioned blockchain network data transmission method. The computer-readable storage medium can be a tangible storage medium, such as random access memory (RAM), main memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, floppy disks, hard disks, removable storage disks, CD-ROMs, or any other form of storage medium known in the art.

[0186] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the aforementioned blockchain network data transmission method.

[0187] Those skilled in the art will understand that the exemplary components, systems, and methods described in conjunction with the embodiments disclosed herein can be implemented in hardware, software, or a combination of both. Whether implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application. When implemented in hardware, it can be, for example, electronic circuits, application-specific integrated circuits (ASICs), appropriate firmware, plug-ins, function cards, etc. When implemented in software, the elements of this application are programs or code segments used to perform the required tasks. The programs or code segments can be stored in a machine-readable medium or transmitted over a transmission medium or communication link via data signals carried on a carrier wave.

[0188] It should be clarified that this application is not limited to the specific configurations and processes described above and shown in the figures. For the sake of brevity, detailed descriptions of known methods are omitted here. In the above embodiments, several specific steps are described and shown as examples. However, the method process of this application is not limited to the specific steps described and shown. Those skilled in the art can make various changes, modifications, and additions, or change the order of steps, after understanding the spirit of this application.

[0189] In this application, features described and / or illustrated for one embodiment may be used in the same or similar manner in one or more other embodiments, and / or combined with or in place of features of other embodiments.

[0190] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to the embodiments of this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A blockchain network data transmission method, characterized in that, include: If a target interest package is obtained in the blockchain network, and it is confirmed that the target interest package is obtained for the first time, the local synchronization forwarding table is updated according to the incoming node ID corresponding to the target interest package and the node name of the source node that initiated the target interest package, which is generated in advance according to the naming method of the named data network. If it is confirmed that it currently has downstream neighbor nodes in the blockchain network, then the target interest packet is broadcast to all the downstream neighbor nodes so that the target interest packet is eventually broadcast to the entire blockchain network; If another interest packet is received from the downstream neighbor node, then based on the returned other interest packet, it is determined whether to update the block status of itself and each of the downstream neighbor nodes, or to send the data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet. The interest package contains the corresponding application name, interest type, interest information corresponding to the interest type, and additional information; The application name includes: Blockchain based on named data networks; The interest types include: data request interests and interest announcements; The interest information corresponding to the data request interest includes: information used to represent the requested block; The interest information corresponding to the interest announcement includes: information used to indicate connection establishment, connection rejection, response status, update status, connection termination, and the generation of a new block; The additional information includes at least one of the following: node name generated using the naming convention of the named data network, block hash value, and block status; the block status includes: block height.

2. The blockchain network data transmission method according to claim 1, Its features are, The target interest packet refers to the interest packet containing information indicating the establishment of a connection, the response status, the update status, the termination of a connection, the generation of a new block, or the request for a block. If the target interest packet contains information indicating the establishment of the connection, then the target interest packet is the first interest packet; If the target interest packet contains information indicating the response status, then the target interest packet is a second interest packet; If the target interest packet contains information for representing the requested block, then the target interest packet is a third interest packet; If the target interest packet contains information indicating the update status, then the target interest packet is the fourth interest packet; If the target interest packet contains information indicating the generation of the new block, then the target interest packet is the fifth interest packet.

3. The blockchain network data transmission method according to claim 2, characterized in that, The process of obtaining a target interest packet in the blockchain network, if confirming that it has obtained the target interest packet for the first time, involves updating the local synchronization forwarding table based on the incoming node ID corresponding to the target interest packet and the node name of the source node that initiated the target interest packet, which is pre-generated using the naming convention of the named data network. This includes: In a blockchain network, a first interest packet containing information indicating the establishment of a connection is generated by itself as the source node; or, a first interest packet containing information indicating the establishment of a connection is received by itself from its upstream neighbor nodes in the blockchain network. If the system determines whether it has obtained the first interest packet for the first time, it adds an entry for the source node corresponding to the first interest packet to the local synchronization forwarding table. The entry stores the correspondence between the node name of the source node corresponding to the first interest packet, which is generated in advance according to the naming method of the named data network, and the incoming node ID corresponding to the first interest packet. If the first interest packet is generated locally, the incoming node ID is the ID of the source node; if the first interest packet receives its own upstream neighbor node, the incoming node ID is the ID of the upstream neighbor node. If it is confirmed that there are downstream neighbor nodes in the blockchain network, the IDs of each downstream neighbor node are used as outgoing node IDs and added to the table entry of the source node corresponding to the first interest packet.

4. The blockchain network data transmission method according to claim 3, characterized in that, If another interest packet is received from the downstream neighbor node, then based on the returned other interest packet, it is determined whether to update the block status of itself and each of the downstream neighbor nodes, or to send a data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet, including: If a second interest packet containing information indicating the response status is received from the downstream neighbor node, determine whether the block height indicated by the additional information in the second interest packet is higher than its current block height; If so, the downstream neighbor node with a block height higher than its own current block height is identified as the current target node. The known block height of the node is updated according to the block height of the target node indicated by the additional information in the second interest packet. A third interest packet containing information representing the requested block is sent to the target node to update the local block based on the data packet of the highest block returned by the target node. A fourth interest packet containing information representing the update status and the block height of the target node is broadcast to other downstream neighbor nodes besides the target node. This causes other downstream neighbor nodes to update their own known block heights according to the target node's block height and continue broadcasting the fourth interest packet containing information representing the update status and the block height of the target node to their respective downstream neighbor nodes, thereby synchronizing the block height of all nodes in the blockchain network to the block height of the target node. If not, and the block height indicated by the additional information in the second interest packet is lower than its own current block height, then the downstream neighbor node whose block height is lower than its own current block height is identified as the current target node. A fourth interest packet containing information indicating the update status and its own block height is sent to the target node, so that the target node updates its known block height according to the target node's block height and returns a third interest packet containing information indicating the requested block. The third interest packet returned by the target node is received, and the data packet of its current highest block is sent to the target node, so that the target node updates its local block according to the received data packet of the highest block and continues to send a fourth interest packet containing information indicating the update status and the target node's block height to its downstream neighbor nodes, thereby synchronizing the block height of all nodes in the blockchain network to the block height of the target node.

5. The blockchain network data transmission method according to claim 2, characterized in that, Also includes: In a blockchain network, a sixth interest packet containing information indicating the termination of the connection is generated by itself as the source node, or a sixth interest packet containing information indicating the termination of the connection is broadcast by its upstream neighbor node in the blockchain network. Determine whether it is the first time it has obtained the sixth interest packet. If so, delete the entry of the source node corresponding to the sixth interest packet in the local synchronization forwarding table. If it is confirmed that it currently has downstream neighbor nodes in the blockchain network, then it broadcasts the sixth interest packet to all the downstream neighbor nodes so that the sixth interest packet is eventually broadcast to the entire blockchain network.

6. The blockchain network data transmission method according to claim 2, characterized in that, The process of obtaining a target interest packet in the blockchain network, if confirming that it is the first time obtaining the target interest packet, involves updating the local synchronization forwarding table based on the incoming node ID corresponding to the target interest packet and the node name of the source node that initiated the target interest packet, which is pre-generated using the naming convention of the named data network. This includes: In a blockchain network, a fifth interest packet containing information indicating the generation of the new block is generated by itself as the source node; or, in a blockchain network, a fifth interest packet containing information indicating the generation of the new block is broadcast by its upstream neighbor node. If the system determines whether it has obtained the fifth interest packet for the first time, it adds an entry for the source node corresponding to the fifth interest packet to the local synchronization forwarding table. The entry for the source node corresponding to the fifth interest packet is used to store the correspondence between the node name of the source node generated in advance according to the naming method of the named data network and the incoming node ID corresponding to the fifth interest packet. If the fifth interest packet is generated locally, the incoming node ID is the ID of the source node; if the fifth interest packet is received from its own upstream neighbor node, the incoming node ID is the ID of the upstream neighbor node. If it is confirmed that it currently has downstream neighbor nodes in the blockchain network, the IDs of each of the downstream neighbor nodes are used as outgoing node IDs and added to the table of the source node corresponding to the fifth interest packet. Then, a data packet containing information representing the requested block is sent to the source node to obtain the corresponding new block.

7. The blockchain network data transmission method according to claim 6, characterized in that, If another interest packet is received from the downstream neighbor node, then based on the returned other interest packet, it is determined whether to update the block status of itself and each of the downstream neighbor nodes, or to send a data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet, including: If a third interest packet containing information representing the requested block is received from the downstream neighbor node, then the data packet of the new block, pre-stored locally, is sent to the downstream neighbor node.

8. The blockchain network data transmission method according to any one of claims 2 to 7, characterized in that, Also includes: If a target interest packet is obtained in the blockchain network, and it is confirmed that it is not the first time it has obtained the target interest packet, a seventh interest packet containing information indicating the refusal to connect is sent to the upstream neighbor node that sent the target interest packet, so that the upstream neighbor node that receives the seventh interest packet will delete the ID of the node that sent the seventh interest packet from the entry in its synchronization forwarding table.

9. A blockchain network data transmission device, characterized in that, include: The synchronization forwarding table update module is used to obtain target interest packets in the blockchain network. If it confirms that it has obtained the target interest packet for the first time, it updates the local synchronization forwarding table according to the incoming node ID corresponding to the target interest packet and the node name of the source node that initiated the target interest packet, which is generated in advance according to the naming method of the named data network. The interest packet broadcasting module, if it confirms that it currently has downstream neighbor nodes in the blockchain network, broadcasts the target interest packet to all the downstream neighbor nodes so that the target interest packet is eventually broadcast to the entire blockchain network; The node and block synchronization module is used to determine whether to update the block status of itself and each of the downstream neighbor nodes, or to send a data packet corresponding to the new block to the downstream neighbor node that returned the other interest packet, if it receives another interest packet returned by the downstream neighbor node. The interest package contains the corresponding application name, interest type, interest information corresponding to the interest type, and additional information; The application name includes: Blockchain based on named data networks; The interest types include: data request interests and interest announcements; The interest information corresponding to the data request interest includes: information used to represent the requested block; The interest information corresponding to the interest announcement includes: information used to indicate connection establishment, connection rejection, response status, update status, connection termination, and the generation of a new block; The additional information includes at least one of the following: node name generated using the naming convention of the named data network, block hash value, and block status; the block status includes: block height.

10. A blockchain network, characterized in that, Each node constituting the blockchain network is used to execute the blockchain network data transmission method as described in any one of claims 1 to 8.

Citation Information

Patent Citations

  • Caching method and device for Internet of Things

    CN110012071A

  • KR20200065631A