Management device
The management device enhances blockchain network efficiency by maintaining high-quality communication paths between nodes, addressing the delay issue in data addition and block confirmation.
Patent Information
- Application Number
- JP2022565185
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-11-25
- Filing Date
- 2021-11-05
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2041-11-05
AI Technical Summary
The delay in adding additional data to a blockchain due to time-consuming communication processes among nodes in a blockchain network is a challenge that existing technologies have not adequately addressed.
A management device that provides nodes with quality control mechanisms, ensuring that communication paths between nodes maintain a quality equal to or higher than a predetermined level, thereby reducing delays in data addition to the blockchain by implementing priority and bandwidth controls.
This approach effectively reduces the delay in adding data to the blockchain, ensuring timely confirmation and connection of blocks, enhancing the efficiency of the blockchain network.
Smart Images

Figure 0007697971000001 
Figure 0007697971000002 
Figure 0007697971000003
Abstract
Description
Technical Field
[0001] The present invention relates to a management device.
Background Art
[0002] A system using blockchain is known (see, for example, Patent Document 1). Blockchain is a database for data such as transaction data. Blockchain includes a plurality of blocks connected in series. Each block includes data such as transaction data. Blockchain is shared by a plurality of nodes. When any one of the plurality of nodes generates additional data (for example, transaction data or a block) to be added to the blockchain, the additional data is communicated among the plurality of nodes and added to the blockchain.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] If it takes time to communicate the additional data, the timing to add the additional data to the blockchain will be delayed. For this reason, a technique for assisting nodes is desired to reduce the delay in the timing of adding additional data to the blockchain.
[0005] An object of the present invention is to provide a technique for assisting nodes in order to reduce the delay in the timing of adding data to a blockchain.
Means for Solving the Problems
[0006] When receiving, from the first node, a first request for controlling the quality of communication within a group composed of the first node that shares a blockchain and a plurality of second nodes and executes communication for adding additional data to the blockchain, a providing unit that provides the first node with first information corresponding to the first request; and when receiving the first information from a receiving node that has received the first information among the plurality of second nodes in a situation where the first information is communicated within the group, in addition to a second request for controlling the quality of communication in a first communication path, a quality control unit that sets the quality of communication in the first communication path to a quality equal to or higher than a first quality. The first communication path includes a first end and a second end. The first end is the receiving node, and the second end is a first connection node different from the node that transmitted the first information to the receiving node and that connects to the receiving node without passing through any node belonging to the group among the nodes belonging to the group.
Advantages of the Invention
[0007] According to one aspect of the present invention, it is possible to assist a node in order to reduce a delay in the timing of adding data to a blockchain.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Mode for Carrying Out the Invention
[0009] <A: First Embodiment> <A1: Network System 1> Figure 1 is a diagram showing network system 1. Network system 1 includes network NW and management device 10. Network NW includes group A1 of nodes 20, 30, 40, 50, and 60. Network NW also includes a plurality of nodes that do not belong to group A1.
[0010] Node 20 is an example of a first node. Nodes 30, 40, 50, and 60 are examples of a plurality of second nodes. Each of nodes 30, 40, 50, and 60 is an example of a second node. The number of second nodes is not limited to 4 and may be 2 or more. Group A1 is an example of a group composed of a first node and a plurality of second nodes.
[0011] Nodes 20, 30, 40, 50, and 60 constitute a P2P (Peer to Peer) network. The configuration of the P2P network is not limited to the configuration shown in Figure 1 and can be appropriately changed.
[0012] Each of nodes 20, 30, 40, 50, and 60 holds a common blockchain BC. That is, nodes 20, 30, 40, 50, and 60 share blockchain BC.
[0013] Figure 2 is a diagram showing an example of blockchain BC. Blockchain BC includes a plurality of blocks B1 connected in series. Each block B1 includes block-related data Q1 and target data T1.
[0014] The block-related data Q1 is based on the data included in the immediately preceding block B1. The block-related data Q1 is, for example, a hash value based on the data included in the immediately preceding block B1. The block-related data Q1 contributes to the resistance to data falsification in the blockchain BC.
[0015] The target data T1 is, for example, the transaction data D1. The transaction data D1 is, for example, data related to the transaction of cryptocurrency. Cryptocurrency is also referred to as virtual currency or digital currency. The transaction data D1 is not limited to data related to the transaction of cryptocurrency. The transaction data D1 may be, for example, data related to the transaction of real estate, data related to the transaction of movable property, or data related to the transaction of information. The transaction data D1 is also referred to as a transaction. The target data T1 is not limited to the transaction data D1 and may be, for example, data related to the exchange of information such as a contract. The blockchain BC is an example of a database that manages the target data T1.
[0016] Hereinafter, for the sake of simplicity of explanation, an example in which the target data T1 is the transaction data D1 will be described. The transaction data D1 can be generated by each of the plurality of nodes 20, 30, 40, 50, and 60.
[0017] The transaction data D1 is propagated from the node that is the generation source of the transaction data D1 to a node different from the generation source of the transaction data D1 among the plurality of nodes 20, 30, 40, 50, and 60. When each of the plurality of nodes 20, 30, 40, 50, and 60 receives the transaction data D1, it verifies the transaction data D1.
[0018] The block B1 is generated by a node called a miner node among the plurality of nodes 20, 30, 40, 50, and 60. The miner node combines a plurality of transaction data D1 into one block B1.
[0019] Block B1 is propagated from the miner node that is the origin of block B1 to nodes among the plurality of nodes 20, 30, 40, 50, and 60 that are different from the origin of block B1. When each of the plurality of nodes 20, 30, 40, 50, and 60 receives block B1, it verifies the block B1.
[0020] When the verification result of block B1 indicates validity for each of the plurality of nodes 20, 30, 40, 50, and 60, the block B1 is added to the existing blockchain BC. Adding block B1 to the existing blockchain BC means connecting block B1 to the existing blockchain BC. Each of block B1, target data T1, and transaction data D1 is an example of predetermined data. The predetermined data is an example of additional data.
[0021] Each of nodes 20, 30, 40, 50, and 60 executes communication for adding transaction data D1 to the blockchain BC. Hereinafter, "communication for adding transaction data D1 to the blockchain BC" is also referred to as "data addition communication". An example of the data addition communication is communication of transaction data D1. Another example of the data addition communication is communication of block B1 including transaction data D1. In the network NW, data such as transaction data D1 and block B1 are communicated by packets.
[0022] The earlier the timing at which transaction data D1 is added to the blockchain BC, the earlier the timing at which transaction data D1 is regarded as confirmed. The management device 10 reduces the delay in the timing at which transaction data D1 is added to the blockchain BC by controlling the quality of the data addition communication. The management device 10 advances the timing at which transaction data D1 is regarded as confirmed by reducing the delay in the timing at which transaction data D1 is added to the blockchain BC. The management device 10 supports at least one of the nodes 20, 30, 40, 50, and 60 by advancing the timing at which transaction data D1 is regarded as confirmed.
[0023] FIG. 3 is a diagram showing an example of the network NW. The network NW includes communication devices 71, 72, 73, and 74 in addition to nodes 20, 30, 40, 50, and 60. Each of the communication devices 71, 72, 73, and 74 is, for example, a router. The nodes 20, 30, 40, 50, and 60 and the communication devices 71, 72, 73, and 74 can communicate with the management device 10.
[0024] The management device 10 controls the communication quality in the network NW by causing at least one of the communication devices 71, 72, 73, and 74 to execute at least one of priority control and bandwidth control.
[0025] Priority control is, for example, control for preferentially transferring packets related to specific communication. When priority control is executed, low latency, throughput improvement, high speed, and high reliability are realized in specific communication. Bandwidth control is control for adjusting the width of the band used for communication. When the communication band is widened by bandwidth control, low latency, throughput improvement, high speed, and high reliability are realized in communication. Each of priority control and bandwidth control is an example of QoS (Quality of Service) control.
[0026] The management device 10 reduces the delay in the timing at which the transaction data D1 is added to the blockchain BC by causing at least one of the communication devices 71, 72, 73, and 74 to execute QoS control.
[0027] <A2: Node 20> The node 20 is a personal computer. The node 20 is not limited to a personal computer and may be, for example, a smartphone or a tablet. The node 20 executes data addition communication (communication for adding the transaction data D1 to the blockchain BC) with each of the nodes 30 and 40.
[0028] FIG. 4 is a diagram showing an example of the node 20. The node 20 includes an input device 21, an output device 22, a communication device 23, a storage device 24, and a processing device 25.
[0029] The input device 21 includes a keyboard. The input device 21 may include at least one of a mouse and a touch panel. When the input device 21 includes a touch panel, it may not include at least one of a keyboard and a mouse. The input device 21 receives operations performed by the user.
[0030] The output device 22 includes a display. The output device 22 may include a touch panel. The output device 22 displays various information. When the output device 22 includes a touch panel, it may not include a display. The touch panel may be used as both the input device 21 and the output device 22.
[0031] The communication device 23 communicates with the node 30 via a communication device 71 such as a router. The communication device 23 communicates with the node 40 via a communication device 72 such as a router. The communication device 23 further communicates with the management device 10.
[0032] The storage device 24 is a recording medium readable by the processing device 25. The storage device 24 includes, for example, a non-volatile memory and a volatile memory. The non-volatile memory is, for example, ROM (Read Only Memory), EPROM (Erasable Programmable Read Only Memory), and EEPROM (Electrically Erasable Programmable Read Only Memory). The volatile memory is, for example, RAM (Random Access Memory). The storage device 24 stores an application program 241 and a blockchain BC.
[0033] The processing device 25 includes one or more CPUs (Central Processing Unit). The one or more CPUs are an example of one or more processors. Each of the processor and the CPU is an example of a computer.
[0034] The processing device 25 reads the application program 241 from the storage device 24. By executing the application program 241, the processing device 25 functions as an operation control unit 251, a first request unit 252, a second request unit 253, a verification unit 254, and a block generation unit 255.
[0035] The operation control unit 251 may be implemented by circuits such as a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), a PLD (Programmable Logic Device), and an FPGA (Field Programmable Gate Array). At least one of the first request unit 252, the second request unit 253, the verification unit 254, and the block generation unit 255 may be implemented by circuits such as a DSP, an ASIC, a PLD, and an FPGA.
[0036] The operation control unit 251 controls communication for adding the transaction data D1 to the blockchain BC, that is, data addition communication.
[0037] The first request unit 252 sends a request C1 to the management device 10. The request C1 indicates a QoS control request for communication regarding the transaction data D1. Communication regarding the transaction data D1 includes communication of the transaction data D1 and communication of the block B1 including the transaction data D1. That is, communication regarding the transaction data D1 means the entire communication for adding the transaction data D1 to the blockchain BC. Communication regarding the transaction data D1 is an example of data addition communication. QoS control is an example of control of communication quality. The request C1 is an example of a first request for requesting control of the quality of communication for adding predetermined data to the blockchain BC. The first request is a request for controlling the quality of communication for adding predetermined data (additional data) to the blockchain BC.
[0038] When the management device 10 receives the request C1 from the first node (for example, node 20), it provides the one-time pass P1 to the first node. The one-time pass P1 is used to execute the control indicated in the request C1. The one-time pass P1 is an example of predetermined information corresponding to the first request. The predetermined information is an example of the first information. The one-time pass P1 is propagated to each of the plurality of second nodes.
[0039] The second request unit 253 transmits the request C2 to the management device 10. The request C2 indicates a QoS control request for communication on the communication path K1. The communication path K1 is an example of the first communication path. The first communication path includes a first end and a second end.
[0040] One end of the communication path K1 is the receiving node that has received the one-time pass P1 among the plurality of second nodes in the situation where the one-time pass P1 is communicated within the group A1. One end (receiving node) of the communication path K1 is an example of the first end of the first communication path. The other end of the communication path K1 is a first connection node different from the node that has transmitted the one-time pass P1 to the receiving node, and is a first connection node that connects to the receiving node without passing through any node belonging to the group A1 among the nodes belonging to the group A1. The other end (first connection node) of the communication path K1 is an example of the second end of the first communication path.
[0041] The communication on the communication path K1 is communication executed by the node (receiving node) constituting one end of the communication path K1 and the node (first connection node) constituting the other end of the communication path K1. For example, the communication on the communication path K1 includes the communication of packets that indicates the receiving node constituting one end of the communication path K1 as the source node and the first connection node constituting the other end of the communication path K1 as the destination node. The communication on the communication path K1 further includes the communication of packets that indicates the receiving node constituting one end of the communication path K1 as the destination node and the first connection node constituting the other end of the communication path K1 as the source node. The number of the communication paths K1 is one or more. The request C2 is an example of a second request that requests control of the quality of communication on the first communication path. The second request is a request for controlling the quality of communication on the first communication path.
[0042] The verification unit 254 verifies the transaction data D1 generated by other nodes. The verification unit 254 verifies the block B1 generated by other nodes.
[0043] The block generation unit 255 generates a block B1 including the transaction data D1. For example, the block generation unit 255 combines a plurality of pieces of transaction data D1 into one block B1.
[0044] <A3: Nodes 30, 40, 50, and 60> Each of nodes 30, 40, 50, and 60 has components similar to those of node 20. Node 30 executes data addition communication (communication for adding the transaction data D1 to the blockchain BC) with node 20. Node 40 executes data addition communication with each of nodes 20, 50, and 60. Node 50 executes data addition communication with node 40. Node 60 executes data addition communication with node 40.
[0045] <A4: Management device 10> FIG. 5 is a diagram showing an example of the management device 10. The management device 10 is a server. The management device 10 includes a communication device 11, a storage device 12, and a processing device 13.
[0046] The communication device 11 communicates directly or indirectly with each of nodes 20, 30, 40, 50, and 60. The communication device 11 communicates directly or indirectly with each of communication devices 71, 72, 73, and 74.
[0047] The storage device 12 is a recording medium readable by the processing device 13. The storage device 12 includes, for example, a non-volatile memory and a volatile memory. The storage device 12 stores a program 121 and a management table 122. FIG. 6 is a diagram showing an example of the management table 122. The management table 122 is used to manage QoS control of communication in the communication path.
[0048] Return to FIG. 5 for the description. The processing device 13 includes one or more CPUs. The processing device 13 reads the program 121 from the storage device 12. By executing the program 121, the processing device 13 functions as the providing unit 131 and the quality control unit 132. At least one of the providing unit 131 and the quality control unit 132 may be realized by a circuit such as a DSP, an ASIC, a PLD, and an FPGA.
[0049] When the providing unit 131 receives the request C1 from the first node (for example, node 20), the providing unit 131 provides the one-time path P1 to the first node. The one-time path P1 is communicated within the group A1. The one-time path P1 propagates to each of the plurality of second nodes. The second nodes use the one-time path P1 to notify the management device 10 that the communication on the communication path K1 is a communication for which QoS control is required by the request C1.
[0050] When the quality control unit 132 receives the one-time path P1 from the receiving node that has received the one-time path P1, in addition to the request C2 indicating the QoS control request for the communication on the communication path K1, the quality control unit 132 sets the quality of the communication on the communication path K1 to a quality equal to or higher than a predetermined quality. The predetermined quality is an example of the first quality.
[0051] The predetermined quality is, for example, a communication quality with a communication bandwidth of "X1" Mbps. "X1" is a positive number. In this case, a quality equal to or higher than the predetermined quality means a quality with a communication bandwidth of "X1" Mbps or more. The predetermined quality is not limited to a communication quality with a communication bandwidth of "X1" Mbps. For example, it may be a communication quality with a delay of "X2" ms. "X2" is a positive number. In this case, a quality equal to or higher than the predetermined quality means a quality with a delay of "X2" ms or less. The predetermined quality may be registered in advance in the storage device 12 or may be indicated in the request C1.
[0052] When the quality control unit 132 receives the one-time path P1 from the receiving node in a situation where the quality of the communication on the communication path K1 is less than the predetermined quality, in addition to the request C2, the quality control unit 132 changes the quality of the communication on the communication path K1 to a quality equal to or higher than the predetermined quality.
[0053] When the quality control unit 132 receives the one-time pass P1 in addition to the request C2 from the receiving node in a situation where the communication quality in the communication path K1 is of a quality equal to or higher than a predetermined quality, the quality control unit 132 maintains the communication quality in the communication path K1.
[0054] <A5: Explanation of Operations> FIG. 7 is a diagram for explaining the operation of the network system 1. For simplicity of explanation, FIG. 7 shows the operation in a case where the node 20 is a transaction request node, the node 30 is a trading partner node (transaction node), and each of the nodes 40, 50, and 60 is a miner node.
[0055] The transaction request node is not limited to the node 20, and may be any of the nodes 30, 40, 50, and 60. The trading partner node is not limited to the node 30, and may be any of the nodes 20, 40, 50, and 60. The trading partner node is different from the transaction request node. The miner node is not limited to each of the nodes 40, 50, and 60, and may be, for example, at least one of the nodes 20 and 30. The number of miner nodes is not limited to three.
[0056] In the example shown in FIG. 7, the transaction request node is an example of the first node. A plurality of nodes different from the transaction request node are examples of the plurality of second nodes.
[0057] Each of the nodes 20, 30, 40, 50, and 60 communicates using the communication device 23 shown in FIG. 4. However, for simplicity of explanation, the description of the communication device 23 is omitted. The management device 10 communicates using the communication device 11 shown in FIG. 5. However, for simplicity of explanation, the description of the communication device 11 is omitted.
[0058] When the input device 21 of the node 20 receives content information indicating the content of a transaction to be newly added to the blockchain BC from the user of the node 20, the operation control unit 251 of the node 20 generates transaction data D1 based on the content information.
[0059] FIG. 8 is a diagram showing an example of transaction data D1. The transaction data D1 includes information D11 indicating a transaction request node, information D12 indicating a trading partner node, and information D13 indicating the details of the transaction. In the example shown in FIG. 7, the information D11 indicates the node 20, and the information D12 indicates the node 30.
[0060] When the operation control unit 251 of the node 20 generates the transaction data D1, the first request unit 252 of the node 20 transmits a request C1 to the management device 10 in step S101 shown in FIG. 7. The request C1 indicates a QoS control request for communication related to the transaction data D1.
[0061] In step S101, the first request unit 252 of the node 20 transmits a request C1 with a request C3 to the management device 10. The request C3 indicates a request for controlling the quality of communication on the communication path K2. The communication path K2 is a communication path used by the node 20 to provide the transaction data D1.
[0062] The communication on the communication path K2 is communication executed by the node constituting one end of the communication path K2 and the node constituting the other end of the communication path K2. For example, the communication on the communication path K2 includes packet communication in which the node constituting one end of the communication path K2 is shown as the source node and the node constituting the other end of the communication path K2 is shown as the destination node. The communication on the communication path K2 further includes packet communication in which the node constituting one end of the communication path K2 is shown as the destination node and the node constituting the other end of the communication path K2 is shown as the source node.
[0063] One end of the communication path K2 is the node 20. The other end of the communication path K2 is a node (second connection node) that connects to the node 20 without passing through any of the plurality of second nodes (nodes 30, 40, 50, and 60). Hereinafter, the node constituting the other end of the communication path K2 is also referred to as "connection destination node N2".
[0064] When there are multiple destination nodes N2, the first request unit 252 of node 20 designates the communication path K2 for each destination node N2. In the example shown in FIG. 1, there are two destination nodes N2 (nodes 30 and 40). Therefore, the first request unit 252 of node 20 designates two communication paths K2 (communication paths K2a and K2b) in request C3.
[0065] One end of communication path K2a is node 20, and the other end of communication path K2a is node 30. One end of communication path K2b is node 20, and the other end of communication path K2b is node 40. Communication path K2 (each of communication paths K2a and K2b) is an example of a second communication path. The second communication path includes a third end and a fourth end. One end of communication path K2 (each of communication paths K2a and K2b) is an example of the third end of the second communication path. The other end of communication path K2 (each of communication paths K2a and K2b) is an example of the fourth end (second connection node) of the second communication path. Request C3 is an example of a third request that requests control of the quality of communication in the second communication path. The third request is a request for controlling the quality of communication in the second communication path.
[0066] Request C3 indicates the IP (Internet Protocol) address of the node constituting one end of communication path K2 as information for identifying the node constituting one end of communication path K2. The information for identifying the node constituting one end of communication path K2 is not limited to the IP address of the node constituting one end of communication path K2 and can be appropriately changed. Request C3 indicates the IP address of the node constituting the other end of communication path K2 as information for identifying the node constituting the other end of communication path K2. The information for identifying the node constituting the other end of communication path K2 is not limited to the IP address of the node constituting the other end of communication path K2 and can be appropriately changed.
[0067] When the providing unit 131 of the management device 10 receives request C1 from node 20, in step S102, it issues a one-time pass P1.
[0068] When Requirement C1 is accompanied by Requirement C3, in step S103, the providing unit 131 registers the communication path K2 indicated in Requirement C3 in the target communication path column 122a of the management table 122 in association with the one-time pass P1.
[0069] FIG. 6 shows an example in which a communication path K2a (a communication path between node 20 and node 30) and a communication path K2b (a communication path between node 20 and node 40) are registered in the target communication path column 122a in association with the one-time pass P1.
[0070] In step S103, for each communication path K2, the providing unit 131 reads, from Requirement C3, the IP address of the node constituting one end of the communication path K2 and the IP address of the node constituting the other end of the communication path K2. Subsequently, for each communication path K2, the providing unit 131 registers the IP address of the node constituting one end of the communication path K2 and the IP address of the node constituting the other end of the communication path K2 in the target communication path column 122a in association with the one-time pass P1 as information indicating the communication path K2.
[0071] When the providing unit 131 newly registers information indicating a communication path in the target communication path column 122a, it sets the processing column 122b corresponding to the communication path in the management table 122 to "not yet".
[0072] Note that when the providing unit 131 receives Requirement C1 but does not receive Requirement C3, it does not execute step S103.
[0073] In step S104 following step S103, the quality control unit 132 first identifies the target communication paths (in this case, each of the communication paths K2a and K2b) for which the processing column 122b in the management table 122 is set to "not yet". Subsequently, the quality control unit 132 sets the communication quality in the identified communication paths to a quality equal to or higher than a predetermined quality.
[0074] When "not yet" is set in the processing column 122b corresponding to the communication path K2, the quality control unit 132 operates, for example, as follows.
[0075] The quality control unit 132 first identifies, as target packets, each of a packet indicating one end of the communication path K2 as the source and the other end of the communication path K2 as the destination, and a packet indicating one end of the communication path K2 as the destination and the other end of the communication path K2 as the source.
[0076] Subsequently, the quality control unit 132 sets the communication quality in the communication path K2 to a quality equal to or higher than a predetermined quality by causing the communication devices 71 to 74 to perform priority control and bandwidth control on the target packets.
[0077] For this reason, QoS control is started for the communication in the communication path K2. Note that the quality control unit 132 may cause the communication devices 71 to 74 to perform only one of priority control and bandwidth control.
[0078] Subsequently, the quality control unit 132 changes the processing column 122b corresponding to the communication path for which QoS control has been started in the processing column 122b from "not completed" to "completed".
[0079] Subsequently, in step S105, the providing unit 131 provides the one-time pass P1 to the node 20 which is the source of the request C1. Providing the one-time pass P1 to the source of the request C1 means approval of the request C1.
[0080] When the operation control unit 251 of the node 20 receives the one-time pass P1, it performs a handshake with the node 40 in step S106. The operation control unit 251 of the node 20 transmits the one-time pass P1 and the transaction data D1 to the node 40 in the handshake. At the time of execution of step S106, QoS control is being performed for the communication in the communication path K2b. For this reason, the time required for the communication of the transaction data D1 is shortened.
[0081] When the verification unit 254 of the node 40 receives the transaction data D1 from the node 20, it verifies the transaction data D1 in step S107. Hereinafter, it is assumed that the verification result of the transaction data D1 indicates validity.
[0082] Also, when the operation control unit 251 of node 20 receives the one-time path P1, it performs a handshake with node 30 in step S108. The operation control unit 251 of node 20 transmits the one-time path P1 and the transaction data D1 to node 30 during the handshake. When step S108 is executed, QoS control is performed for the communication on the communication path K2a. Therefore, the time required for the communication of the transaction data D1 is shortened.
[0083] When the verification unit 254 of node 30 receives the transaction data D1 from node 20, it verifies the transaction data D1 in step S109. Hereinafter, it is assumed that the verification result of the transaction data D1 indicates validity.
[0084] Steps S108 to S109 may be executed earlier in time than steps S106 to S107. Steps S108 to S109 may be executed in parallel with steps S106 to S107. In this case, the time required for steps S106 to S109 can be shortened compared to the configuration in which steps S106 to S107 and steps S108 to S109 are executed in order.
[0085] When the verification result of the transaction data D1 in step S107 indicates validity, the second request unit 253 of node 40 transmits the request C2 and the one-time path P1 to the management device 10 in step S110.
[0086] The request C2 indicates a request for control of the quality of communication on the communication path K1. The communication path K1 is a communication path used by node 40 to provide the transaction data D1.
[0087] Communication on communication path K1 includes packet communication that designates the node constituting one end of communication path K1 as the source node and the node constituting the other end of communication path K1 as the destination node. Communication on communication path K1 further includes packet communication that designates the node constituting one end of communication path K1 as the destination node and the node constituting the other end of communication path K1 as the source node.
[0088] One end of communication path K1 is node 40. Node 40 is an example of a receiving node. The other end of communication path K1 is a node different from the node (node 20) that transmitted the one-time pass P1 to node 40, and is a node (first connection node) that connects to node 40 without passing through any of the nodes belonging to group A1 among the nodes belonging to group A1. Hereinafter, the node constituting the other end of communication path K1 is also referred to as "connection destination node N1".
[0089] When there are a plurality of connection destination nodes N1, the second request unit 253 of node 40 designates communication path K1 for each connection destination node N1. In the example shown in FIG. 1, there are two connection destination nodes N1 (nodes 50 and 60). Therefore, the second request unit 253 of node 40 designates two communication paths K1 (each of communication paths K1a and K1b) in request C2.
[0090] One end of communication path K1a is node 40, and the other end of communication path K1a is node 50. One end of communication path K1b is node 40, and the other end of communication path K1b is node 60. Communication path K1 (each of communication paths K1a and K1b) is an example of a first communication path.
[0091] Requirement C2 indicates the IP address of the node constituting one end of communication path K1 as the information for identifying the node constituting one end of communication path K1. The information for identifying the node constituting one end of communication path K1 is not limited to the IP address of the node constituting one end of communication path K1 and can be appropriately changed. Requirement C2 indicates the IP address of the node constituting the other end of communication path K1 as the information for identifying the node constituting the other end of communication path K1. The information for identifying the node constituting the other end of communication path K1 is not limited to the IP address of the node constituting the other end of communication path K1 and can be appropriately changed.
[0092] When the quality control unit 132 of the management device 10 receives the one-time path P1 in addition to requirement C2, in step S111, it registers the communication path K1 indicated by requirement C2 in the target communication path column 122a of the management table 122 in association with the one-time path P1.
[0093] FIG. 6 shows an example in which the communication path K1a (communication path between node 40 and node 50) and the communication path K1b (communication path between node 40 and node 60) are registered in the target communication path column 122a in association with the one-time path P1.
[0094] In step S111, the quality control unit 132 reads, for each communication path K1, from requirement C2, the IP address of the node constituting one end of communication path K1 and the IP address of the node constituting the other end of communication path K1. Subsequently, for each communication path K1, the quality control unit 132 registers the IP address of the node constituting one end of communication path K1 and the IP address of the node constituting the other end of communication path K1 in the target communication path column 122a as the information indicating communication path K1 in association with the one-time path P1.
[0095] When the quality control unit 132 newly registers the information indicating the communication path in the target communication path column 122a, it sets the processing column 122b corresponding to the communication path in the management table 122 to "not yet".
[0096] Note that if the quality control unit 132 receives the requirement C2 but does not receive the one-time pass P1, it does not execute step S111.
[0097] In step S112 following step S111, the quality control unit 132 first identifies the target communication paths (in this case, each of communication paths K1a and K1b) for which the processing column 122b of the management table 122 is set to "not yet". Subsequently, the quality control unit 132 sets the communication quality in the identified communication paths to a quality equal to or higher than a predetermined quality. The method of setting the communication quality in the identified communication paths to a quality equal to or higher than a predetermined quality is the same as the method in step S104.
[0098] If "not yet" is set in the processing column 122b corresponding to the communication path K1, the quality control unit 132 operates as follows, for example.
[0099] The quality control unit 132 first identifies, as target packets, each of a packet indicating one end of the communication path K1 as the source and the other end of the communication path K1 as the destination, and a packet indicating one end of the communication path K1 as the destination and the other end of the communication path K1 as the source.
[0100] Subsequently, the quality control unit 132 sets the communication quality in the communication path K1 to a quality equal to or higher than a predetermined quality by causing the communication devices 71 to 74 to perform priority control and bandwidth control on the target packets.
[0101] Therefore, QoS control is started for the communication in the communication path K1. Note that the quality control unit 132 may cause the communication devices 71 to 74 to perform only one of priority control and bandwidth control.
[0102] Subsequently, the quality control unit 132 changes the processing column 122b corresponding to the communication path for which QoS control has been started in the processing column 122b from "not yet" to "completed".
[0103] Subsequently, in step S113, the quality control unit 132 transmits execution information G1 indicating the execution of QoS control to node 40, which is the source of request C2.
[0104] When the operation control unit 251 of node 40 receives the execution information G1, it performs a handshake with node 50 in step S114. In the handshake, the operation control unit 251 of node 40 transmits the one-time pass P1 and the transaction data D1 to node 50. When step S114 is executed, QoS control is being performed for the communication on communication path K1a. Therefore, the time required for the communication of the transaction data D1 is shortened.
[0105] When the verification unit 254 of node 50 receives the transaction data D1 from node 40, it verifies the transaction data D1 in step S115. Hereinafter, it is assumed that the verification result of the transaction data D1 indicates validity.
[0106] Also, when the operation control unit 251 of node 40 receives the execution information G1, it performs a handshake with node 60 in step S116. In the handshake, the operation control unit 251 of node 40 transmits the one-time pass P1 and the transaction data D1 to node 60. When step S116 is executed, QoS control is being performed for the communication on communication path K1b. Therefore, the time required for the communication of the transaction data D1 is shortened.
[0107] When the verification unit 254 of node 60 receives the transaction data D1 from node 40, it verifies the transaction data D1 in step S117. Hereinafter, it is assumed that the verification result of the transaction data D1 indicates validity.
[0108] Steps S116 to S117 may be executed earlier in time than steps S114 to S115. Steps S116 to S117 may be executed in parallel with steps S114 to S115. In this case, the time required for steps S114 to S117 can be shortened compared to the configuration where steps S114 to S115 and steps S116 to S117 are executed in order.
[0109] When step S116 is completed, the block generation unit 255 of node 40 starts generating (mining) block B1 including transaction data D1 in step S118.
[0110] When step S115 is completed, the block generation unit 255 of node 50 starts generating (mining) block B1 including transaction data D1 in step S119.
[0111] When step S117 is completed, the block generation unit 255 of node 60 starts generating (mining) block B1 including transaction data D1 in step S120.
[0112] When the block generation unit 255 of node 50 succeeds in generating (mining) block B1 including transaction data D1 in step S121, the operation control unit 251 of node 50 connects the block B1 to the blockchain BC in the storage device 24. Subsequently, the operation control unit 251 of node 50 transmits the block B1 to node 40 in step S122. When step S122 is executed, QoS control is performed for the communication on the communication path K1a. Therefore, the time required for the communication of block B1 is shortened.
[0113] When the verification unit 254 of node 40 receives block B1, it verifies block B1 in step S123. If the verification result of block B1 indicates validity, the verification unit 254 of node 40 connects the block B1 to the blockchain BC in the storage device 24 of node 40.
[0114] Subsequently, the operation control unit 251 of node 40 transmits block B1 to node 60 in step S124. When step S124 is executed, QoS control is performed for the communication on the communication path K1b. Therefore, the time required for the communication of block B1 is shortened.
[0115] When the verification unit 254 of node 60 receives block B1, it verifies block B1 in step S125. If the verification result of block B1 indicates validity, the verification unit 254 of node 60 connects block B1 to the blockchain BC in the storage device 24 of node 60.
[0116] Subsequent to step S124, the operation control unit 251 of node 40 transmits block B1 to node 20 in step S126. When step S126 is executed, QoS control is performed for the communication on communication path K2b. For this reason, the time required for the communication of block B1 is shortened. Step S126 may be executed earlier in time than step S124, or may be executed in parallel with step S124.
[0117] When the verification unit 254 of node 20 receives block B1, it verifies block B1 in step S127. If the verification result of block B1 indicates validity, the verification unit 254 of node 20 connects block B1 to the blockchain BC in the storage device 24 of node 20.
[0118] Subsequently, the operation control unit 251 of node 20 transmits block B1 to node 30 in step S128. When step S128 is executed, QoS control is performed for the communication on communication path K2a. For this reason, the time required for the communication of block B1 is shortened.
[0119] When the verification unit 254 of node 30 receives block B1, it verifies block B1 in step S129. If the verification result of block B1 indicates validity, the verification unit 254 of node 30 connects block B1 to the blockchain BC in the storage device 24 of node 30.
[0120] <Summary of the First Embodiment> According to the first embodiment, when the providing unit 131 receives a request C1 from a first node (for example, node 20) requesting control of the quality of communication for adding data to the blockchain BC, the providing unit 131 provides the first node with a one-time path P1. When the quality control unit 132 receives a one-time path P1 in addition to a request C2 requesting control of the quality of communication in the first communication path from a receiving node that has received the one-time path P1 in a situation in which the one-time path P1 is communicated within the group A1, the quality control unit 132 sets the quality of communication in the first communication path to a quality equal to or higher than a predetermined quality. One end of the first communication path is the receiving node. The other end of the first communication path is a node different from the node that transmitted the one-time path P1 to the receiving node, and is a node that is connected to the receiving node among the nodes belonging to the group A1 without passing through any node belonging to the group A1.
[0121] Therefore, compared to a configuration in which the quality of communication on any communication path between multiple nodes belonging to group A1 is not set to a predetermined quality or higher, the delay in the timing at which data is added to the blockchain BC can be reduced. Therefore, the nodes can be supported to reduce the delay in the timing at which data is added to the blockchain BC.
[0122] Furthermore, the QoS control is executed when the transaction data D1 is generated, so that the QoS control can be started from the timing when the QoS control is required.
[0123] In addition, QoS control can be performed only on communications on the communication paths required to add data to the blockchain BC.
[0124] <B:変形例> The following are modified aspects of the above-described embodiment. Two or more aspects selected from the following modified aspects may be combined as appropriate within the scope of not being mutually contradictory.
[0125] <B1:第1変形例> In the first embodiment, QoS control does not need to be performed on the communication of the transaction data D1.
[0126] In the first embodiment, a modified example will be described as the first modified example in which QoS control is not executed for the communication of the transaction data D1, and QoS control is executed for the communication of the block B1 including the transaction data D1. Hereinafter, the first modified example will be described centering on the points different from the first embodiment.
[0127] The hardware configuration in the first modified example is the same as the hardware configuration in the first embodiment. FIGS. 9 and 10 are diagrams for explaining the operation of the first modified example.
[0128] In the first modified example, QoS control is started starting from the node 50 that has successfully generated (mined) the block B1. In this case, the node 50 becomes an example of the first node, and the nodes 20, 30, 40, and 60 become examples of a plurality of second nodes.
[0129] When the input device 21 of the node 20 receives content information indicating the content of a transaction to be newly added to the blockchain BC from the user of the node 20, the operation control unit 251 of the node 20 generates the transaction data D1 based on the content information.
[0130] When the operation control unit 251 of the node 20 generates the transaction data D1, in step S201, it transmits the transaction data D1 to the node 40.
[0131] When the verification unit 254 of the node 40 receives the transaction data D1 from the node 20, in step S202, it verifies the transaction data D1. Hereinafter, it is assumed that the verification result of the transaction data D1 indicates validity.
[0132] After the completion of step S201, the operation control unit 251 of the node 20 transmits the transaction data D1 to the node 30 in step S203.
[0133] When the verification unit 254 of node 30 receives the transaction data D1 from node 20, it verifies the transaction data D1 in step S204. In the following, it is assumed that the verification result of the transaction data D1 indicates validity.
[0134] Steps S203 - S204 may be executed earlier in time than steps S201 - S202. Steps S203 - S204 may also be executed in parallel with steps S201 - S202. In this case, compared with the configuration where steps S201 - S202 and steps S203 - S204 are executed in order, the time required for steps S201 - S204 can be shortened.
[0135] When the verification result of the transaction data D1 in step S202 indicates validity, the operation control unit 251 of node 40 transmits the transaction data D1 to node 50 in step S205.
[0136] When the verification unit 254 of node 50 receives the transaction data D1 from node 40, it verifies the transaction data D1 in step S206. In the following, it is assumed that the verification result of the transaction data D1 indicates validity.
[0137] After the completion of step S205, the operation control unit 251 of node 40 transmits the transaction data D1 to node 60 in step S207.
[0138] When the verification unit 254 of node 60 receives the transaction data D1 from node 40, it verifies the transaction data D1 in step S208. In the following, it is assumed that the verification result of the transaction data D1 indicates validity.
[0139] Steps S207 - S208 may be executed earlier in time than steps S205 - S206. Steps S207 - S208 may also be executed in parallel with steps S205 - S206. In this case, compared with the configuration where steps S205 - S206 and steps S207 - S208 are executed in order, the time required for steps S205 - S208 can be shortened.
[0140] When step S207 is completed, the block generation unit 255 of node 40 starts generating (mining) block B1 including transaction data D1 in step S118.
[0141] When step S206 is completed, the block generation unit 255 of node 50 starts generating (mining) block B1 including transaction data D1 in step S119.
[0142] When step S208 is completed, the block generation unit 255 of node 60 starts generating (mining) block B1 including transaction data D1 in step S120.
[0143] When the block generation unit 255 of node 50 succeeds in generating (mining) block B1 including transaction data D1 in step S121, the first request unit 252 of node 50 transmits request C1 to the management device 10 in step S209. Request C1 indicates a request for QoS control for communication related to transaction data D1.
[0144] In step S209, the first request unit 252 of node 50 transmits request C1 accompanied by request C3 to the management device 10. Request C3 indicates a request for control of the quality of communication on communication path K2. In this case, communication path K2 is the communication path used by node 50 to provide block B1. One end of communication path K2 is node 50. The other end of communication path K2 is node 40 (destination node N2) that connects to node 50 without passing through any of the plurality of second nodes (nodes 30, 40, 50, and 60). In the example shown in FIG. 1, there is one destination node N2 (node 40). Therefore, the first request unit 252 of node 50 designates one communication path K2.
[0145] When the providing unit 131 of the management device 10 receives request C1 from node 50, it issues a one-time pass P1 in step S210.
[0146] When requirement C1 is accompanied by requirement C3, in step S211, the providing unit 131 registers the communication path K2 indicated in requirement C3 in the target communication path column 122a of the management table 122 in association with the one-time pass P1.
[0147] When the providing unit 131 newly registers information indicating a communication path in the target communication path column 122a, in the management table 122, the processing column 122b corresponding to the communication path is set to "not yet".
[0148] Note that when the providing unit 131 receives requirement C1 but does not receive requirement C3, step S211 is not executed.
[0149] In step S212 following step S211, the quality control unit 132 first identifies the target communication path (in this case, the communication path K2) in which the processing column 122b of the management table 122 is set to "not yet". Subsequently, the quality control unit 132 sets the communication quality in the identified communication path to a quality equal to or higher than a predetermined quality. The method of setting the communication quality regarding the identified communication path to a quality equal to or higher than a predetermined quality is the same as the method in step S104.
[0150] Subsequently, the quality control unit 132 changes the processing column 122b corresponding to the communication path for which QoS control has started in the processing column 122b from "not yet" to "completed".
[0151] Subsequently, in step S213, the providing unit 131 provides the one-time pass P1 to the node 50 that is the transmission source of requirement C1.
[0152] When the operation control unit 251 of the node 50 receives the one-time pass P1, in step S214, it transmits the one-time pass P1 and the block B1 to the node 40. When step S214 is executed, QoS control is being performed for the communication in the communication path K2. Therefore, the time required for the communication of the block B1 is shortened.
[0153] When the verification unit 254 of node 40 receives block B1 from node 50, in step S215, it verifies block B1.
[0154] When the verification result of block B1 in step S215 indicates validity, the second request unit 253 of node 40 transmits request C2a and one-time pass P1 to management device 10 in step S216.
[0155] Request C2a indicates a request for controlling the communication quality on communication path K1. In this case, communication path K1 is the communication path used by node 40 to provide block B1. One end of communication path K1 is node 40. Node 40 is an example of a receiving node. The other end of communication path K1 is a node different from the node (node 50) that transmitted one-time pass P1 to node 40, and is a node (connection destination node N1) that connects to node 40 without passing through any node belonging to group A1 among the nodes belonging to group A1.
[0156] When there are multiple connection destination nodes N1, the second request unit 253 of node 40 designates communication path K1 for each connection destination node N1. In the example shown in FIG. 1, there are two connection destination nodes N1 (nodes 20 and 60). Therefore, the second request unit 253 of node 40 designates two communication paths K1 (communication paths K1a and K1b).
[0157] In this case, one end of communication path K1a is node 40 and the other end is node 20. One end of communication path K1b is node 40 and the other end is node 60. Communication path K1 (each of communication paths K1a and K1b) is an example of a first communication path. Request C2a is an example of a second request for requesting control of the communication quality in the first communication path.
[0158] Requirement C2a indicates the IP address of the node constituting one end of communication path K1 as information for identifying the node constituting one end of communication path K1. The information for identifying the node constituting one end of communication path K1 is not limited to the IP address of the node constituting one end of communication path K1 and can be appropriately changed. Requirement C2a indicates the IP address of the node constituting the other end of communication path K1 as information for identifying the node constituting the other end of communication path K1. The information for identifying the node constituting the other end of communication path K1 is not limited to the IP address of the node constituting the other end of communication path K1 and can be appropriately changed.
[0159] When the quality control unit 132 of the management device 10 receives the one-time path P1 in addition to requirement C2a, in step S217, it registers the communication path K1 indicated by requirement C2a in the target communication path column 122a of the management table 122 in association with the one-time path P1.
[0160] When the quality control unit 132 newly registers information indicating a communication path in the target communication path column 122a, it sets the processing column 122b corresponding to the communication path in the management table 122 to "not yet".
[0161] Note that when the quality control unit 132 receives requirement C2a but does not receive the one-time path P1, it does not execute step S217.
[0162] In step S218 following step S217, the quality control unit 132 first identifies the target communication paths (in this case, each of communication paths K1a and K1b) in which the processing column 122b of the management table 122 is set to "not yet". Subsequently, the quality control unit 132 sets the communication quality in the identified communication paths to a quality equal to or higher than a predetermined quality. The method of setting the communication quality in the identified communication paths to a quality equal to or higher than a predetermined quality is the same as the method in step S112.
[0163] Subsequently, the quality control unit 132 changes the processing column 122b corresponding to the communication path for which QoS control has been started in the processing column 122b from "not yet" to "completed".
[0164] Subsequently, in step S219, the quality control unit 132 transmits execution information G1 indicating the execution of QoS control to node 40, which is the source of request C2a.
[0165] When the operation control unit 251 of node 40 receives the execution information G1, in step S220, it transmits the one-time path P1 and the block B1 to node 60. When step S220 is executed, QoS control is being performed for the communication on communication path K1b. Therefore, the time required for the communication of block B1 is shortened.
[0166] When the verification unit 254 of node 60 receives block B1 from node 40, in step S221, it verifies block B1. If the verification result of block B1 indicates validity, the verification unit 254 of node 60 connects block B1 to the blockchain BC in the storage device 24 of node 60.
[0167] After the completion of step S220, the operation control unit 251 of node 40 transmits the one-time path P1 and the block B1 to node 60 in step S222. When step S222 is executed, QoS control is being performed for the communication on communication path K1a. Therefore, the time required for the communication of block B1 is shortened.
[0168] When the verification unit 254 of node 20 receives block B1 from node 40, in step S223, it verifies block B1. If the verification result of block B1 indicates validity, the verification unit 254 of node 20 connects block B1 to the blockchain BC in the storage device 24 of node 20.
[0169] Steps S222 to S223 may be executed earlier in time than steps S220 to S221. Steps S222 to S223 may also be executed in parallel with steps S220 to S221. In this case, compared to the configuration where steps S220 to S221 and steps S222 to S223 are executed in order, the time required for steps S220 to S223 can be shortened.
[0170] When the verification result of block B1 in step S223 indicates validity, the second request unit 253 of node 20 transmits request C2b and one-time path P1 to management device 10 in step S224.
[0171] Request C2b indicates a request for controlling the communication quality on communication path K1c. Communication path K1c is the communication path used by node 20 to provide block B1. One end of communication path K1c is node 20. Node 20 is an example of a receiving node. The other end of communication path K1c is a node different from the node (node 40) that transmitted one-time path P1 to node 20, and is a node that connects to node 20 without passing through any node belonging to group A1 among the nodes belonging to group A1 (destination node N3). In the example shown in FIG. 1, there is one destination node N3 (node 30). Therefore, the second request unit 253 of node 20 designates one communication path K1c. Communication path K1c is an example of a first communication path. Request C2b is an example of a second request for requesting control of the communication quality on the first communication path.
[0172] As information for identifying the node constituting one end of communication path K1c, request C2b indicates the IP address of the node constituting one end of communication path K1c. The information for identifying the node constituting one end of communication path K1c is not limited to the IP address of the node constituting one end of communication path K1c and can be appropriately changed. As information for identifying the node constituting the other end of communication path K1c, request C2b indicates the IP address of the node constituting the other end of communication path K1c. The information for identifying the node constituting the other end of communication path K1c is not limited to the IP address of the node constituting the other end of communication path K1c and can be appropriately changed.
[0173] When the quality control unit 132 of management device 10 receives one-time path P1 in addition to request C2b, in step S225, it registers communication path K1c indicated by request C2b in column 122a of the target communication path in management table 122 in association with one-time path P1.
[0174] When the quality control unit 132 newly registers information indicating a communication path in the target communication path column 122a, it sets the processing column 122b corresponding to the communication path in the management table 122 to "not yet".
[0175] Note that when the quality control unit 132 receives request C2b but does not receive the one-time pass P1, it does not execute step S225.
[0176] In step S226 following step S225, the quality control unit 132 first identifies the target communication path (in this case, communication path K1c) for which the processing column 122b in the management table 122 is set to "not yet". Subsequently, the quality control unit 132 sets the communication quality in the identified communication path to a quality equal to or higher than a predetermined quality. The method of setting the communication quality in the identified communication path to a quality equal to or higher than a predetermined quality is the same as the method in step S112.
[0177] Subsequently, the quality control unit 132 changes the processing column 122b corresponding to the communication path for which QoS control has started in the processing column 122b from "not yet" to "completed".
[0178] Subsequently, in step S227, the quality control unit 132 transmits execution information G1 indicating the execution of QoS control to node 20, which is the source of request C2b.
[0179] When the operation control unit 251 of node 20 receives the execution information G1, in step S228, it transmits the one-time pass P1 and block B1 to node 30. When step S228 is executed, QoS control is being performed on the communication in communication path K1c. Therefore, the time required for the communication of block B1 is shortened.
[0180] When the verification unit 254 of node 30 receives block B1 from node 20, it verifies block B1 in step S229. If the verification result of block B1 indicates validity, the verification unit 254 of node 30 connects block B1 to the blockchain BC in the storage device 24 of node 30.
[0181] If the delay in the communication of block B1 is small, the block B1 is more likely to arrive at each node earlier than other blocks B1. If the block B1 arrives at each node earlier than other blocks B1, the probability that the block B1 is connected to the blockchain BC increases. Therefore, a small delay in the communication of block B1 is desirable not only for users who expect early confirmation of transaction data D1 but also for miner nodes that generate block B1.
[0182] According to the first modification example, QoS control is not performed for the communication of the transaction data D1, and QoS control is performed for the communication of the block B1 including the transaction data D1. Therefore, the delay in the communication of block B1 can be reduced. Thus, compared to a configuration in which QoS control is not performed for either the communication of the transaction data D1 or the communication of the block B1 including the transaction data D1, early confirmation of the transaction data D1 becomes possible, and the probability that the block B1 is connected to the blockchain BC can be increased.
[0183] <B2: Second Modification Example> In the first embodiment, the quality control unit 132 may determine the authenticity of the source of the request C2.
[0184] The quality control unit 132 receives a transmission destination list indicating the nodes to which the one-time path P1 is transmitted from the node (for example, node 20) that transmits the one-time path P1 among the nodes in the group A1. The transmission destination list is an example of node information indicating the nodes to which predetermined information is transmitted. When the node that is the source of the request C2 and the one-time path P1 matches the node indicated in the transmission destination list, the quality control unit 132 determines that, in addition to the request C2, the one-time path P1 has been received from the receiving node that received the one-time path P1 from the node that transmits the one-time path P1. When the node that is the source of the request C2 and the one-time path P1 does not match the node indicated in the transmission destination list, the quality control unit 132 determines that the request C2 is invalid.
[0185] For example, the quality control unit 132 receives a destination list indicating the nodes (nodes 30 and 40) that are the destinations of the one-time path P1 from the node 20 that has sent the one-time path P1 to each of the nodes 30 and 40. When the source of the request C2 and the one-time path P1 is indicated in the destination list, the quality control unit 132 determines that it has received the request C2 and the one-time path P1 from the receiving node (node 30 or 40) that has received the one-time path P1 from the node 20. When the source of the request C2 and the one-time path P1 is not indicated in the destination list L1, the quality control unit 132 determines that the request C2 is invalid.
[0186] Note that in the first modification example, at least one of the requests C2a and C2b may be used instead of the request C2.
[0187] For example, the quality control unit 132 receives a destination list indicating the nodes that are the destinations of the one-time path P1 from the node (e.g., node 20) that transmits the one-time path P1 among the nodes in group A1.
[0188] When the source of the request C2a and the one-time path P1 is indicated in the destination list, the quality control unit 132 determines that it has received the request C2a and the one-time path P1 in addition to the request C2a from the receiving node that has received the one-time path P1 from the node that transmits the one-time path P1. When the source of the request C2a and the one-time path P1 is not indicated in the destination list, the quality control unit 132 determines that the request C2a is invalid.
[0189] When the source of the request C2b and the one-time path P1 is indicated in the destination list, the quality control unit 132 determines that it has received the request C2b and the one-time path P1 in addition to the request C2b from the receiving node that has received the one-time path P1 from the node that transmits the one-time path P1. When the source of the request C2b and the one-time path P1 is not indicated in the destination list, the quality control unit 132 determines that the request C2b is invalid.
[0190] According to the second modification example, for example, each of requests C2, C2a, and C2b from a node that obtained the one-time pass P1 through an improper route can be invalidated.
[0191] <B3: Third Modification Example> In the first embodiment and the first to second modification examples, the quality control unit 132 may return the quality of communication set to a quality equal to or higher than a predetermined quality to the quality of communication before being set to a quality equal to or higher than the predetermined quality.
[0192] Request C1 requests control of the quality of communication related to the transaction data D1 within group A1. That is, request C1 is a request for controlling the quality of communication related to the transaction data D1 within group A1. The transaction data D1 indicates any one of a plurality of second nodes as a transaction destination node (see FIG. 8). In response to a notification indicating that the transaction destination node (transaction node) has received the block B1 including the transaction data D1, the quality control unit 132 returns the quality equal to or higher than a predetermined quality in the communication related to the transaction data D1 within group A1 to the quality before being set to a quality equal to or higher than the predetermined quality.
[0193] For example, when node 30 indicated as the transaction destination node in the transaction data D1 receives the block B1 including the transaction data D1, the operation control unit 251 of node 30 transmits a notification M1 to the management device 10. The notification M1 indicates that the transaction destination node has received the block B1 including the transaction data D1.
[0194] In response to the notification M1, the quality control unit 132 of the management device 10 returns the quality of communication set to a quality equal to or higher than a predetermined quality to the quality of communication before being set to a quality equal to or higher than the predetermined quality. For example, the quality control unit 132 deletes the information (one-time pass P1 and communication path) registered in the management table 122 and the information ("not yet" and "completed") set in the management table 122 in response to the reception of the notification M1. The quality control unit 132 then executes control of communication quality using the management table 122 (for example, the control method in step S104). In this case, the communication devices 71 to 74 return to the state before being controlled by the quality control unit 132 (for example, a predetermined state).
[0195] For example, when a predetermined time (e.g., 2 minutes) has elapsed since the quality control unit 132 received the notification M1, the communication quality set to a quality equal to or higher than a predetermined quality is returned to the communication quality before being set to a quality equal to or higher than the predetermined quality. The predetermined time is not limited to 2 minutes, and may be longer than 2 minutes or shorter than 2 minutes. It is desirable that the predetermined time be longer than the time until a new block B1 reaches all the nodes in the group A1.
[0196] According to the third modification example, it is possible to suppress the communication quality in the group A1 from becoming high-quality for an unnecessarily long time.
[0197] <B4: Fourth Modification Example> In the first embodiment and the first to third modification examples, the quality control unit 132 may perform QoS control on the communication in some communication paths instead of the communication in all the communication paths between a plurality of nodes belonging to the group A1.
[0198] According to the fourth modification example, compared with a configuration in which QoS control is not performed on the communication in any communication path between a plurality of nodes belonging to the group A1, the delay in the timing at which data is added to the blockchain BC can be reduced.
[0199] <C: Others> (1) In each of the first embodiment and the first to fourth modification examples, the storage devices 12 and 24 may include a flexible disk, a magneto-optical disk (e.g., a compact disk, a digital versatile disk, a Blu-ray (registered trademark) disk), a smart card, a flash memory device (e.g., a card, a stick, a key drive), a CD-ROM (Compact Disc-ROM), a register, a removable disk, a hard disk, a floppy (registered trademark) disk, a magnetic strip, a database, a server, and other appropriate storage media. Further, the program may be transmitted from a network via a telecommunication line.
[0200] (2) Each of the first embodiment, the first to fourth modification examples may be applied to a system using LTE (Long Term Evolution), LTE-A (LTE-Advanced), SUPER 3G, IMT-Advanced, 4G, 5G, FRA (Future Radio Access), W-CDMA (registered trademark), GSM (registered trademark), CDMA2000, UMB (Ultra Mobile Broadband), IEEE 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, UWB (Ultra-WideBand), Bluetooth (registered trademark), other appropriate systems, and / or next-generation systems extended based on these.
[0201] (3) Information and the like described in each of the first embodiment, the first to fourth modification examples may be represented using any of various different technologies. For example, data, information, etc. that may be referred to throughout the above description may be represented by voltage, current, electromagnetic waves, magnetic fields, magnetic particles, optical fields, photons, or any combination thereof. Note that terms described in this specification and / or terms necessary for understanding this specification may be replaced with terms having the same or similar meanings.
[0202] (4) In each of the first embodiment, the first to fourth modification examples, the input / output information, etc. may be stored in a specific location (e.g., memory) or may be managed by a table. The input / output information, etc. may be overwritten, updated, or appended. The output information, etc. may be deleted. The input information, etc. may be transmitted to other devices.
[0203] (5) In each of the first embodiment, the first to fourth modification examples, the determination may be made based on a value represented by 1 bit (0 or 1), a Boolean value (true or false), or a numerical comparison (e.g., comparison with a predetermined value).
[0204] (6) In each of the first embodiment and the first to fourth modified examples, the processing procedures, sequences, or flowcharts etc. exemplified may be reordered as long as there is no contradiction. For example, for the methods described in this specification, the elements of various steps are presented in an exemplary order and are not limited to the specific presented order.
[0205] (7) Each function exemplified in FIG. 4 or FIG. 5 is realized by any combination of hardware and software. Also, each function may be realized by a single device or may be realized by two or more devices configured separately from each other.
[0206] (8) The programs exemplified in each of the first embodiment and the first to fourth modified examples should be broadly interpreted to mean instructions, instruction sets, codes, code segments, program codes, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, execution threads, procedures, or functions etc., regardless of whether they are called by names such as software, firmware, middleware, microcode, or hardware description language or by other names. Also, software, or instructions etc. may be transmitted and received via a transmission medium. For example, when software is transmitted from a website, server, or other remote source using wired technologies such as coaxial cables, optical fiber cables, twisted pairs, and digital subscriber lines (DSL) and / or wireless technologies such as infrared rays, wireless, and microwaves, these wired technologies and / or wireless technologies are included within the definition of the transmission medium.
[0207] (9) In each of the first embodiment and the first to fourth modified examples, the terms "system" and "network" are used interchangeably.
[0208] (10) In each of the first embodiment and the first to fourth modified examples, at least one of the nodes 20, 30, 40, 50, and 60 may be a mobile station. A mobile station may be referred to by those skilled in the art using a subscriber station, mobile unit, subscriber unit, wireless unit, remote unit, mobile device, wireless device, wireless communication device, remote device, mobile subscriber station, access terminal, mobile terminal, wireless terminal, remote terminal, handset, user agent, mobile client, client, or some other suitable term.
[0209] (11) In each of the first embodiment and the first to fourth modified examples, the description "based on" does not mean "only based on" unless otherwise specified. In other words, the description "based on" means both "only based on" and "at least based on".
[0210] (12) Any reference to an element using designations such as "first" and "second" used in this specification does not generally limit the quantity or order of those elements. These designations may be used in this specification as a convenient way to distinguish between two or more elements. Therefore, a reference to a first and a second element does not mean that only two elements can be employed or that the first element must precede the second element in any form.
[0211] (13) As long as the terms "including", "comprising", and their variants are used in this specification or in the claims in each of the first embodiment and the first to fourth modified examples, these terms are intended to be inclusive, similar to the term "comprise". Further, the term "or" used in this specification or in the claims is intended not to be an exclusive disjunction.
[0212] Throughout this application, when articles are added by translation, such as a, an, and the in English, these articles include the plural form unless the context clearly indicates otherwise.
[0213] (15) As used herein, the term "apparatus" may be construed as other terms such as a circuit, device, or unit.
[0214] (16) It is obvious to those skilled in the art that the present invention is not limited to the embodiments described herein. The present invention can be implemented in modified and changed forms without departing from the spirit and scope of the present invention as defined by the claims. Therefore, the description herein is for illustrative purposes only and has no restrictive meaning for the present invention. Also, a plurality of aspects selected from the aspects exemplified herein may be combined.
[0215] <D: Aspects grasped from the above-described embodiments or modified examples> The following aspects are grasped from at least one of the above-described embodiments or modified examples.
[0216] <D1: First aspect> The management device according to the first aspect includes a providing unit and a quality control unit. When the providing unit receives, from the first node, a first request for controlling the quality of communication within a group composed of the first node that shares a blockchain and a plurality of second nodes and executes communication for adding additional data to the blockchain, the providing unit provides the first node with first information corresponding to the first request. When the quality control unit receives the first information from a receiving node that has received the first information among the plurality of second nodes in a situation where the first information is communicated within the group, in addition to a second request for controlling the quality of communication in the first communication path, the quality control unit sets the quality of communication in the first communication path to a quality equal to or higher than a first quality when receiving the first information. The first communication path includes a first end and a second end. The first end is the receiving node. The second end is a first connection node different from the node that transmitted the first information to the receiving node, and is a first connection node that connects to the receiving node without passing through any node belonging to the group among the nodes belonging to the group. According to this aspect, the quality of communication in the first communication path can be set to a quality equal to or higher than the first quality. Therefore, compared to a configuration in which the quality of communication in any communication path among a plurality of nodes belonging to the group is not set to a quality equal to or higher than the first quality, the delay in the timing at which additional data is added to the blockchain can be reduced. Thus, it is possible to assist the nodes in reducing the delay in the timing of adding additional data to the blockchain.
[0217] <D2: Second Aspect> In an example of the first aspect (second aspect), the communication in the first communication path is communication executed by the receiving node and the first connection node. The communication executed by the receiving node constituting one end of the first communication path and the first connection node constituting the other end of the first communication path includes communication for adding additional data to the blockchain. Therefore, compared to a configuration in which the quality of communication in any communication path among a plurality of nodes belonging to the group is not set to a quality equal to or higher than the first quality, the delay in the timing at which additional data is added to the blockchain can be reduced.
[0218] <D3: Third Aspect> In the example of the first aspect or the second aspect (the third aspect), when the first requirement is accompanied by a third requirement for controlling the communication quality in the second communication path, the quality control unit sets the communication quality in the second communication path to a quality equal to or higher than the first quality. The second communication path includes a third end and a fourth end. The third end is the first node. The fourth end is a second connection node that connects to the first node without passing through any of the plurality of second nodes among the plurality of second nodes. According to this aspect, the communication quality in the second communication path can be set to a quality equal to or higher than the first quality. Therefore, compared with a configuration in which the communication in any communication path among a plurality of nodes belonging to a group is not set to a quality equal to or higher than the first quality, the delay in the timing when additional data is added to the blockchain can be reduced.
[0219] <D4: Fourth Aspect> In the example of the third aspect (the fourth aspect), the communication in the second communication path is communication executed by the first node and the second connection node. The communication executed by the first node constituting one end of the second communication path and the second connection node constituting the other end of the first communication path includes communication for adding additional data to the blockchain. Therefore, compared with a configuration in which the communication in any communication path among a plurality of nodes belonging to a group is not set to a quality equal to or higher than the first quality, the delay in the timing when additional data is added to the blockchain can be reduced.
[0220] <D5: Fifth Aspect> In the example of any one of the first aspect to the fourth aspect (the fifth aspect), the first node generates data to be included in a block to be connected to the blockchain. According to this aspect, in response to the generation of the data to be included in the block to be connected to the blockchain, the first requirement can be provided to the providing unit.
[0221] <D6: Sixth Aspect> In an example of any one of the first to fourth aspects (sixth aspect), the first node generates a block to be connected to the blockchain. According to this aspect, in response to the generation of the block to be connected to the blockchain, a first request can be provided to the providing unit.
[0222] <D7: Seventh Aspect> In an example of any one of the first to sixth aspects (seventh aspect), the quality control unit receives node information indicating a node to which the first information is transmitted from a node that transmits the first information among the nodes in the group. When the node that transmits the second request and the first information to the management device matches the node indicated by the node information, the quality control unit determines that the predetermined information has been received from the receiving node in addition to the second request. When the node that transmits the second request and the first information to the management device does not match the node indicated by the node information, the quality control unit determines that the second request is invalid. According to this aspect, a second request from a node that has obtained the first information via an improper route can be invalidated.
[0223] <D8: Eighth Aspect> In an example of any one of the first to seventh aspects (eighth aspect), the additional data is transaction data communicated within the group. The first request is a request for controlling the quality of communication related to the transaction data. The transaction data indicates any one of the plurality of second nodes as a transaction node. In response to a notification indicating that the transaction node has received a block including the transaction data, the quality control unit returns the quality of the communication to the quality before setting the quality to a quality equal to or higher than the first quality. According to this aspect, it is possible to suppress the quality of communication in the group from becoming high-quality for an unnecessarily long time.
[0224] <D9: Ninth Aspect> In the example of the eighth aspect (ninth aspect), when the first hour has elapsed since the reception of the notification, the quality control unit returns the communication quality to the quality before setting the communication quality to a quality equal to or higher than the first quality. According to this aspect, the possibility of maintaining the communication quality in the group at a quality equal to or higher than the first quality can be increased until the block reaches all the nodes in the group.
Explanation of Signs
[0225] 1…Network system, 10…Management device, 11…Communication device, 12…Storage device, 13…Processing device, 131…Provision unit, 132…Quality control unit, 20…Node, 21…Input device, 22…Output device, 23…Communication device, 24…Storage device, 25…Processing device, 251…Operation control unit, 252…First request unit, 253…Second request unit, 254…Verification unit, 255…Block generation unit, 30…Node, 40…Node, 50…Node, 60…Node, 71~74…Communication device.
Claims
1. When receiving a first request from the first node for controlling the quality of communication within a group composed of the first node that shares a blockchain and a plurality of second nodes and executes communication for adding additional data to the blockchain, a providing unit that provides the first node with first information corresponding to the first request; In a situation where the first information is communicated within the group, when receiving the first information in addition to a second request for controlling the quality of communication in a first communication path from a receiving node that has received the first information among the plurality of second nodes, a quality control unit that sets the quality of communication in the first communication path to a quality equal to or higher than a first quality; comprising The first communication path includes a first end and a second end; The first end is the receiving node; The second end is a first connection node different from the node that transmitted the first information to the receiving node and that connects to the receiving node without passing through any node belonging to the group among the nodes belonging to the group; A management device.
2. Communication in the first communication path is communication executed by the receiving node and the first connection node. The management device according to Claim 1.
3. When the first request is accompanied by a third request for controlling the quality of communication in a second communication path, the quality control unit sets the quality of communication in the second communication path to a quality equal to or higher than the first quality; The second communication path includes a third end and a fourth end; The third end is the first node; The fourth end is a second connection node that connects to the first node without passing through any of the plurality of second nodes among the plurality of second nodes; The management device according to Claim 1 or 2.
4. Communication in the second communication path is communication executed by the first node and the second connection node. The management device according to Claim 3.
5. The first node generates data to be included in a block to be connected to the blockchain. The management device according to any one of Claims 1 to 4.
6. The first node generates a block to be connected to the blockchain. The management device according to any one of Claims 1 to 4.
7. The quality control unit Receive node information indicating a node to which the first information is transmitted from a node that transmits the first information among the nodes in the group. When the node that has transmitted the second request and the first information to the management device matches the node indicated in the node information, it is determined that, in addition to the second request, the first information has been received from the receiving node. When the node that has transmitted the second request and the first information to the management device does not match the node indicated in the node information, it is determined that the second request is invalid. The management device according to any one of claims 1 to 6.
8. The additional data is transaction data communicated within the group. The first request is a request for controlling the quality of communication related to the transaction data. The transaction data indicates any one of the plurality of second nodes as a transaction node. In response to a notification indicating that the transaction node has received a block including the transaction data, the quality control unit returns the communication quality to the quality before being set to a quality equal to or higher than the first quality. The management device according to any one of claims 1 to 7.
9. When a first period of time has elapsed since the reception of the notification, the quality control unit returns the communication quality to the quality before being set to a quality equal to or higher than the first quality. The management device according to claim 8.
Citation Information
Patent Citations
Message transmission method and device
CN111934990A
Message transmission method and device
CN111934998A
NETWORK QoS CONTROL SYSTEM AND CONTROL METHOD
JP2006262379A
Communication system and communication control device
JP2011135422A
Data transmission device, data transmission / reception system, data reception device, data transmission method, and program
JP2019161580A