CN114390063B - Message broadcasting method for blockchain network, blockchain node and blockchain system - Google Patents

Message broadcasting method for blockchain network, blockchain node and blockchain system Download PDF

Info

Publication number
CN114390063B
CN114390063B CN202210180901.8A CN202210180901A CN114390063B CN 114390063 B CN114390063 B CN 114390063B CN 202210180901 A CN202210180901 A CN 202210180901A CN 114390063 B CN114390063 B CN 114390063B
Authority
CN
China
Prior art keywords
message
blockchain node
blockchain
message data
application layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210180901.8A
Other languages
Chinese (zh)
Other versions
CN114390063A (en
Inventor
焦梦洪
曾超
孙赫
徐文博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202210180901.8A priority Critical patent/CN114390063B/en
Publication of CN114390063A publication Critical patent/CN114390063A/en
Priority to PCT/CN2022/135445 priority patent/WO2023160089A1/en
Application granted granted Critical
Publication of CN114390063B publication Critical patent/CN114390063B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

Embodiments of the present specification provide a message broadcasting method, a blockchain node, and a blockchain system for a blockchain network. The message broadcasting method comprises the following steps: the second blockchain node receives message data from the first blockchain node; copying and forwarding a message data to a third blockchain node each time the second blockchain node receives a message data; and generating the application layer message according to all the message data after the second block link point receives all the message data corresponding to the complete application layer message.

Description

Message broadcasting method for blockchain network, blockchain node and blockchain system
Technical Field
The embodiment of the specification belongs to the technical field of blockchains, and particularly relates to a message broadcasting method for a blockchain network, a blockchain node and a blockchain system.
Background
The underlying component of a blockchain system (e.g., a federated chain system) is typically a distributed point-to-point (P2P) network. The number of blockchain nodes accessed in different blockchain networks may vary from tens, hundreds, or even thousands. In a blockchain system, it is often desirable to have application layer messages propagated between blockchain nodes in the blockchain network (e.g., broadcast from one blockchain point to other blockchain nodes) while executing transactions, contracts, etc. Moreover, in a blockchain network, such broadcasting is very demanding and is very frequent, and thus there is a need for an improved mechanism for broadcasting messages in a blockchain network.
Disclosure of Invention
It is an object of one or more embodiments of the present specification to provide a message broadcasting method, a blockchain node, and a blockchain system for a blockchain network to improve the efficiency of message propagation.
According to a first aspect of one or more embodiments of the present specification, there is provided a message broadcasting method for a blockchain network including at least a first blockchain node, a second blockchain node, and a third blockchain node, the message broadcasting method comprising:
the second blockchain node receiving message data from the first blockchain node;
copying one message data and forwarding the one message data to the third blockchain node each time the second blockchain node receives the one message data; and
and after the second blockchain node receives all message data corresponding to the complete application layer message, generating the application layer message according to all message data.
According to a second aspect of one or more embodiments of the present specification, there is provided a blockchain node comprising:
a communication module configured to:
receiving message data from a first blockchain node different from the blockchain node; and
Copying one message data and forwarding the one message data to a third blockchain node different from the blockchain node and the first blockchain node each time the blockchain node receives the one message data; and
and the network module of the blockchain system is configured to generate the application layer message according to all message data after the blockchain node receives all message data corresponding to the complete application layer message.
According to a third aspect of one or more embodiments of the present specification, there is provided a blockchain system including blockchain nodes as described above.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings that are needed in the description of the embodiments will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments described in the present disclosure, and that other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a schematic diagram of a block chain network in one embodiment of the present disclosure;
FIG. 2 is a schematic diagram of a block chain network in another embodiment of the present disclosure;
FIG. 3 is a schematic diagram of a block chain network in yet another embodiment of the present disclosure;
FIG. 4 is a flow chart of a message broadcasting method for a blockchain network in an embodiment of the present disclosure;
fig. 5 is a flowchart of step S300 in a message broadcasting method for a blockchain network in a specific example of the present disclosure;
FIG. 6 is a flow chart of a message broadcasting method for a blockchain network in another embodiment of the present disclosure;
fig. 7 is a flowchart of step S700 in a message broadcasting method for a blockchain network in a specific example of the present disclosure.
Detailed Description
In order to make the technical solutions in the present specification better understood by those skilled in the art, the technical solutions in the embodiments of the present specification will be clearly and completely described below with reference to the drawings in the embodiments of the present specification, and it is obvious that the described embodiments are only some embodiments of the present specification, not all embodiments. All other embodiments, which can be made by one of ordinary skill in the art without undue burden from the present disclosure, are intended to be within the scope of the present disclosure.
The blockchain is a distributed network data storage technology constructed by utilizing an encryption algorithm and a point-to-point transmission technology, and has the characteristics of decentralization, tamper resistance, traceability and the like. In a blockchain, data may no longer be stored in a centralized hardware or administrative authority, but rather maintained together by blockchain nodes that are entitlement and obligation peers; data may be recorded on multiple nodes of a system of blockchain technical components enabling any node to view data stored in a local blockchain at any time; once the data is verified and added to the blockchain, the data can be permanently stored, and the data cannot be tampered by utilizing a consensus algorithm and a hash chain type data storage technology, so that the safety and the authenticity of the data are ensured. With point-to-point network technology, individual block link points can be grouped into a distributed network, where each node is equally located. Transaction data may be communicated over a network to various nodes, which may verify the validity of the transaction and join the corresponding block to its local block chain if the verification passes. The blockchain node can locally store a complete transaction ledger copy, namely a local blockchain, so that the transaction ledger copy of the node synchronously completes updating, thereby achieving decentralization consensus.
For blockchain networks that include, for example, 1000 or more blockchain nodes, the blockchain network may be organized using, for example, a tree topology due to the large number of nodes therein. In particular, the blockchain node that initiates the broadcast of the application layer message may transmit the application layer message to its next layer of neighboring nodes, while at least one of the nodes may continue to transmit the application layer message to its next layer of neighboring nodes, and so on, until the application layer message is broadcast to all or most of the blockchain nodes in the blockchain network. In some embodiments, to maintain stability and reliability of the tree topology, the number of neighbor nodes of its next level corresponding to each blockchain node may be equal, e.g., 2, 4, or 8, etc. The number of its next-tier neighbor nodes corresponding to each node in the tree topology may be determined based on parameters such as the total number of blockchain nodes in the blockchain network and the desired broadcast depth (the longest broadcast link or the largest number of broadcast hops that may pass in a broadcast). In such a blockchain network, when an application layer message is to be broadcast, it is possible for the application layer message to be transmitted in hops between blockchain nodes. Depending on the depth of the tree topology and the merits of the broadcast algorithm, there is often a high transmission delay when this application layer message is propagated to all (or most) of the blockchain nodes in the blockchain network, which can be simply expressed as: transmission delay = number of hops of a blockchain node × average transmission delay between each hop.
The transmission of the application layer message may be initiated by one of the plurality of blockchain nodes, which transmits the application layer message to the next blockchain node, and the next blockchain node may continue to transmit the application layer message to the next blockchain node, and so on, until the next blockchain node is a transmission break point or a transmission end point. In a specific example, as shown in FIG. 1, the first blockchain node 910 initiates the broadcast of an application layer message, where the first upper module 915 of the blockchain system may obtain corresponding data from, for example, a data layer module on the blockchain or other database under the blockchain, etc., and prepare the application layer message to be broadcast based on the data, including but not limited to, a blockmessage, a consensus message, etc. The first upper layer module 915 may then transmit the prepared application layer message to the first network module 914 of the blockchain system in the first blockchain node 910. The first network module 914 may communicate with the network layer of the first blockchain node 910 (including the first buffer 913 and the first network card 911 shown in fig. 1, etc.), package application layer messages to be transmitted into one or more message data (typically, each message data has a size smaller than the size of the application layer message for convenient transmission) under the influence of the network layer of the first blockchain node 910 and the first kernel 912 (which is the operating system core of the first blockchain node 910), and transmit the application layer messages serially to the second network card 921 in the second blockchain node 920 over the network via the first network card 911. In the second blockchain node 920, one or more message data received by the second network card 921 is uploaded into the second buffer 923 under the action of the second kernel 922. The second network module 924 of the blockchain network in the second blockchain node 920 may receive the message data from the second buffer 923 and combine the message data into a complete application layer message after receiving all of the message data corresponding to at least one application layer message. The second network module 924 may then upload the application layer message to a second upper module 925 of the blockchain system, and the second upper module 925 may perform authentication, encryption, decryption, etc. on the application layer message. When the application layer message is validated by the second upper layer module 925, it indicates that the application layer message is legitimate, which can be continued to be transmitted to the third blockchain node 930. Similar to the process in the first blockchain node 910, the verified application layer message may be serially transmitted by the second network card 921 to the third network card 931 in the third blockchain node 930 through network transmission through the corresponding processes of the second network module 924, the second buffer 923, the second kernel 922, and the second network card 921 in sequence. In the third blockchain node 930, one or more pieces of message data may be obtained in a similar manner in the second blockchain node 920, the message data combined to generate a complete application layer message, and the combined application layer message may be authenticated, encrypted, decrypted, etc. by a third upper module 935 of the blockchain system in the third blockchain node 930. When the third blockchain node 930 is a transmission interruption point or a transmission end point, the application layer message may not be transmitted to the next blockchain node; and when the third blockchain node 930 is not a transmission break point or transmission end point, the application layer message may continue to be transmitted to the next blockchain point in a similar manner.
Based on the above, in a blockchain network, the transmission delay between each hop can be expressed as follows: transmission delay between each hop = transmit node blockchain system processing delay + transmit node buffer delay + transmit node to receive node transmission delay + receive node buffer delay + receive node blockchain system processing delay. The processing delay of the block chain system of the sending node specifically comprises the delay of a network layer in a block chain node sending the application layer message for obtaining message data from the block chain system, including the time required by an upper module of the block chain system for preparing the application layer message and the time required by the network module for correspondingly processing the application layer message and transmitting the application layer message to the network layer; the sending node buffer delay includes a time when one or more message data associated with the application layer message transit in the buffer, especially when there are already multiple message data associated with multiple application layer messages in the buffer, it is generally required to wait for one or more message data corresponding to a previous application layer message to be sent in series, before the sending of one or more message data corresponding to a current application layer message is completed, which may result in a longer sending node buffer delay; the transmission delay from the transmitting node to the receiving node refers to the time required for transmitting message data from the network card of the blockchain node transmitting the application layer message to the network card of the blockchain node receiving the application layer message via the network; the buffer time delay of the receiving node refers to the time required for transferring the message data in the buffer of the blockchain node receiving the application layer message; and the receiving node blockchain system processing delay refers to the time required for processing, such as combining one or more pieces of message data from the buffer to generate a complete application layer message and validating the application layer message, in the blockchain node receiving the application layer message.
It can be seen that in the case of broadcasting application layer messages in a blockchain network, the transmission delay is likely to be significantly amplified due to the existence of multiple hops, which ultimately results in lower efficiency of message broadcasting in the blockchain network, and thus may adversely affect upper layer traffic in the blockchain system.
To solve the above problems, one or more embodiments of the present disclosure propose a message broadcasting method for a blockchain network, in which a transparent routing design scheme is adopted to optimize the broadcasting process of application layer messages, thereby reducing transmission delay in the blockchain network. As shown in fig. 1, the blockchain network may include at least a first blockchain node 910, a second blockchain node 920, and a third blockchain node 930. In some embodiments, the blockchain network may have a tree topology, wherein the second blockchain node 920 may be a neighbor node of the first blockchain node 910 and the third blockchain node 930 may be a neighbor node of the second blockchain node 920. As shown in fig. 4, the message broadcasting method may include:
in step S100, the second blockchain node 920 receives message data from the first blockchain node 910.
Wherein the message data may be generated by the first blockchain node 910 from an application layer message to be transmitted. Typically, the size of a complete application layer message may be 1-2 MB or more, while the size of each message data generated from the application layer message may be, for example, 64kB for ease of transmission. In each blockchain node, the message data may exist in the form of message stream data, message frame data, or message packet data, etc. In some embodiments, as shown in fig. 2 and 3, the first blockchain node 910 may transfer the message data to the second network card 921 in the second blockchain node 920 through a wired or wireless network transmission or the like using the first network card 911 therein.
Further, as shown in fig. 4, the message broadcasting method may further include:
in step S300, each time a message data is received by the second blockchain node 920, a message data is copied and forwarded to the third blockchain node 930.
Specifically, the second blockchain node 920 may immediately replicate and forward a piece of message data to the next blockchain node, namely the third blockchain node 930, upon receipt of the message data, without waiting to receive all of the message data corresponding to the complete application layer message, as described above with respect to fig. 1, and upon generation and successful verification of the application layer message from the message data, forward to the third blockchain node 930. This is because in blockchain networks, particularly in blockchain systems in certain specific scenarios, such as private chain, alliance chain systems, each blocklink point typically has a strong trust basis, i.e., the blocklink point is typically trusted without disfiguring or tampering with the data. Accordingly, in the broadcasting process of the application layer message, the verification of the application layer message by each block link point can be successfully passed basically, so that in the block chain node, the copying and forwarding of the message data can be immediately performed after each message data is received, one part of the message data can continue to flow in the block link point to participate in generating the application layer message in the subsequent steps, further the operations of verification of the application layer message and the like are realized, and the other part of the message data can be simultaneously or parallelly forwarded to the next block chain node, so that the average transmission delay between each hop is reduced, and the transmission efficiency of the message broadcasting is improved. Of course, it will be appreciated that even if a blockchain link point is bad, other methods and means may be employed in the blockchain system to locate and penalize the bad node.
In one or more embodiments of the present description, the copying and forwarding of a message data may be performed upon receipt of the message data in a variety of ways. In an exemplary embodiment, step S300 may include:
whenever the second network card 921 of the second blockchain node 920 receives a message data from the first network card 911 of the first blockchain node 910, the second blockchain node 920 copies a message data and transmits the message data to the third network card 931 of the third blockchain node 930.
As shown in fig. 2, the processing involved in the dashed box may be performed simultaneously or in parallel with the forwarding of the message data from the second network card 921 to the third network card 931. That is, forwarding of message data (e.g., in the form of ethernet frames) may be sunk to the level of the network card in a kernel bypass manner without passing through the kernel, buffers, etc. in the blockchain node, reducing the average transmission delay between each hop through such transparent forwarding. In some embodiments, replication and forwarding of message data may also be implemented using, for example, switches, bridges, etc.
In another exemplary embodiment, as shown in fig. 5, step S300 may include:
Step S331, whenever the second network card 921 of the second blockchain node 920 receives a message data from the first network card 911 of the first blockchain node 910, the second kernel 922 of the second blockchain node 920 receives a message data from the second network card 921;
step S333, the second kernel 922 converts a message data into a message data packet, and stores the message data packet in the second buffer 923 of the second blockchain node 920; and
in step S335, the second blockchain node 920 copies a message packet in the second buffer 923 and sends a message packet to the third blockchain node 930.
As shown in fig. 3, the processing involved in the dashed box may occur simultaneously or in parallel with the transmission of the message data into the third blockchain node 930 through the relevant processing of the second network card 921, the second kernel 922, and the second buffer 923. That is, in the present embodiment, message data (e.g., in the form of a TCP stream) may be replicated and forwarded at the buffer level without waiting for the results of the higher layer processing of the message data by the second network module 924 and the second upper layer module 925 of the blockchain system to reduce the average transmission delay between each hop. Message data transmitted to the third blockchain node 930 through the second network card 921 of the second blockchain node 920 may be received by the third network card 931 in the third blockchain node 930, and processing by the third kernel 932 in the third blockchain node 930 is stored in the third buffer 933 of the third blockchain node 930 to be further processed.
It will be appreciated that in other embodiments, message data may also be replicated and forwarded at other levels, e.g., the data link layer, the network layer, etc., without waiting for the processing results of the corresponding modules of the blockchain system in the blockchain node to be of a higher layer of message data to reduce the average transmission delay between each hop.
In some embodiments, the second blockchain node 920 may communicate with the first and third blockchain nodes 910 and 930 based on transmission control protocol/internet protocol, TCP/IP. Accordingly, the first buffer 913, the second buffer 923, and the third buffer 933 may be socket buffers, and the message data may be a socket byte stream.
Further, as shown in fig. 4, the message broadcasting method may further include:
in step S500, after the second blockchain node 920 receives all the message data corresponding to the complete application layer message, the application layer message is generated according to all the message data.
Wherein the application layer message may include at least one of a block message and a consensus message, the block message may characterize a block to be added to the blockchain, the block may be a set describing a series of transaction information, and the consensus message may characterize consensus information of the blockchain node. In the second blockchain node 920, all message data corresponding to the complete application layer message may be received by the second network module 924 of the blockchain system and the application layer message generated from the message data.
From the above description, it is apparent that at least one of replication and forwarding of message data may be performed in parallel with generation of application layer messages in a blockchain node. That is, in the broadcasting process of the application layer message, in each blockchain node, the message data can be forwarded without waiting for the completion of the generation of the application layer message, but the message data can be duplicated, one of the two duplicated message data is used for continuing the further processing of the message data in the blockchain node, and the other message data is forwarded to the next blockchain node simultaneously or in parallel, so as to reduce the broadcasting transmission delay of the message data.
In one or more embodiments of the present disclosure, as shown in fig. 6, the message broadcasting method may further include:
in step S700, the second blockchain node 920 performs a preset process on the application layer message.
The preset processing of the application layer message may include verification, encryption and/or decryption of the application layer message, and the like. Verifying the application layer message may help determine whether the application layer message has been tampered with maliciously, etc., to ensure that the data and operations corresponding to the application layer message are reliable. The security of the application layer message can be better ensured by encrypting the application layer message. And, a blockchain node in the same blockchain network may decrypt the application layer messages it receives based on a predetermined manner to obtain the required information therefrom. It will be appreciated that other preset processing of the application layer messages may also be performed based on the blockchain system (e.g., according to a smart contract in the blockchain system, etc.), without limitation.
Specifically, step S700 may include:
step S711, the second upper layer module 925 of the blockchain system of the second blockchain node 920 obtains the application layer message from the second network module 924 of the blockchain system of the second blockchain node 920; and
in step S713, the second upper module 925 performs a preset process on the application layer message.
Wherein upper modules of the blockchain system may include, for example, at least one of a consensus layer module, an application layer module, an incentive layer module, and a contract layer module. The consensus layer module can comprise a consensus algorithm and a consensus mechanism, and is responsible for effective identification and authentication of the point-to-point mode, so that highly dispersed blockchain nodes efficiently achieve consensus on the validity of the blockdata in the decentralised blockchain network. The application layer module can realize various application scenes, and can contain various application scenes and cases. The incentive layer module can comprise an issuing system, an allocation system and the like of economic incentives to provide certain incentive measures to encourage the nodes to participate in the security verification work of the blockchain. The contract layer module may include various scripts, code, algorithmic mechanisms, and smart contracts, which are the basis for blockchain programmability.
It will be appreciated that at least one of copying and forwarding of message data may also be performed in parallel with the pre-set processing of the application layer message. That is, in the process of broadcasting the application layer message, in each blockchain node, forwarding of message data can be directly performed without waiting for the result of the preset processing of the application layer message. One of the two message data obtained by copying is used for continuing to process the message data and the application layer message in the block chain node, and the other message data is simultaneously or parallelly forwarded to the next block chain node, so that the broadcast transmission delay of the message data is reduced.
In one or more embodiments of the present disclosure, transparent routing techniques are used to parallelize the processes of receiving and verifying the complete application layer message with the process of transmitting the message data for forming the application layer message, whenever a block link node receives a message data from its previous block chain node, the current block chain node can immediately copy the message data and forward the message data to its next block chain node or nodes, without waiting for the current block chain node to receive the complete block chain application layer message, and while forwarding the message data to the next block chain node or nodes, the current block chain node can wait in parallel for receiving other message data associated with the complete application layer message, assemble and combine the message data to generate a final complete application layer message, and pass the application layer message to an upper layer module in the block chain system for further processing, thereby eliminating the time spent waiting for receiving all message data corresponding to the complete application layer message in each of the broadcast layer message, forming a combined layer, using the application layer, and forming a layer, reducing the number of time delay and forwarding the application layer, reducing the number of time delay and the transmission layer to be used by the nodes, reducing the number of time delay and the number of forwarding the application layer, and reducing the time delay of the transmission layer and the like. Especially when the blockchain network contains more blockchain nodes and the broadcasting depth is deeper, the transmission mode can obviously reduce the overall transmission delay, for example, the transmission delay can be reduced by more than 30 percent.
In addition, one or more embodiments of the present specification also propose a blockchain node that may be, for example, the first blockchain node 910, the second blockchain node 920, or the third blockchain node 930 shown in fig. 1-3. Taking the second blockchain node 920 as an example, it may include a communication module and a network module of the blockchain system (second network module 924). Wherein the communication module may be configured to: receiving message data from a first blockchain node different from the blockchain node; and each time a block link point receives a message data, copying the message data and forwarding the message data to a third block chain node different from the block chain node and the first block chain node. The network module may be configured to generate an application layer message from all message data after receiving all message data corresponding to a complete application layer message at a block link point.
In some embodiments, the communication module may include a network card (e.g., second network card 921) and a buffer (e.g., second buffer 923). The network card may be configured to receive message data from a first blockchain node different from the blockchain node, and the network card may be further configured to send one message data to a third blockchain node different from the blockchain node and the first blockchain node. Further, the buffer may be configured to store message data packets resulting from the message data conversion, the message data packets in the buffer configured to be sent to a third blockchain node different from the blockchain node and the first blockchain node.
In some embodiments, the blockchain node may also include an upper module of the blockchain system (e.g., the second upper module 925) that may be configured to obtain the application layer message from the network module and perform a preset process on the application layer message. Specifically, the upper layer module may include at least one of a consensus layer module, an application layer module, an incentive layer module, and a contract layer module.
As described above, at least one of copying and forwarding of message data and at least one of generation and preset processing of an application layer message may be performed in parallel. Wherein the preset process may include at least one of authentication, encryption, and decryption.
Further, one or more embodiments of the present specification also provide a blockchain system that may include the blockchain nodes as described above. Wherein the blockchain network of the blockchain system may have a tree topology.
In the 90 s of the 20 th century, improvements to one technology could clearly be distinguished as improvements in hardware (e.g., improvements to circuit structures such as diodes, transistors, switches, etc.) or software (improvements to the process flow). However, with the development of technology, many improvements of the current method flows can be regarded as direct improvements of hardware circuit structures. Designers almost always obtain corresponding hardware circuit structures by programming improved method flows into hardware circuits. Therefore, an improvement of a method flow cannot be said to be realized by a hardware entity module. For example, a programmable logic device (Programmable Logic Device, PLD) (e.g., field programmable gate array (Field Programmable Gate Array, FPGA)) is an integrated circuit whose logic function is determined by the user programming the device. A designer programs to "integrate" a digital system onto a PLD without requiring the chip manufacturer to design and fabricate application-specific integrated circuit chips. Moreover, nowadays, instead of manually manufacturing integrated circuit chips, such programming is mostly implemented by using "logic compiler" software, which is similar to the software compiler used in program development and writing, and the original code before the compiling is also written in a specific programming language, which is called hardware description language (Hardware Description Language, HDL), but not just one of the hdds, but a plurality of kinds, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), lava, lola, myHDL, PALASM, RHDL (Ruby Hardware Description Language), etc., VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog are currently most commonly used. It will also be apparent to those skilled in the art that a hardware circuit implementing the logic method flow can be readily obtained by merely slightly programming the method flow into an integrated circuit using several of the hardware description languages described above.
The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, application specific integrated circuits (Application Specific Integrated Circuit, ASIC), programmable logic controllers, and embedded microcontrollers, examples of which include, but are not limited to, the following microcontrollers: ARC 625D, atmel AT91SAM, microchip PIC18F26K20, and Silicone Labs C8051F320, the memory controller may also be implemented as part of the control logic of the memory. Those skilled in the art will also appreciate that, in addition to implementing the controller in a pure computer readable program code, it is well possible to implement the same functionality by logically programming the method steps such that the controller is in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers, etc. Such a controller may thus be regarded as a kind of hardware component, and means for performing various functions included therein may also be regarded as structures within the hardware component. Or even means for achieving the various functions may be regarded as either software modules implementing the methods or structures within hardware components.
The system, apparatus, module or unit set forth in the above embodiments may be implemented in particular by a computer chip or entity, or by a product having a certain function. One typical implementation device is a server system. Of course, the application does not exclude that as future computer technology advances, the computer implementing the functions of the above-described embodiments may be, for example, a personal computer, a laptop computer, a car-mounted human-computer interaction device, a cellular telephone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
Although one or more embodiments of the present description provide method operational steps as described in the embodiments or flowcharts, more or fewer operational steps may be included based on conventional or non-inventive means. The order of steps recited in the embodiments is merely one way of performing the order of steps and does not represent a unique order of execution. When implemented in an actual device or end product, the instructions may be executed sequentially or in parallel (e.g., in a parallel processor or multi-threaded processing environment, or even in a distributed data processing environment) as illustrated by the embodiments or by the figures. The terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, it is not excluded that additional identical or equivalent elements may be present in a process, method, article, or apparatus that comprises a described element. For example, if first, second, etc. words are used to indicate a name, but not any particular order.
For convenience of description, the above devices are described as being functionally divided into various modules, respectively. Of course, when one or more of the present description is implemented, the functions of each module may be implemented in the same piece or pieces of software and/or hardware, or a module that implements the same function may be implemented by a plurality of sub-modules or a combination of sub-units, or the like. The above-described apparatus embodiments are merely illustrative, for example, the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, for example, multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other forms.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In one typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
Computer readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, read only compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage, graphene storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
One skilled in the relevant art will recognize that one or more embodiments of the present description may be provided as a method, system, or computer program product. Accordingly, one or more embodiments of the present description may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Moreover, one or more embodiments of the present description can take the form of a computer program product on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
One or more embodiments of the present specification may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. One or more embodiments of the present specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In this specification, each embodiment is described in a progressive manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment mainly describes differences from other embodiments. In particular, for system embodiments, since they are substantially similar to method embodiments, the description is relatively simple, as relevant to see a section of the description of method embodiments. In the description of the present specification, a description referring to terms "one embodiment," "some embodiments," "examples," "specific examples," or "some examples," etc., means that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the present specification. In this specification, schematic representations of the above terms are not necessarily directed to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples. Furthermore, the different embodiments or examples described in this specification and the features of the different embodiments or examples may be combined and combined by those skilled in the art without contradiction.
The foregoing is merely an example of one or more embodiments of the present specification and is not intended to limit the one or more embodiments of the present specification. Various modifications and alterations to one or more embodiments of this description will be apparent to those skilled in the art. Any modification, equivalent replacement, improvement, or the like, which is within the spirit and principles of the present specification, should be included in the scope of the claims.

Claims (21)

1. A message broadcasting method for a blockchain network, the blockchain network including at least a first blockchain node, a second blockchain node, and a third blockchain node, the message broadcasting method comprising:
the second blockchain node receiving message data from the first blockchain node;
copying one message data and forwarding the one message data to the third blockchain node each time the second blockchain node receives the one message data; and
after the second blockchain node receives all message data corresponding to the complete application layer message, generating the application layer message according to all message data;
wherein at least one of copying and forwarding of message data is performed in parallel with generation of the application layer message.
2. The message broadcasting method of claim 1, wherein the application layer message comprises at least one of a block message and a consensus message.
3. The message broadcasting method of claim 1, wherein copying and forwarding one message data to the third blockchain node each time the second blockchain node receives the one message data comprises:
each time the second network card of the second blockchain node receives one message data from the first network card of the first blockchain node, the second blockchain node copies the one message data and sends the one message data to a third network card of the third blockchain node.
4. The message broadcasting method of claim 1, wherein copying and forwarding one message data to the third blockchain node each time the second blockchain node receives the one message data comprises:
each time a second network card of the second blockchain node receives one message data from a first network card of the first blockchain node, a second kernel of the second blockchain node receives the one message data from the second network card;
The second kernel converts the one message data into one message data packet and stores the one message data packet into a second buffer of the second blockchain node; and
the second blockchain node replicates the one message data packet in the second buffer and sends the one message data packet to the third blockchain node.
5. The message broadcasting method of claim 1, wherein the second blockchain node communicates with the first and third blockchain nodes based on transmission control protocol/internet protocol TCP/IP.
6. The message broadcasting method of claim 1, wherein generating the application layer message from all message data corresponding to a complete application layer message after the second blockchain node receives the all message data comprises:
and after the second network module of the blockchain system of the second blockchain node receives all message data corresponding to the complete application layer message, generating the application layer message according to all message data.
7. The message broadcasting method of claim 1, further comprising:
And the second blockchain node performs preset processing on the application layer message.
8. The message broadcasting method of claim 7, wherein at least one of copying and forwarding of message data is performed in parallel with a preset process of the application layer message.
9. The message broadcasting method of claim 7, wherein the preset process includes at least one of authentication, encryption, and decryption.
10. The message broadcasting method of claim 7, wherein the second blockchain node performing a preset process on the application layer message comprises:
a second upper layer module of the blockchain system of the second blockchain node obtains the application layer message from a second network module of the blockchain system of the second blockchain node;
and the second upper layer module performs preset processing on the application layer message.
11. The message broadcasting method of claim 10, wherein the second upper layer module comprises at least one of a consensus layer module, an application layer module, an incentive layer module, and a contract layer module.
12. The message broadcasting method of claim 1, wherein the blockchain network has a tree topology, the second blockchain node is a neighbor node of the first blockchain node, and the third blockchain node is a neighbor node of the second blockchain node.
13. A blockchain node comprising:
a communication module configured to:
receiving message data from a first blockchain node different from the blockchain node; and
copying one message data and forwarding the one message data to a third blockchain node different from the blockchain node and the first blockchain node each time the blockchain node receives the one message data; and a network module of a blockchain system, the network module configured to generate the application layer message according to all message data corresponding to a complete application layer message after the blockchain node receives the all message data;
wherein at least one of copying and forwarding of message data is performed in parallel with generation of the application layer message.
14. The blockchain node of claim 13, wherein the communication module includes:
a network card configured to receive message data from a first blockchain node different from the blockchain node; and
a buffer configured to store message data packets resulting from the message data conversion.
15. The blockchain node of claim 14, wherein the network card is further configured to send the one message data to a third blockchain node different from the blockchain node and the first blockchain node.
16. The blockchain node of claim 14, wherein the message data packet in the buffer is configured to be sent to a third blockchain node different from the blockchain node and the first blockchain node.
17. The blockchain node of claim 13, further comprising:
and the upper layer module of the block chain system is configured to acquire the application layer message from the network module and perform preset processing on the application layer message.
18. The blockchain node of claim 17, wherein the preset process includes at least one of authentication, encryption, and decryption.
19. The blockchain node of claim 17, wherein the upper module includes at least one of a consensus layer module, an application layer module, an incentive layer module, and a contract layer module.
20. A blockchain system including a blockchain node according to any of claims 13 to 19.
21. The blockchain system of claim 20, wherein the blockchain network of the blockchain system has a tree topology.
CN202210180901.8A 2022-02-25 2022-02-25 Message broadcasting method for blockchain network, blockchain node and blockchain system Active CN114390063B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210180901.8A CN114390063B (en) 2022-02-25 2022-02-25 Message broadcasting method for blockchain network, blockchain node and blockchain system
PCT/CN2022/135445 WO2023160089A1 (en) 2022-02-25 2022-11-30 Message broadcasting method for blockchain network, and blockchain node and blockchain system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210180901.8A CN114390063B (en) 2022-02-25 2022-02-25 Message broadcasting method for blockchain network, blockchain node and blockchain system

Publications (2)

Publication Number Publication Date
CN114390063A CN114390063A (en) 2022-04-22
CN114390063B true CN114390063B (en) 2023-09-29

Family

ID=81204826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210180901.8A Active CN114390063B (en) 2022-02-25 2022-02-25 Message broadcasting method for blockchain network, blockchain node and blockchain system

Country Status (2)

Country Link
CN (1) CN114390063B (en)
WO (1) WO2023160089A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114390063B (en) * 2022-02-25 2023-09-29 蚂蚁区块链科技(上海)有限公司 Message broadcasting method for blockchain network, blockchain node and blockchain system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109784857A (en) * 2019-01-16 2019-05-21 杭州基尔区块链科技有限公司 Data processing method, device and system based on block chain
CN110741372A (en) * 2017-06-07 2020-01-31 区块链控股有限公司 Computer-implemented system and method for managing transactions on a blockchain network
CN110945548A (en) * 2017-07-24 2020-03-31 区块链控股有限公司 Computer-implemented system and method for managing large distributed storage pools in a blockchain network

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3905636A1 (en) * 2018-12-28 2021-11-03 Hefei Dappworks Technology Co., Ltd. Data processing method and apparatus for blockchain, and blockchain system
US10951697B2 (en) * 2019-06-07 2021-03-16 Holo Limited Holochain—A framework for distributed applications
CN110493020A (en) * 2019-07-05 2019-11-22 深圳壹账通智能科技有限公司 Broadcast message transmission method, device and system based on block chain technology
CN112565389B (en) * 2020-11-30 2021-09-24 网易(杭州)网络有限公司 Block chain based message broadcasting method and device, electronic equipment and storage medium
CN114390063B (en) * 2022-02-25 2023-09-29 蚂蚁区块链科技(上海)有限公司 Message broadcasting method for blockchain network, blockchain node and blockchain system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110741372A (en) * 2017-06-07 2020-01-31 区块链控股有限公司 Computer-implemented system and method for managing transactions on a blockchain network
CN110945548A (en) * 2017-07-24 2020-03-31 区块链控股有限公司 Computer-implemented system and method for managing large distributed storage pools in a blockchain network
CN109784857A (en) * 2019-01-16 2019-05-21 杭州基尔区块链科技有限公司 Data processing method, device and system based on block chain

Also Published As

Publication number Publication date
WO2023160089A1 (en) 2023-08-31
CN114390063A (en) 2022-04-22

Similar Documents

Publication Publication Date Title
US11616636B2 (en) Hash updating methods and apparatuses of blockchain integrated station
US11171774B2 (en) System for synchronizing a cryptographic key state through a blockchain
CN111133733B (en) Method and system for automatic blockchain deployment based on cloud platform
EP3673432B1 (en) Implementing a blockchain-based workflow
CN112862490B (en) Output consensus method under asynchronous network
CN108256354B (en) Test data-based storage method and storage medium
CN114584312B (en) Consensus method, block chain system and consensus node
CN114390063B (en) Message broadcasting method for blockchain network, blockchain node and blockchain system
CN111767144A (en) Transaction routing determination method, device, equipment and system for transaction data
CN111669434B (en) Method, system, device and equipment for establishing communication group
CN112235193A (en) Data transmission method, device, equipment and medium based on cross-network multi-level routing
CN114785804B (en) System and method for cross-blockchain interactions
CN114726517A (en) Method, system and consensus node for generating random number seeds on block chain
CN115134075A (en) Cross-subnet calling method and device, electronic equipment and storage medium
CN113935737A (en) Random number generation method and device based on block chain
CN114281893A (en) Processing method, device and equipment for block chain transaction
CN114844904B (en) System and method for cross-blockchain interactions
CN115766038A (en) Transaction sending method in block chain and block chain link point
CN110995447B (en) Data storage method, device, equipment and medium
WO2021089983A1 (en) Validating distributed source content
CN115174572B (en) Data multicasting method in blockchain, blockchain node and storage medium
CN114844905B (en) System and method for cross-blockchain interactions
CN115174573B (en) Data broadcasting method in block chain system, node and block chain system
CN115037548B (en) System, method, device, medium and equipment for secure multiparty computation of data based on blockchain
JP7418592B2 (en) In-vehicle device upgrade method and apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant