The present application is a divisional application of chinese patent application CN202010534549.4 entitled "communication method in block chain network, service data transmission method" filed on 12.6.2020.
Detailed Description
In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings used in the description of the embodiments will be briefly described below. It is obvious that the drawings in the following description are only examples or embodiments of the present description, and that for a person skilled in the art, without inventive effort, the present description can also be applied to other similar contexts on the basis of these drawings. Unless otherwise apparent from the context, or otherwise indicated, like reference numbers in the figures refer to the same structure or operation.
It should be understood that "system", "device", "unit" and/or "module" as used herein is a method for distinguishing different components, elements, parts, portions or assemblies of different levels. However, other words may be substituted by other expressions if they accomplish the same purpose.
As used in this specification, the terms "a", "an" and/or "the" are not intended to be inclusive of the singular, but rather are intended to be inclusive of the plural, unless the context clearly dictates otherwise. In general, the terms "comprises" and "comprising" merely indicate that steps and elements are included which are explicitly identified, that the steps and elements do not form an exclusive list, and that a method or apparatus may include other steps or elements.
Flow charts are used in this description to illustrate operations performed by a system according to embodiments of the present description. It should be understood that the preceding or following operations are not necessarily performed in the exact order in which they are performed. Rather, the various steps may be processed in reverse order or simultaneously. Meanwhile, other operations may be added to the processes, or a certain step or several steps of operations may be removed from the processes.
Fig. 1 is a topology diagram of a blockchain network shown in accordance with some embodiments of the present description. As shown in fig. 1, the blockchain network may include a P2P network having communication connections and a relay network.
P2P is a peer-to-peer (peer-to-peer) network, also known as peer-to-peer technology, and is an internet system that does not have a central server and relies on user groups (peers) to exchange information. Unlike a central network system with a central server, each user side of a peer-to-peer network is both a node and functions as a server. The central server means that when under attack, once the central server goes down, the whole network and service will have problems. The P2P network has the advantage that each node is both a client and a server, so that when an attack is made, any machine crashes, and the overall service is not affected. The core of the block chain is decentralization, which is different from the concept of the P2P network, so the block chain network generally uses P2P as the bottom layer, including most public chains and alliance chains, which use similar bottom layer implementation.
In the blockchain network, the underlying P2P network may include one or more P2P nodes, and such a P2P node is also generally a node in the blockchain network, such as nodes a, B, a. A relay network (relay for short) may include one or more relay nodes, such as relay1, relay2, relay3, and relay4 shown in fig. 1.
It should be noted that "directly connected" (simply referred to as "directly connected") in this specification means that no other node is connected between two nodes, in other words, another node is also connected between two nodes having a connection but not being directly connected (i.e. indirectly connected). For example, as shown in fig. 1, node a is directly connected to nodes C and D, respectively, nodes a, B and C are directly connected to relay1, respectively, and node a is indirectly connected to nodes B, E, F, G and H, respectively. In addition, the one-way arrows pointing from the block-link points to the relay nodes in fig. 1, 3, 4 and 5 indicate that the communication connection between the block-link points and the relay nodes can be actively initiated by the block-link points, and it should be understood that the block-link points and the relay nodes can communicate in two directions.
The relay network has rapid relay capability and is stable, and the defect that the service quality of the P2P network is poor under some conditions can be overcome. Network Quality of Service may be measured based on Quality of Service (QoS) elements such as the transmission delay of a message. Taking the transmission delay as an example, for example, the node a needs to send a message to the node E, and the smaller the delay from the node a sending the message to the node E receiving the message or the smaller the delay from the node a sending the message to the node a receiving the message fed back by the node E, the better the service quality of the link transmitting the message.
In some embodiments, the block link node may transmit the same service data through links in the P2P network and the relay network, respectively, and accordingly, the destination block link node of the service data may reserve the service data received first as valid data and discard the service data received later as invalid data. The repeated data transceiving causes the waste of network bandwidth and machine resources, and also affects the network processing capability of the node to a certain extent. In a blockchain network, the traffic data may include one or more of transaction records (transaction for short), request messages, response messages, and the like.
Therefore, in the embodiments in this specification, by means of establishing P2P direct connection between the auxiliary blockchain nodes, recording link optimization information, selecting a better link based on the link optimization information, and the like, not only can low-delay transmission of service data be ensured, but also repeated data transceiving (transmission) can be effectively reduced, so that network bandwidth and machine resources can be saved, and the influence on the network processing capability of the nodes can be reduced.
Fig. 2 is a schematic diagram illustrating establishment of a P2P direct connection between secondary blockchain nodes according to some embodiments of the present disclosure. The same parts in fig. 2 as in fig. 1 can be referred to fig. 1 and the related description.
In some embodiments, for several block-linked points belonging to the same Intranet (or Intranet for short), a relay node directly connected to these block-linked points may assist these nodes to establish a P2P subnet connection (may be referred to as P2P Intranet connection) based on a private network address (or referred to as Intranet address). After establishing the P2P intranet connection, the blockchain nodes may obtain better network service quality (e.g., low latency, large bandwidth) by communicating through the P2P network.
Specifically, after the block link node establishes a direct connection with the relay node, the relay node may obtain a public network address of the block link node. The relay node directly connected with the at least two block chain nodes can obtain the external network addresses of the at least two block chain nodes, and judge whether the external network addresses of the at least two block chain nodes are the same. If the two block chain nodes are the same, the at least two block chain nodes belong to the same intranet (the outer network addresses belonging to the same intranet device are the same), the relay node may query respective intranet addresses to the at least two block chain link points, and at least send the inner network addresses of other block chain nodes to one of the at least two block chain nodes, so that the at least two block chain nodes establish P2P direct connection based on the inner network addresses.
Referring to fig. 2, assuming that nodes a, B, and C belong to the same intranet (indicated by dashed circles in fig. 2) and that nodes a, B, and C are all directly connected to relay1, relay1 may obtain the extranet addresses of nodes a, B, and C, and when relay1 finds that the extranet addresses of nodes a, B, and C are the same, may query one or more of nodes a, B, and C for its intranet address, and send the intranet addresses of the remaining blockchain nodes to one or more (may be each) of nodes a, B, and C. For example, relay1 may send the intranet addresses of nodes B and C to node a, so that node a initiates a P2P direct connection to nodes B and C based on the intranet addresses of nodes B and C. For another example, relay1 may send the intranet address of node a to nodes B and C, respectively, so that nodes B and C initiate P2P direct connection to node a based on the intranet address of node a, respectively.
After assisting nodes a, B, and C to establish P2P subnet connection, if relay1 finds that the newly connected block chain link point has the same external network address as nodes a, B, and C, relay1 may send the previously queried internal network address of nodes a, B, and C to the newly connected block chain link point, so that the newly connected block chain link point initiates P2P direct connection to nodes a, B, and C based on the internal network addresses of nodes a, B, and C, respectively. Or relay1 initiates a request for inquiring the intranet address of the newly connected block link point to the newly connected block link point, and sends the intranet address of the newly connected block link point to nodes a, B and C respectively, so that the nodes a, B and C initiate P2P direct connection to the newly connected block link point based on the intranet address of the newly connected block link node respectively.
In some embodiments, for a plurality of block-link points with similar geographic locations, relay nodes directly connected with the block-link points can assist the nodes in establishing the P2P subnet connection based on the external network address. Due to the close geographical locations of the blockchain nodes, better network service quality (e.g., low latency and large bandwidth) may be obtained by establishing P2P direct connection and then communicating through the P2P network.
Specifically, for at least two blockchain nodes, a relay node directly connected to the at least two blockchain nodes may obtain the external network addresses of the at least two blockchain nodes, and determine the geographic location information of the at least two blockchain nodes based on the external network addresses of the at least two blockchain nodes. Furthermore, the relay node may determine whether the geographic positions of the at least two block link nodes are close to each other according to the geographic position information of the at least two block link nodes, and assist the at least two block link nodes in establishing the P2P subnet connection if the geographic positions of the at least two block link nodes are close to each other. The method for assisting the at least two blockchain nodes to establish the P2P connection may include: and at least sending the external network address of other blockchain nodes to one of the at least two blockchain nodes so that the at least two blockchain nodes establish the P2P direct connection based on the external network address.
In some embodiments, the geographical location information may include geographical coordinates (e.g., latitude and longitude), and when the relay node finds that the distance (which may be calculated from the coordinates) of any two of the any two blockchain nodes is less than a distance threshold, the geographical locations of the two may be considered to be close. In some embodiments, the geographic location information may include a place name (e.g., a city name) in the physical world, and when any two tile link points are found in the same city, the geographic locations of the two may also be considered close.
Referring to fig. 2, assuming that nodes E, H, and G are all directly connected to relay4, relay4 may obtain the outer network addresses of nodes E, H, and G, and when relay4 discovers that the distances between nodes E and H, nodes H and G, and nodes G and E are all smaller than a distance threshold, or discovers that nodes E and H, nodes H and G, and nodes G and E belong to the same city, relay4 may send the outer network address of node H (or E) to node E (or H), send the outer network address of node G (or H) to node H (or G), and send the outer network address of node E (or G) to node G (or E), so that nodes E and H, nodes H and G, and nodes G and E establish P2P based on the outer network addresses, respectively.
In some embodiments, the network address referred to in this specification may be an IP address. In some embodiments, the relay node may query the IP geographic information base for the geographic location information corresponding to the IP address, where the IP geographic information base stores the geographic location information corresponding to each IP address.
It should be understood that the blockchain node where the relay node assists in establishing the P2P subnet connection may include a blockchain node where the P2P direct connection is already established. For example, referring to fig. 1 and fig. 2 in combination, before the relay node assists the nodes a, B, and C to establish the P2P intranet connection, the nodes a and C have already established the P2P direct connection. If the nodes A and B have established the P2P direct connection based on the intranet address, the nodes A and B do not need to initiate the P2P direct connection based on the intranet address. If the nodes A and B establish the P2P direct connection based on the external network address, the nodes A and B can reestablish the P2P direct connection based on the internal network address.
The method helps to mine richer link optimization information by assisting the establishment of some P2P direct connections which can improve the network service quality. For details of the link optimization information, reference may be made to fig. 3 and its associated description.
Fig. 3 is an exemplary flow diagram of a method of communication in a blockchain network, shown in some embodiments herein. The process 300 may be performed by any blockchain node (denoted as node X) in the P2P network to obtain link optimization information of node X to any other blockchain node (denoted as node Y). The link optimization information indicates transmission of traffic data from node X to node Y through one of the P2P network and the relay network. In some embodiments, flow 300 may be implemented by system 600 shown in FIG. 6. As shown in fig. 3, the process 300 may include:
at step 310, at least one first probe message is sent to node Y through the P2P network.
And step 320, receiving at least one first response message returned by the node Y through the P2P network.
The at least one first response message corresponds to the at least one first probe message one to one. In some embodiments, a single probe message (first probe message/second probe message) and its corresponding response message (first response message/second response message) may contain the same indicia (e.g., message number).
In some embodiments, the sending node may continuously (e.g., periodically) send probe messages to the receiving node. For example, the probe message may be a heartbeat message in the P2P network for the sending node to confirm whether the accepting node is online/failed/currently available, etc.
Step 330, obtaining a first quality of service data of the P2P network communication link between the node X and the node Y according to the sending time of the at least one first probe message and the receiving time of the at least one first response message.
In some embodiments, the quality of service data for any network (P2P network/relay network) link may be determined based on Round-trip-TripTime (RTT) of a message pair (including probe and response messages corresponding to each other). It should be understood that for any message pair, the RTT for that message pair can be obtained by subtracting the sending time of the probe message in that message pair from the receiving time of the response message in that message pair.
It should be noted that the service quality of the network communication link in the unidirectional communication and the bidirectional communication can be considered to be stable, and therefore, the round trip delay can be used to measure the service quality of the network communication link covering the unidirectional communication and the bidirectional communication.
Node X may continue to send probe messages to dynamically probe the quality of service of the communication link between node X and node Y. Accordingly, node X may continuously calculate RTTs of multiple message pairs, and then node X may perform statistics based on round trip delays of the message pairs to obtain quality of service data of a network communication link between node X and node Y. In some embodiments, node X may accumulate the round trip delay of each message pair according to a smoothing algorithm, resulting in continuously updated QoS data (which may also be referred to as accumulated round trip delay). Specifically, the node X may update the QoS data (i.e., the cumulative round trip delay) by SRTT = (alpha × SRTT) + ((1-alpha) × RTT), where SRTT around equal sign indicates the cumulative round trip delay before and after updating, alpha is a preset weight coefficient (0 < -alpha 1), and RTT indicates the currently calculated round trip delay of a certain message pair. Typically, the value of alpha may be close to 1 (correspondingly, 1-alpha is close to 0), for example, alpha =0.9, to avoid that the temporal fluctuation of the network service quality (reflected on a single RTT) causes a large fluctuation of the overall QoS data value.
Step 340, at least one second probe message is sent to node Y through the relay network.
And step 350, receiving at least one second response message returned by the node Y through the relay network.
Step 360, obtaining second quality of service data of the relay network communication link between the node X and the node Y according to the sending time of the at least one second probe message and the receiving time of the at least one second response message.
For details on obtaining the second quality of service (QoS) data, reference may be made to the related description of obtaining the first quality of service data (steps 310-330).
Step 370, comparing said first quality of service data and said second quality of service data.
And 380, recording link optimization information from the node X to the node Y according to the comparison result.
The quality of service data is associated with the start-stop nodes (i.e., node X and node Y) and the network (P2P network/relay network) in which the communication link is located. The first quality of service (QoS) data corresponds to a P2P network and the second quality of service (QoS) data corresponds to a relay network. By comparing the first QoS data and the second QoS data, it is possible to determine which of the communication link of the P2P network and the communication link of the relay network is the more preferable choice. Accordingly, the node X may record link optimization data indicating that traffic data is transmitted from the node X to the node Y through one of the P2P network and the relay network according to the comparison result. The nodes (block chain nodes/relay nodes) in the block chain network can not send the service data to the target block chain node through the network (P2P network/relay network) communication link with poor service quality according to the link optimization data, so that the repeated data receiving and sending quantity can be reduced.
In some embodiments, the link optimization information may indicate that traffic data is transmitted from node X to node Y through one of the P2P network and the relay network by setting different flags, e.g., one of "0" and "1" in the link optimization information indicates that traffic data is transmitted through the P2P network, and the other of "0" and "1" indicates that traffic data is transmitted through the relay network.
In some embodiments, node X may record only the link optimization information indicating that the traffic data is transmitted from node X to node Y through the P2P network, that is, when the link optimization information about node Y (as a destination node) is not queried, it indicates that better quality of service can be obtained by transmitting the traffic data from node X to node Y through the relay network. Specifically, the link optimization information indicating that traffic data is transmitted from node X to node Y through the P2P network may include identification information of node Y. Accordingly, when the link optimization information including the identification information of the node Y (as the destination node) is not queried, it is shown that better quality of service can be obtained by transmitting the traffic data from the node X to the node Y through the P2P network.
Similarly, in still other embodiments, node X may record only the link optimization information indicating that the traffic data is transmitted from node X to node Y through the relay network, i.e., when the link optimization information about node Y (as the destination node) is not queried, it indicates that better quality of service can be obtained by transmitting the traffic data from node X to node Y through the P2P network. Specifically, the link optimization information indicating that the traffic data is transmitted from the node X to the node Y through the relay network may include identification information of the node Y. Accordingly, when the link optimization information including the identification information of the node Y (as the destination node) is not queried, it is shown that a better quality of service can be obtained by transmitting the traffic data from the node X to the node Y through the relay network.
In some embodiments, node X may create a link optimization table for maintaining link optimization information of node X to each other blockchain node, which may be dynamically updated following the link optimization information of node X to each node. With reference to the foregoing, in some embodiments, may be: for any node, when the link optimization table stored by the node X contains the identification information of the node, it indicates that better service quality can be obtained by transmitting the service data from the node X to the node through the P2P network. In still other embodiments, it may also be: for any node, when the link optimization table stored by the node X contains the identification information of the node, it indicates that better service quality can be obtained by transmitting the service data from the node X to the node through the relay network.
For service data (i.e., unicast message) sent to a specific blockchain node (a single destination blockchain node), the node X may select to transmit the service data to the destination blockchain node through the P2P network or the relay network according to link optimization information from the node X to the destination blockchain node. That is, for unicast service data, if the node X selects to transmit the service data through one of the P2P network and the relay network according to the query link optimization information, the service data may not be transmitted through the other of the P2P network and the relay network, and repeated transceiving of data may be reduced. Specifically, the node X may obtain service data to be transmitted, and determine a destination block chain node of the service data. Further, the node X may query the link optimization information corresponding to the destination blockchain node (refer to the node Y), and select to transmit the service data to the destination blockchain node through one of the P2P network and the relay network according to the query result. For more details on the link optimization information, reference may be made to fig. 3 and its associated description.
Unicast of traffic data is illustrated below in connection with fig. 4. As shown in fig. 4, the link optimization table (identified by list in fig. 4) stored by the node a includes identification information of the nodes B, C, and F, and the link optimization table divides the remaining blockchain nodes except for the node a into two parts, where the first part includes the nodes B, C, and F, and the second part includes the nodes D, E, G, and H.
If the link optimization table indicates that the service data is transmitted from the node a to the blockchain node belonging to the first portion through the P2P network, the node a selects to send the service data to the blockchain node belonging to the first portion through the P2P network and to send the service data to the blockchain node belonging to the second portion through the relay network. For example, as shown in fig. 4, to send the traffic data1 to the node F, the node a does not send the data1 to the relay1 directly connected, but sends the data1 to the node F through a communication link (e.g., a-C-F) in the P2P network.
If the link optimization table indicates that the service data is transmitted from the node a to the block chain node belonging to the first part through the relay network, the node a selects to send the service data to the block chain node belonging to the first part through the relay network and to send the service data to the block chain node belonging to the second part through the relay network. Still taking data1 to be sent to node F as an example, node a sends data1 to node F through a communication link in the relay network.
In some embodiments, node X may report link optimization information from node X to a target blockchain node to the same relay node, where the target blockchain node is a blockchain link point directly connected to the same relay node as node X. Therefore, the relay node can determine whether to send the service data broadcast by the node X to the directly connected target block link node according to the link optimization information reported by the node X. If the link optimization information reported by the node X indicates that the service data is transmitted to the target block link node through the P2P network, the relay node may no longer send the broadcasted service data to the target block link node, which may reduce repeated receiving and transmitting of data. It should be understood that, since the link optimization information may be continuously updated, the node X may report the updated link optimization information to the directly connected relay node, so as to implement synchronization of the link optimization information.
The broadcasting of service data is illustrated in connection with fig. 5. As shown in fig. 5, a link optimization table (identified by list in fig. 5) stored by a node a includes identification information of nodes C and E, the link optimization table divides the remaining blockchain nodes except for the node a into two parts, the first part includes the nodes C and E (the node C is a target blockchain node directly connected to relay1 with the node a, respectively), and the second part includes the nodes B, D, F, G, and H. The node a may report the link optimization table (corresponding to the list including only C in fig. 5) lacking the identification information of the node E to the directly connected relay1, and certainly, the node a may also report the complete link optimization table to the directly connected relay1.
If the link optimization table indicates that the service data is transmitted from the node a to the block chain node belonging to the first part through the P2P network, as shown in fig. 5, after receiving the broadcasted service data2, the relay1 may check whether the link optimization table reported by the node a includes the identification information of the block chain link point directly connected to the relay1, and when the link optimization table reported by the node a includes the identification information of the node C, the relay1 may transfer a copy of the data2 to the node B but not transfer a copy of the data2 to the node C.
If the link optimization table indicates that the service data are transmitted from the node a to the block link point belonging to the first part through the relay network, after receiving the broadcasted service data2, the relay1 may check whether the link optimization table reported by the node a includes the identification information of the block link point directly connected to the relay1, and when the link optimization table reported by the node a is found to include the identification information of the node C, the relay1 may transfer a copy of the data2 to the node C but not transfer a copy of the data2 to the node B.
Through POC (Proof of Concept) verification, with the help of the method for establishing P2P direct connection between auxiliary block chain nodes, the communication method in a block chain network, and the service data transmission method provided in the embodiments of the present specification, the speed of synchronous transaction and block is significantly increased (average consensus time delay is significantly decreased), and the bandwidth can be saved by more than 40%.
It should be noted that the above description of the flow is for illustration and description only and does not limit the scope of the application of the present specification. Various modifications and changes to the flow may occur to those skilled in the art, given the benefit of this disclosure. However, such modifications and variations are intended to be within the scope of the present description.
Fig. 6 is a block diagram of a communication system in a blockchain network in accordance with some embodiments shown herein. The system 600 may be implemented on a blockchain node (denoted as node X) in a P2P network, and is configured to obtain link optimization information of the node X to any other blockchain node (denoted as node Y). As shown in fig. 6, the system 600 may include a first quality of service data obtaining module 610, a second quality of service data obtaining module 620, a quality of service data comparing module 630, and a link optimization information recording module 640.
The first quality of service data obtaining module 610 may be configured to: the method comprises the steps of sending at least one first detection message to a node Y through a P2P network, receiving at least one first response message returned by the node Y through the P2P network, and obtaining first quality of service data of a P2P network communication link between the node X and the node Y according to the sending time of the at least one first detection message and the receiving time of the at least one first response message.
The second quality of service data obtaining module 620 may be configured to: and sending at least one second detection message to the node Y through the relay network, receiving at least one second response message returned by the node Y through the relay network, and obtaining second service quality data of a relay network communication link between the node X and the node Y according to the sending time of the at least one second detection message and the receiving time of the at least one second response message.
The quality of service data comparison module 630 may be configured to compare the first quality of service data and the second quality of service data.
The link optimization information recording module 640 may be configured to record link optimization information from the node X to the node Y according to the comparison result.
For more details on the system 600 and its modules, reference may be made to fig. 3 and its associated description.
Fig. 7 is a block diagram of a communication system in a blockchain network in accordance with some embodiments shown herein. The system 700 may be implemented on a blockchain node in a P2P network. As shown in fig. 7, the system 700 may include a first traffic data obtaining module 710, a destination blockchain node determining module 720, a link optimization information querying module 730, and a first selecting module 740.
The first service data obtaining module 710 may be configured to obtain service data to be transmitted.
The destination blockchain node determining module 720 may be configured to determine a destination blockchain node of the traffic data.
The link optimization information query module 730 may be configured to query link optimization information corresponding to the link from the certain block link node to the destination block link node, where the link optimization information indicates that service data is transmitted from the certain block link node to the destination block link node through one of the P2P network and the relay network.
The first selection module 740 may be configured to select to transmit the service data to the destination blockchain node through one of the P2P network and the relay network according to the query result.
For more details on the system 700 and its modules, reference may be made to fig. 4 and its associated description.
Fig. 8 is a block diagram of a communication system in a blockchain network in accordance with some embodiments shown herein. System 800 can be implemented on a relay node in a relay network that is directly connected to at least two blockchain nodes in a P2P network. As shown in fig. 8, the system 800 may include a second traffic data obtaining module 810, a link optimization information obtaining module 820, and a second selecting module 830.
The second service data obtaining module 810 may be configured to obtain service data broadcasted from a certain block link node of the at least two block link nodes.
The link optimization information obtaining module 820 may be configured to obtain the link optimization information reported by the certain block link point.
The second selecting module 830 may be configured to select whether to send the service data to other block chain nodes of the at least two block chain nodes according to the link optimization information reported by the certain block chain node.
For more details on the system 800 and its modules, reference may be made to fig. 5 and its associated description.
It should be understood that the systems and their modules shown in fig. 6-8 may be implemented in a variety of ways. For example, in some embodiments, the system and its modules may be implemented in hardware, software, or a combination of software and hardware. Wherein the hardware portion may be implemented using dedicated logic; the software portions may be stored in a memory and executed by a suitable instruction execution system, such as a microprocessor or specially designed hardware. Those skilled in the art will appreciate that the methods and systems described above may be implemented using computer executable instructions and/or embodied in processor control code, such code being provided, for example, on a carrier medium such as a diskette, CD-or DVD-ROM, a programmable memory such as read-only memory (firmware), or a data carrier such as an optical or electronic signal carrier. The system and its modules in this specification may be implemented not only by hardware circuits such as very large scale integrated circuits or gate arrays, semiconductors such as logic chips, transistors, etc., or programmable hardware devices such as field programmable gate arrays, programmable logic devices, etc., but also by software executed by various types of processors, for example, or by a combination of hardware circuits and software (e.g., firmware).
It should be noted that the above description of the system and its modules is for convenience only and should not limit the present disclosure to the illustrated embodiments. It will be appreciated by those skilled in the art that, given the teachings of the system, any combination of modules or sub-system configurations may be used to connect to other modules without departing from such teachings. For example, in some embodiments, the first qos data obtaining module 610 and the second qos data obtaining module 620 shown in fig. 6 may be different modules in a system, or may be a module that implements functions of the two modules. For another example, in some embodiments, the first service data obtaining module 710 and the destination blockchain node determining module 720 shown in fig. 7 may be two modules or may be combined into one module. Such variations are within the scope of the present disclosure.
The beneficial effects that may be brought by the embodiments of the present description include, but are not limited to: (1) The establishment of P2P direct connection which can improve the network service quality is assisted, so that richer link optimization information can be mined; (2) By recording link optimization information, the method is beneficial to selecting a better network communication link to transmit service data, and repeated data receiving and transmitting can be reduced, so that network bandwidth and machine resources can be saved, and the influence on the processing capacity of the node network can be reduced. It is to be noted that different embodiments may produce different advantages, and in different embodiments, any one or combination of the above advantages may be produced, or any other advantages may be obtained.
Having thus described the basic concept, it will be apparent to those skilled in the art that the foregoing detailed disclosure is to be considered merely illustrative and not restrictive of the embodiments herein. Various modifications, improvements and adaptations to the embodiments described herein may occur to those skilled in the art, although not explicitly described herein. Such modifications, improvements and adaptations are proposed in the embodiments of the present specification and thus fall within the spirit and scope of the exemplary embodiments of the present specification.
Also, the description uses specific words to describe embodiments of the description. Reference throughout this specification to "one embodiment," "an embodiment," and/or "some embodiments" means that a particular feature, structure, or characteristic described in connection with at least one embodiment of the specification is included. Therefore, it is emphasized and should be appreciated that two or more references to "an embodiment" or "one embodiment" or "an alternative embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, some features, structures, or characteristics of one or more embodiments of the specification may be combined as appropriate.
Moreover, those skilled in the art will appreciate that aspects of the embodiments of the present description may be illustrated and described in terms of several patentable species or situations, including any new and useful combination of processes, machines, manufacture, or materials, or any new and useful improvement thereof. Accordingly, aspects of embodiments of the present description may be carried out entirely by hardware, entirely by software (including firmware, resident software, micro-code, etc.), or by a combination of hardware and software. The above hardware or software may be referred to as "data block," module, "" engine, "" unit, "" component, "or" system. Furthermore, aspects of the embodiments of the present specification may be represented as a computer product, including computer readable program code, embodied in one or more computer readable media.
The computer storage medium may comprise a propagated data signal with the computer program code embodied therewith, for example, on baseband or as part of a carrier wave. The propagated signal may take any of a variety of forms, including electromagnetic, optical, etc., or any suitable combination. A computer storage medium may be any computer-readable medium that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code on a computer storage medium may be propagated over any suitable medium, including radio, cable, fiber optic cable, RF, or the like, or any combination of the preceding.
Computer program code required for operation of various portions of the embodiments of the present description may be written in any one or more programming languages, including an object oriented programming language such as Java, scala, smalltalk, eiffel, JADE, emerald, C + +, C #, VB.NET, python, and the like, a conventional programming language such as C, visualBasic, fortran2003, perl, COBOL2002, PHP, ABAP, a dynamic programming language such as Python, ruby, and Groovy, or other programming languages, and the like. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or processing device. In the latter scenario, the remote computer may be connected to the user's computer through any network format, such as a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet), or in a cloud computing environment, or as a service, such as a software as a service (SaaS).
In addition, unless explicitly stated in the claims, the order of processing elements and sequences, use of numbers and letters, or use of other names in the embodiments of the present specification are not intended to limit the order of the processes and methods in the embodiments of the present specification. While various presently contemplated embodiments of the invention have been discussed in the foregoing disclosure by way of example, it is to be understood that such detail is solely for that purpose and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover all modifications and equivalent arrangements that are within the spirit and scope of the embodiments herein. For example, although the system components described above may be implemented by hardware devices, they may also be implemented by software-only solutions, such as installing the described system on an existing processing device or mobile device.
Similarly, it should be noted that in the foregoing description of embodiments of the present specification, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the embodiments. This method of disclosure, however, is not intended to imply that more features are required than are expressly recited in the claims. Indeed, the embodiments may be characterized as having less than all of the features of a single embodiment disclosed above.
For each patent, patent application publication, and other material, such as articles, books, specifications, publications, documents, etc., cited in this specification, the entire contents of each are hereby incorporated by reference into the specification. Except where the application history document does not conform to or conflict with the contents of the present specification, it is to be understood that the application history document, as used herein in the present specification or appended claims, is intended to define the broadest scope of the present specification (whether presently or later in the specification) rather than the broadest scope of the present specification. It is to be understood that the descriptions, definitions and/or uses of terms in the accompanying materials of this specification shall control if they are inconsistent or contrary to the descriptions and/or uses of terms in this specification.
Finally, it should be understood that the embodiments described herein are merely illustrative of the principles of the embodiments described herein. Other variations are possible within the scope of the embodiments of the present description. Thus, by way of example, and not limitation, alternative configurations of the embodiments of the specification can be considered consistent with the teachings of the specification. Accordingly, the embodiments of the present description are not limited to only those embodiments explicitly described and depicted herein.