Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020115496 - A NODE TESTING METHOD AND APPARATUS FOR A BLOCKCHAIN SYSTEM

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ EN ]

CLAIMS

1. A method for a blockchain system comprising a plurality of nodes, the method comprising:

testing, by a first node of the blockchain system, a second node of the blockchain system, the test comprising:

sending, from the first node to the second node, a volume of data to be hashed by the second node, wherein the volume of data is sent at a first time; receiving at the first node, from the second node, the hash of the volume of data, wherein the hash of the volume of data is received at a second time;

determining, by the first node, whether the received hash of the volume of data matches an expected hash of the volume of data;

determining, by the first node, a time difference between the first time and the second time; and

determining, by the first node, whether or not the second node is eligible to be selected as a confirming node of the blockchain system based on the determined time difference and whether the received hash of the volume of data matches the expected hash of the volume of data.

2. The method of claim 1 , wherein the second node is determined, by the first node, to be eligible to be selected as a confirming node if the determined time difference for a given volume of data is below a threshold time and the received hash matches the expected hash.

3. The method of claim 2, wherein the testing, by the first node of the blockchain system, of the second node of the blockchain system is performed at a random time during each time period of a series of consecutive time periods.

4. The method of claim 3, wherein the second node is determined, by the first node, to not be eligible to be selected as a confirming node if the determined time difference for the given volume of data is above the threshold time and/or the received hash does not match the expected hash for n consecutive time periods, where n is a positive non-zero integer.

5. The method of any preceding claim, wherein the received hash and the expected hash are rolling hashes.

6. The method of any of claims 2 to 5, further comprising determining, by the first node, an uptime for the second node based on the duration for which each test has determined that the time difference for a given volume of data is below the threshold time and the received hash matches the expected hash; wherein the second node is only determined to be eligible to be selected as a confirming node of the blockchain system if the uptime is longer than a threshold duration.

7. The method of any preceding claim, further comprising:

testing, by the first node of the blockchain system, a plurality of further nodes of the blockchain system; and

ranking, by the first node, the second node and the plurality of further nodes based on the respective determined time differences;

wherein the second node is only determined to be eligible to be selected as a confirming node of the blockchain system if the second node is determined to be ranked in the top number or percentage of the plurality of nodes of the blockchain system.

8. The method of any preceding claim, further comprising appending the determined time difference and/or the determined eligibility of the second node to a further blockchain.

9. A node apparatus for a blockchain system comprising a plurality of nodes, wherein the node apparatus is a first node of the blockchain system that is configured to test a second node of the blockchain system, the first node comprising:

a network interface configured to send a volume of data to the second node at a first time, wherein the volume of data is to be hashed by the second node; the network interface being further configured to receive the hash of the volume of data from the second node at a second time;

one or more processors configured to determine whether the received hash of the volume of data matches an expected hash of the volume of data; to determine a time difference between the first time and the second time; and to determine whether or not the second node is eligible to be selected as a confirming node of the blockchain system based on the determined time difference and whether the received hash of the volume of data matches the expected hash of the volume of data.

10. The apparatus of claim 9, wherein the one or more processors are configured to determine that the second node is eligible to be selected as a confirming node if the

determined time difference for a given volume of data is below a threshold time and the received hash matches the expected hash.

11. The apparatus of claim 10, wherein the network interface is configured to send a volume of data to the second node at a random time during each time period of a series of consecutive time periods.

12. The apparatus of claim 11 , wherein the one or more processors are configured to determine that the second node is not eligible to be selected as a confirming node if the determined time difference for a given volume of data is determined to be above the threshold time and/or the received hash is determined to not match the expected hash for n consecutive time periods, where n is a positive non-zero integer.

13. The apparatus of any of claims 9 to 12, wherein the received hash and the expected hash are rolling hashes.

14. The apparatus of any of claims 10 to 13, wherein the one or more processors are further configured to determine an uptime for the second node based on the duration for which each test has determined that the time difference for a given volume of data is below the threshold time and the received hash matches the expected hash; wherein the one or more processors are only configured to determine that the second node is eligible to be selected as a confirming node of the blockchain system if the uptime is longer than a threshold duration.

15. The apparatus of any of claims 10 to 14, wherein the apparatus is further configured to test a plurality of nodes of the blockchain system by sending volumes of data to and receiving corresponding hashes from each of the plurality of nodes of the blockchain system and determining the respective time differences;

wherein the one or more processors are further configured to rank the second node and the plurality of further nodes based on the respective determined time differences; and wherein the one or more processors are configured to determine that the second node is eligible to be selected as a confirming node of the blockchain system only if the second node is determined to be ranked in the top number or percentage of the plurality of nodes of the blockchain system.

16. The apparatus of any of claims 10 to 15, wherein the node apparatus is further configured to append the determined time difference and/or the determined eligibility of the second node to a further blockchain.

17. A method for a blockchain system comprising a plurality of nodes, the method comprising:

determining, by a first node, a plurality of confirming nodes for a given period of time, wherein the plurality of confirming nodes are a subset of a plurality of nodes each identified as being eligible to be a confirming node, and wherein the plurality of confirming nodes correspond to the nodes that will confirm new blocks of data to be appended to a blockchain of the blockchain system for the given period of time;

receiving, by the first node, one or more confirmed blocks of data from each of the plurality of confirming nodes; and

determining, by the first node, whether a majority of the respective one or more confirmed blocks of data received from each of the plurality of confirming nodes match each other; and, if so, identifying any confirming nodes from which a confirmed block not matching the majority of the respective confirmed blocks was received as not being eligible to be a confirming node for future periods of time.

18. The method of claim 17, wherein confirming nodes from which a confirmed block not matching the majority of the respective confirmed blocks was received are only identified as not being eligible to be a confirming node for future periods of time if a qualified majority of the respective one or more confirmed blocks of data received from each of the plurality of confirming nodes are determined to match each other.

19. The method of claim 17 or 18, wherein the method further comprises monitoring, by the first node, a time limit for the one or more confirmed blocks of data to be received from each of the plurality of confirming nodes; and identifying, by the first node, any confirming nodes from which a confirmed block was not received during the time limit as not being eligible to be a confirming node for future periods of time.

20. The method of any of claims 17 to 19, wherein the determined plurality of confirming nodes for a given period of time is an odd number of confirming nodes.

21. The method of any of claims 17 to 20, wherein the determined plurality of confirming nodes for a given period of time represent a percentage of the plurality of nodes each identified as being eligible to be a confirming node.

22. The method of any of claims 17 to 21 , further comprising appending to a further blockchain, for each of the plurality of confirming nodes, information regarding whether the respectively received confirmed blocks match the majority of the corresponding received confirmation blocks.

23. A node apparatus for a blockchain system comprising a plurality of nodes, wherein the node apparatus is a first node of the blockchain system that is configured to assess a plurality of nodes each identified as being eligible to be a confirming node of the blockchain system, the first node comprising:

one or more processors configured to determine a plurality of confirming nodes for a given period of time, wherein the plurality of confirming nodes are a subset of the plurality of nodes each identified as being eligible to be a confirming node, and wherein the plurality of confirming nodes correspond to the nodes that will confirm new blocks of data to be appended to a blockchain of the blockchain system for the given period of time; and

a network interface configured to receive one or more confirmed blocks of data from each of the plurality of confirming nodes;

wherein the one or more processors are further configured to determine whether a majority of the respective one or more confirmed blocks of data received from each of the plurality of confirming nodes match each other; and, if so, to identify any confirming nodes from which a confirmed block not matching the majority of the respective confirmed blocks was received as not being eligible to be a confirming node for future periods of time.

24. The apparatus of claim 23, wherein the one or more processors are further configured to identify confirming nodes from which a confirmed block not matching the majority of the respective confirmed blocks was received as not being eligible to be a confirming node for future periods of time only if a qualified majority of the respective one or more confirmed blocks of data received from each of the plurality of confirming nodes are determined to match each other.

25. The apparatus of claim 23 or 24, wherein the one or more processors are further configured to monitor a time limit for the one or more confirmed blocks of data to be received from each of the plurality of confirming nodes; and to identify any confirming

nodes from which a confirmed block was not received during the time limit as not being eligible to be a confirming node for future periods of time.

26. The apparatus of any of claims 23 to 25, wherein the determined plurality of confirming nodes for a given period of time is an odd number of confirming nodes.

27. The apparatus of any of claims 23 to 26, wherein the determined plurality of confirming nodes for a given period of time represent a percentage of the plurality of nodes each identified as being eligible to be a confirming node.

28. The apparatus of any of claims 23 to 27, wherein the node apparatus is further configured to append to a further blockchain, for each of the plurality of confirming nodes, information regarding whether the respectively received confirmed blocks match the majority of the corresponding received confirmation blocks.