Computer-implemented system and method for updating a network's awareness of the topology of a network
A computer-implemented method for updating network topology in P2P systems addresses inefficiencies by using timestamped data sets to efficiently and consistently adapt to changes in network topology, enhancing connectivity and data distribution.
Patent Information
- Application Number
- JP2024083011
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2017-01-31
- Filing Date
- 2024-05-22
- Publication Date
- 2026-02-17
- Estimated Expiration
- 2038-01-29
AI Technical Summary
Existing systems face challenges in efficiently and quickly updating system topologies in distributed networks, particularly in peer-to-peer (P2P) systems, when nodes or peers join or leave, leading to inefficiencies and potential disruptions.
A method and system for updating network topology awareness by using a computer-implemented approach that involves receiving and processing topology data sets with time indications, ordering them based on timestamps, and sharing updates efficiently within the network to ensure consistent and rapid adaptation to changes.
The solution enables efficient, quick, and consistent updates to network topology, optimizing connectivity and data distribution, ensuring the network remains functional and responsive to changes in node or link states.
Smart Images

Figure 0007815328000009 
Figure 0007815328000010 
Figure 0007815328000011
Abstract
Description
[Technical Field]
[0001] The present invention relates generally to system topologies and methods for updating system topologies, and in particular to changing peer-to-peer (P2P) system topologies and methods for updating changing P2P system topologies. The present invention is particularly, but not exclusively, suited to distributed systems and methods of using such distributed systems to implement transactions and / or blockchains. [Background technology]
[0002] As used herein, the term "blockchain" is used to include all forms of electronic, computer-based, distributed ledgers. These include, but are not limited to, blockchain and transaction chain technologies, permissioned and unpermissioned ledgers, shared ledgers, and variations thereof. The most widely known application of blockchain technology is the Bitcoin ledger, although other blockchain implementations have been proposed and developed. While Bitcoin is referred to herein for convenience and illustrative purposes, it should be noted that the present invention is not limited to use with the Bitcoin blockchain, and alternative blockchain implementations and protocols are within the scope of the present invention.
[0003] A blockchain is a consensus-based electronic ledger implemented as a computer-based, decentralized, distributed system composed of blocks. Blocks, in turn, are composed of transactions. Each transaction is a data structure that encodes the transfer of control of digital assets between participants in the blockchain system and contains at least one input and at least one output. Each block contains a hash of the previous block, and blocks chain together to create a permanent, immutable record of all transactions written to the blockchain since its inception. Transactions contain small programs known as scripts embedded in their inputs and outputs. Scripts specify how and by whom the transaction's outputs can be accessed. On the Bitcoin platform, these scripts are written using a stack-based scripting language.
[0004] In order for a transaction to be written to the blockchain, it must be "verified." Network nodes (miners) perform work to ensure each transaction is valid; invalid transactions are rejected by the network. A software client installed on a node performs this validation work on unspent transactions (UTXOs) by running its locking and unlocking scripts. If the execution of the locking and unlocking scripts evaluates to true, the transaction is valid and the transaction is written to the blockchain. Thus, for a transaction to be written to the blockchain, it must i) be verified by the first node that receives the transaction; if the transaction is verified, the node relays the transaction to other nodes in the network; ii) be added to a new block constructed by miners; and iii) be mined, i.e., added to the public ledger of past transactions.
[0005] While blockchain technology is most widely known for its use in implementing cryptocurrencies, digital entrepreneurs are beginning to explore the use of both the cryptocurrency security system on which Bitcoin is based, and the data that can be stored on the blockchain, to implement new systems. It would be highly advantageous if blockchain could be used for automating tasks and processes that are not limited to the cryptocurrency realm. Such solutions would be more diverse in their uses, yet still be able to take advantage of the benefits of blockchain (e.g., permanent, tamper-resistant record of events, decentralized processes, etc.).
[0006] One area of current research is the use of blockchain for the implementation of "smart contracts," which are computer programs designed to automate the execution of machine-readable transactions or terms of agreements. Unlike traditional transactions, which may be written in natural language, smart contracts are machine-executable programs that contain rules that can process inputs to produce an outcome and can cause actions to be performed depending on that outcome.
[0007] Another area of interest related to blockchain is the use of "tokens" (or "colored coins") for the representation and transfer of real-world entities via the blockchain. Potentially sensitive or secret items can be represented by tokens that have no discernible meaning or value. The tokens thus act as identifiers that allow the real-world items to be referenced from the blockchain.
[0008] Various conventional methods are known for managing connections and routing within a network, examples of which are briefly described below.
[0009] US2014286344 relates to distributed connection establishment and restoration within a network. Connection constraints are sent using an extension to a routing protocol used to control forwarding on the network. Nodes maintain a topology and connection database and calculate routes for connections based on the constraints. Nodes install forwarding state for connections if they are on the route calculated for that connection. Because each node has a consistent view of the network topology and is given the constraints associated with the connection, each node in the network calculates the same route for the connection. When a failure occurs, nodes calculate restoration paths for connections based on network-wide priorities, allowing restoration paths to be generated for affected connections without signaling. Time stamps are used to allow nodes to provide events in a consistent order, regardless of the order in which they arrive.
[0010] EP0752795 relates to link reservation in a communication network. It describes a distributed means for setting up, deleting, and updating connections in a communication network, which is robust in the presence of failures. More specifically, a path for a connection is calculated, and a reservation request is sent simultaneously for reservation over a separate channel to each of a set of nodes in the path for the connection to determine whether resources are available for the connection. Upon determining that a link for the connection is available and reserved, a setup message is sent sequentially along a bus between adjacent nodes until the setup message reaches the destination node. The switches in each node then configure themselves to establish the connection in response to the setup message.
[0011] US2004170151 relates to a dynamic network and a routing method for a dynamic network. A dynamic network having a plurality of nodes is described, where routing information is stored in local routing tables in the nodes of the network. A node sends an update request to another node to update its local routing table, and the addressed node sends an update response with the updated routing information to the requesting node. Summary of the Invention
[0012] A challenge with system topology is ensuring that the system remains efficient and fast functioning when topology changes occur, for example, due to new nodes or peers joining the system and / or nodes or peers leaving and returning to operational states.
[0013] It is therefore desirable to provide a solution that includes, among other possible objectives, a system topology and / or a method for updating the system topology, where changes in the topology are detected efficiently and / or quickly.
[0014] It is therefore desirable to provide a solution that includes, among other possible objectives, a system topology and / or a method for updating the system topology, whereby topology changes are efficiently and / or quickly communicated within the system.
[0015] It is therefore desirable to provide a solution that includes, among other possible objectives, a system topology and / or a method for updating the system topology, whereby topology changes are updated consistently and / or efficiently and / or quickly throughout the network.
[0016] Such an improved solution has been devised.The invention is defined in the accompanying claims and / or in the description of the invention.
[0017] According to a first aspect of the present invention, there is provided a method of updating a network's awareness of network topology, the method comprising: (a) receiving by a first node in a network a topology data set incorporating changes in the topology of the network, the topology data set being associated with a time indication; (b) the first node having a topology data set associated with a time indication; and wherein if the time indication of the topology data set received by the first node is newer than the time indication of the topology data set of the first node, the topology data set of the first node is updated by the topology data set received by the first node.
[0018] The method may further provide, particularly after step (b), the first node transmitting an updated first node topology dataset to the network. More preferably, the method may further provide, particularly after step (b), the first node transmitting the updated first node topology dataset to the network when the second node topology dataset provides an update to the first node topology dataset.
[0019] The method may provide that the first node has adjacent nodes, the adjacent nodes being nodes within a given neighbor index of the first node, and that the first node has neighboring nodes, the neighboring nodes being nodes outside the given neighbor index of the first node but within a given neighbor index of the first node. The method may further provide that the first node transmits the updated first node topology data set only to adjacent and neighboring nodes.
[0020] The time indication associated with the topology data set received by the first node is generated by the node that provided the topology data set. The time indication may be a timestamp associated with the topology data set by the node that provided the topology data set. The time indication may be a time indication of a time of detection of a change in the network by the second node, or more preferably a time indication of a time of transmission of a change in the network by the second node to the first node. The time indication may be provided by a time vector clock of the node that provided the topology data set.
[0021] The method further comprises: (a) changing the operational state of one or more links between nodes listed in the topology data set of the first node; (b) adding one or more links between nodes not listed in the topology data set of the first node; (c) deleting one or more links between nodes listed in the topology data set of the first node; may further provide that the information is updated by one or more of:
[0022] The method may further provide that a condition for the first node topology data to be updated is that the topology data set received from a node in the network includes one or more links that are not in the topology data set of the first node. The method may further provide that a further condition is that the topology data set of the first node is updated only with respect to such links in the topology data set received from nodes in the network that are within a given index of the node.
[0023] The method may further provide that a topology dataset incorporating a change in the topology of the network is provided by a second node in the network due to detection of an event in the network. The event may be detected by an interruption of a message sent by a node in the network to the second node. Detection of the event may result in a change in the topology dataset of the second node. The change in the topology dataset of the second node may provide that the second node transmits the change in the topology dataset to at least the first node in the network.
[0024] The method may further comprise, preferably between steps (a) and (b), the step of ordering the plurality of topology datasets according to their respective time indications. One of the plurality of topology datasets may be the topology dataset of the first node and another of the plurality of topology datasets may be the topology dataset of the second node. One of the plurality of topology datasets may be a topology dataset from a third node and preferably others of the plurality of topology datasets are from further nodes. The ordering step may establish which of the plurality of topology datasets is the most recent of the plurality of topology datasets.
[0025] The method may further provide that a most recent one of the plurality of topology data sets is used to update the topology data set of the first node. The method may further provide that a topology data set not associated with a most recent time indication is not used or discarded.
[0026] The updated topology data set of the first node may replace the previous topology data set of the first node.
[0027] The method for updating the network's awareness of the topology of the network may further be a method for optimizing connectivity within said network and / or optimizing consistent data distribution within said network.
[0028] According to a second aspect of the present invention, there is provided a computer-implemented system, including a system configured to perform the method of the first aspect of the present invention, and possibly to perform any of the features, options and possibilities described elsewhere herein.
[0029] The computer-implemented system may include a detector for detecting changes in the topology of the network. The detector may detect changes affecting one or more nodes and / or one or more links. The detector may detect one or more changes in state, which may include, for example, from a first state to a second state and / or from a second state to the first state, and / or one or more other states.
[0030] The computer-implemented system may include an update sorter that sorts updated topology data sets communicated within the network, particularly with respect to messages containing updated topology data sets, and may be provided such that messages are considered in the correct sequence or order or time of creation.
[0031] The computer-implemented system may include a topology dataset processor that processes the topology dataset such that the topology dataset is updated with topology datasets from other nodes in the network.
[0032] The computer-implemented system may include a topology update communicator for updating the topology dataset so that awareness of changes to the topology of the network is shared within the network. The topology dataset processor may provide updates to the topology dataset of a node according to data from the topology dataset of a further node.
[0033] According to a third aspect of the present invention there is provided an arrangement in a network of nodes for updating the network regarding changes in the topology of the network, the arrangement comprising a detection unit for detecting changes in the topology of the network and / or an update sorting unit for sorting updated topology datasets communicated within the network and / or a topology dataset processing unit for processing topology datasets and / or a topology update communication unit for updated topology datasets such that knowledge of changes in the topology of the network is shared within the network.
[0034] The detector may detect a change affecting one or more nodes and / or one or more links. The detector may detect one or more changes of state, which may include, for example, from a first state to a second state and / or from a second state to the first state and / or one or more other states.
[0035] The update sorter may be provided with messages containing updated topology data sets, and the update sorter may be provided to ensure that messages are considered in the correct sequence or order or time of creation.
[0036] The topology dataset processing unit for processing a topology dataset may be for the topology dataset to be updated with topology datasets from other nodes in the network.
[0037] The topology dataset processor may provide updates to the topology dataset of the node according to data from the topology dataset of the further node.
[0038] Thus, according to the invention, options, possibilities and features may be provided or further provided from among the following:
[0039] The network may be a distributed system of nodes, which may include one or more nodes in the form of clients and / or servers and / or peers.
[0040] A node may be an active electronic device or data communication equipment. A node may be, among other things, a router and / or a workstation and / or a server and / or a host computer. A node may be, for example, a location in a network that can generate and / or receive and / or transmit information to one or more other nodes.
[0041] One or more or all nodes may be peers: two or more or all nodes may be equal participants in the network, for example in terms of privileges or capabilities or functions.
[0042] The nodes in the network may be thought of as a collection of nodes.
[0043] Nodes may be connected by one or more links. Nodes may be connected to other nodes by one or more links. One or more or all of the links may be edges.
[0044] The distance between two nodes may be the sum of the links between the nodes, preferably the minimum number of links providing connectivity between the nodes. The distance may be in hops. The distance may be the number of links. For example, directly linked nodes have a hop value of 1, and / or indirectly linked nodes have a hop value > / = 2. The distance or hops may be defined as d(i,j), where d is the distance between node i and node j.
[0045] A node may be directly connected to another node when a limited number of links, preferably a single link, provide the connection. A node may be directly connected to one or more other nodes. Preferably, the nodes directly connected to a node are connected to nodes that are considered neighboring nodes. Preferably, all other nodes directly connected to a node are neighboring nodes of that node. Neighboring nodes may be defined as: adj(i)={j∈V:d(i,j)=r adj}, where i is the node under consideration, j is the number of neighbors in the set V of nodes, and r adj is a given neighbor index.
[0046] The given neighbor index may be a neighbor radius. The given neighbor index may be a number of links, for example, one link.
[0047] A node may be indirectly connected to a further node when more than one link provides the connection. Preferably, a node is indirectly connected to the further node when it is connected to the further node via one or more intermediate nodes, such as a neighbour node and / or a further node, or when it is connected to the further node via two or more links in series. A node may be indirectly connected to one or more or all of the further nodes in the network. Preferably, the further nodes that are within a given neighbourhood index of the node and are not neighbour nodes are neighbour nodes of the node. The further nodes that are outside a given neighbourhood index of the node are preferably not neighbour nodes or neighbour nodes. The further nodes that are outside a given neighbourhood index of the node and are not neighbour nodes or neighbour nodes are preferably still part of the set of nodes. The neighboring nodes may be defined as follows: N(i) = {j∈V:d(i,j) = H,adj(i)⊆N(i)}, where i is the node under consideration, j is the number of neighboring nodes in set V that are within the distance d(i,j) between node i and node j, adj(i) is the adjacent node of node i, and H is a given neighboring index.
[0048] The given neighbor index may be a neighbor radius. The given neighbor index may be a lower bound and an upper bound. The given neighbor index may be a number of links having a common lower bound and an upper bound, for example, two links. The given neighbor index is preferably larger than the given neighbor index.
[0049] A node is part of a set of nodes and may have one or more adjacent nodes and one or more nearby nodes. Another node from the set of nodes may have one or more, all, or none of the adjacent nodes in common with the node. The other node may have one or more, all, or none of the nearby nodes in common with the node.
[0050] A detector and / or detection may be provided for changes in the topology of the network. A detector and / or detection may be provided for changes affecting one or more nodes and / or one or more links. The one or more changes may be a change of state, which may include, for example, from a first state to a second state and / or from a second state to the first state, and / or one or more other states.
[0051] A node may have a first state and a second state, the second state representing a change in characteristics compared to the first state. The change in characteristics may be the node joining the set of nodes and / or the network. The change in characteristics may be the node rejoining the set of nodes and / or the network. The change in characteristics may be the node beginning or beginning to function again as a node in the set of nodes and / or network. The change in characteristics may be the node leaving the set of nodes and / or network. The change in characteristics may be the node ceasing to function as a node in the set of nodes and / or network.
[0052] Preferably, a link between a node and a further node directly connected to said node has a first state and a second state, said second state representing a change in property compared to said first state. The change in property may be the appearance of a link or access to a link. The change in property may be the reappearance of a link or updated access to a link. The change in property may be the disappearance of a link or loss of access to a link.
[0053] The change in the characteristic may be detected directly. Preferably, the change in the characteristic is detected indirectly, for example, using a test message. The test message may be sent from one node to another. The test message may be sent along a link. The test message is preferably sent repeatedly, preferably periodically. The test message may be sent at least once within a given time period, and preferably at least once in any given repetition of that time period. The time period may be controlled by a clock function within or associated with the node.
[0054] Lack of receipt of a test message by a node from another node may indicate that the other node and / or the link therebetween is experiencing a change in characteristics. In particular, lack of receipt may indicate that the other node has left the network and / or that the link has disappeared. Preferably, lack of receipt indicates that the other node has failed and / or that the link has failed. Preferably, the lack of receipt is considered with respect to a time period. Preferably, the time period is longer than the time period over which the test message is repeated. Each node may maintain a timer, preferably a separate one for each link, to define the time period during which it expects to receive a test message.
[0055] Detecting a change in the state of the node may generate a change to the topology data set of the node. Detecting a change from a first state to a second state may generate a change to the topology data set of the node. Detecting a change from the second state to the first state may generate a change to the topology data set of the node.
[0056] Detection of a change from a first state, where the node is participating in or functioning in the network and / or the links are accessible or functioning, to a second state, where the node is not participating in or functioning in the network and / or the links are not accessible or functioning, may result in a change in the topology dataset of the node.
[0057] A change in a node's topology dataset may be a change in the state of the node or a link, where the state change may be from an active or alive or connected state to an inactive or dead or disconnected state.
[0058] A change to the topology data set for a node may be the removal of the node from the topology data set.A change to the topology data set for a node may be the removal of a link from the topology data set.
[0059] Detection of a change from a second state, where the node is not participating in or functioning on the network and / or the links are not accessible or functioning, to a first state, where the node is participating in or functioning on the network and / or the links are accessible or functioning, may result in a change in the node's topology dataset.
[0060] A change in the topology data set of a node may be a change in the state of the node or a link, where the state change may be from an inactive or dead or disconnected state to an active or alive or connected state.
[0061] The change to the topology dataset for a node may be the addition of a node to the topology dataset.The change to the topology dataset for a node may be the addition of a link to the topology dataset.
[0062] The topology data set for a node may be a topology table, which may be an incomplete data set compared to a possible complete data set for the node.
[0063] A node's topology data set, e.g., a topology table, may include a list of links known to the node at that time. The topology table may include a list of one or more or all of the possible links between the node and one or more, preferably all, of the node's selection of nodes. The node's selection of nodes may be one or more, preferably all, of the node's neighboring nodes and / or one or more, preferably all, of the node's nearby nodes. The topology table may include the state of one or more, preferably all, of the links known to the node at that time.
[0064] When there is a change in the node's topology dataset, the change in the node's topology dataset may be communicated to one or more other nodes. When there is a change in the node's topology dataset, the node's entire topology dataset may be communicated to one or more other nodes. The one or more other nodes may include one or more or all of the neighboring nodes. The one or more other nodes may include one or more or all of the neighboring nodes. The one or more other nodes may include one or more or all of the nodes in the set of nodes.
[0065] When another node receives the node's topology dataset, the other node preferably evaluates whether the other node should update the other node's current topology dataset with the node's topology dataset. The evaluation may be performed by each other node that receives the node's topology dataset, and each evaluation is preferably independent of the other evaluations. The evaluation may preferably establish whether the other node's current topology dataset is older or newer than the node's topology dataset. Preferably, if the other node's current dataset is older, the other node's current topology dataset is updated from the node's topology dataset. Preferably, if the other node's current dataset is newer, the other node's current topology dataset is not updated from the node's topology dataset.
[0066] When a node receives another node's topology dataset, the node preferably evaluates whether the node should update its current topology dataset with the other node's topology dataset. The evaluation may preferably establish whether the node's current topology dataset is older or newer than the other node's topology dataset. Preferably, if the node's current dataset is older, the node's current topology dataset is updated from the other node's topology dataset. Preferably, if the node's current dataset is newer, the node's current topology dataset is updated from the other node's topology dataset.
[0067] A message sorter and / or message sorting for messages communicated within the network may be provided, particularly for messages relating to changes in the topology of the network. An update sorter or message sorting for messages may be provided so that messages are considered in the correct sequence or order or time of creation.
[0068] A node and another node may be provided with a clock function, such as a logical clock. The clock function may provide two data structures: a record of local time and a record of global time, which is best known in the distributed system. For example, a logical clock may provide a record of local time, e.g., logical local time, through the clock function, and a local record of global time in the distributed system, e.g., logical global time.
[0069] Preferably, each node in the system is provided with a clock function.
[0070] The clock function may assign timestamps to one or more or all events in the system. An event may include the detection of a new node or a new link. An event may include the detection of a change in the state of a node or link. An event may include the detection of the loss of a node or link. An event may include a node updating its topology dataset.
[0071] Time stamps in the system preferably follow a monotonic, and most preferably increasing, property. When two events are causally linked, the effect event may be given a later time stamp than the cause event that led to the effect event.
[0072] The clock function may be a vector time clock. A vector time clock may use a time vector. Each node operates on a separate time vector. Each node may timestamp its events using its time vector. Each time vector may be of the form: T i =(T i1 ,...,T in ), where T i is the local logical clock of node i, which describes the logical time progression of node i from time 1 to time n.
[0073] One or more, preferably all, nodes have at least partial knowledge of the logical time progression of one or more or all nodes, preferably of their adjacent and / or neighboring nodes. The at least partial knowledge of the logical time progression of another node may be of the following form: ij , which represents the latest knowledge of node i at local time n of node j, where j∈adj(i). T i The dimension of is dim(T i ) and dim(T i ) may be equal to the size of adj(i).
[0074] The time vector clock may operate according to one or more rules, which may include one or more or all of the following:
[0075] 1. One or more, preferably all, nodes start with a local time of 0.
[0076] 2. When an event occurs at a node, the local time may be increased, for example, by an integer, preferably by the value 1.
[0077] 3. When an event occurs at a node, the node sends a message to one or more further nodes, preferably where the topology data set has changed.
[0078] 4. When a further node receives a message of preferably a change, it is considered an event for that node and therefore Rule 2 is preferably applied to the further node's local time.
[0079] 5. When a further node preferably receives a change message, the local time of the further node is further incremented in addition to the increment of Rule 4, preferably the local time of the further node is further incremented by the greater of the local time of the further node after the increment of Rule 4 or the local time of the further node in the message.
[0080] 6. A message sent by a node to a further node includes the local time of the node and all further nodes for which the node has knowledge of the local time, which may differ from the local time of one or more of the further nodes at the time.
[0081] 7. If the message is newer than the last message received by the node, the topology data set of the message may be used to update the topology data set of further nodes. Preferably, rules 4 and / or 5 are applied only if the message is newer and / or results in the topology data set of further nodes with which the message is in communication.
[0082] 8. If a message is older than the last message received by a node, the topology data set of the message may be discarded and / or not used to update the topology data sets of further nodes. Preferably, rules 4 and / or 5 are such that the message is older and / or the topology data set of the message is discarded and / or not used.
[0083] A vector time clock may operate according to one or more rules, where the rules include one or more or all of the following: · The timestamps of the initial local events at node i are all 0 except for the i-th entry, which is 1. T ij = x, then node i knows that local time at node j has advanced to x. · The vector Ti constitutes node i's view of logical global time. · Node i uses it to timestamp events. The message timestamp is the maximum of the current timestamp and the incoming vector timestamp across all elements. Before sending a message, node i determines its local logical time T ij ←T ij Update +1. Message (m,T j ), node i performs the operation of updating the logical global time of node i by: ∀k∈adj(i), T ik ←max(T ik ,T jk ).
[0084] The broadcast algorithm for one or more or all of the messages sent by one or more or all of the nodes may be a deterministic algorithm or a probabilistic algorithm.
[0085] A dataset processor and / or processing of the dataset may be provided such that awareness of changes in the topology of the network is shared within the network. A dataset processor and / or processing for a node's topology dataset may be provided such that a node's topology dataset is updated with data from further node's topology datasets.
[0086] A node topology data set, e.g., a topology table, may be constructed for a node, preferably for each node. The node topology data set is defined as the main topology view V i A node's topology dataset may include a list of links known to the node. mn They may be listed in the form l where m is one node and n is another node. mn and l nm may be used synonymously, with only one of the pair being listed to provide a link in the list. The topology dataset of a T node may include a designation for each link in the list. The designation may have one of two values, for example, 1 or ∞. The designation may relate to the operational state of the link, for example, a value when operational and a value when inoperative.
[0087] Initially, the list of links known to a node may be those nodes and therefore the links that have been detected by the node, for example by receipt of test messages from further nodes via the links.
[0088] As messages containing further node topology data sets are exchanged, the list of links known to the node may be or may be augmented by these links in messages from other nodes. Preferably, the combination of the links known to the node and these links in messages from other nodes forms the node's topology data set.
[0089] A node's topology dataset may be updated regarding changes in the operational state of a node or link. A node's topology dataset may be updated regarding a node or link returning to an operational state. A node's topology dataset may be updated regarding a new node or new link being added to the network. A new node being added to the network may receive a node topology dataset from another node to provide the node's first node topology dataset.
[0090] A node's topology dataset may be updated with data from within a message containing the further node's topology dataset when one or more conditions are met. The condition may be that the further node's topology dataset has a newer timestamp than the node's topology dataset. The condition may be that there is a change in designation, e.g., from 1 to ∞ or from ∞ to 1, for one or more links, particularly for one or more links in both the node's topology dataset and the further node's topology dataset. The condition may be that the further node's topology dataset includes one or more links that are not in the node's topology dataset. The condition may be that the further node's topology dataset includes one or more links that are not in the node's topology dataset, with the further condition that the node's topology dataset is only updated for links in the further node's topology dataset that are within a given index of the node. The given index may be within a given neighbor index, or more preferably within a given neighborhood index. Links that are not within a given index are preferably not added to the node's topology dataset.
[0091] The topology dataset of nodes is m={V j ,T j} message m from node j at a given time T j where node j receives the topology data set or the global topology view V jwhich node i uses to compute its topology dataset or the global topology view V i Make sure to update.
[0092] The topology dataset of a node is the link l mn is the topology dataset of nodes, e.g., the global view V i , and a topology dataset of further nodes, e.g., a global view V j If a link exists in both V and V, it may be updated. i ∪V j V j Links received in mn The topology dataset of a node is updated with information about j [t j ]>T i [t j ], where if the condition is true, then link l mn The newer state of
[0093] The topology dataset of a node is the link l pq is a topology dataset of further nodes, e.g., a global view V j and a topology dataset of nodes, e.g., a global view of further nodes, V i The topology dataset of the node, e.g., the global view V i Links added to pq The information about may be conditioned on the distance between nodes i and q being less than the value of the neighboring node, the horizontal H. The condition is ij +l jp2 +l p1p2 +···+l pnp +l pq <Hであってよく、ここで、l ij , l jp2 , l p1p2 , ..., l pnp are all V i is the active link.
[0094] A node may send a message containing its topology data set to one or more further nodes whenever a change occurs in its topology data set as a result of a message received by the node. Preferably, a node may send a message containing its topology data set only to one or more further nodes that are neighbours and / or adjacent nodes.
[0095] Whenever a node is linked to a new node, the node may send a message containing the node's topology data set to one or more of the new nodes. Preferably, the node may send a message containing the node's topology data set only to one or more new nodes that are neighbors of the node.
[0096] Multiple nodes and / or methods within the system may initiate updates independently of each other. Multiple updates may be initiated simultaneously within the system and / or method, and preferably timestamp control is applied to the topology data sets at the nodes along with the updates. [Brief explanation of the drawings]
[0097] These and other aspects of the invention will be apparent from and will be taught with reference to the embodiments described herein, which are described hereinafter, by way of example only, with reference to the accompanying drawings, in which: [Figure 1] 1 is an example of a network topology diagram showing nodes, adjacent nodes, and nearby nodes. [Figure 2] This is a description of the vector clock system. [Figure 3] We show the execution of the broadcast algorithm in the absence of any topology changes (failures or lost messages). [Figure 4] 1 is a diagram of a global network used to explain the operation of one embodiment of the present invention. [Figure 5]1 is a diagram of the exchange of messages between nodes over time used to explain one embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0098] A central problem in unstructured peer-to-peer (P2P) networks is maintaining the topology: for example, how to correctly update neighborhood variables when nodes join and leave the network and / or when a node suddenly crashes. The present invention relates to a topology update algorithm.
[0099] In P2P networks, it is necessary to know "who is connected to whom" or "who knows whom" for discovery, information dissemination, broadcasting, etc. In this context, many broadcast algorithms are known, such as probabilistic and deterministic algorithms.
[0100] Epidemiological algorithms or gossip protocols are probabilistic in nature and do not depend on a fixed topology. Nodes exchange information with random neighbors to implement a diffusion-like computation pattern, and as a result, the system converges to a state where all nodes know the message. Gossip protocols are scalable because each node sends only a fixed number of messages, independent of the number of nodes in the network. Furthermore, nodes do not wait for acknowledgments or take recovery action if an acknowledgment does not arrive. Because nodes receive copies of messages from different nodes, they achieve fault tolerance against intermittent link failures and node crashes. No node has a special role to play. Therefore, a failed node does not prevent other nodes from continuing to send messages. Therefore, no failure detection or special recovery action is required.
[0101] A drawback of gossip protocols is the large number of messages they send. One class of gossip protocols (non-entropy protocols) sends an unbounded number of messages in an unbounded run.
[0102] Spanning tree algorithms, like breadth-first search, are a class of deterministic algorithms. Spanning trees provide a simple way to visualize a network as a "backbone"—a minimal set of edges connecting nodes. The concept is simple: spanning trees are first constructed and used to collect local data variables from each node, then aggregate the data toward a root node (or sink node). Each node sends its own value to its parent. At each non-leaf node, the values of its child nodes are processed in addition to its own value before sending the result up the tree. Because breadth-first search protocols do not generate nodes in the tree until all nodes at shallower levels have been generated, they always find the shortest path to a node. Spanning trees are a very efficient form of information distribution and collection and in the way they compute new topologies for the network.
[0103] Generally, structures such as spanning trees are considered to be structurally fragile, with the failure of a single vertex or edge causing the broadcast to fail.
[0104] The topology update problem is currently the problem of maintaining awareness of the network topology at each network site when the network topology is dynamic, i.e., when links fail and recover at any time. The correct operation of any topology algorithm depends heavily on how link state changes (failures and repairs) are detected by network nodes or other factors.
[0105] There are several subtleties in the issues that underlie the use of topology algorithms and that must be accounted for in any solution. A link may undergo several topology changes over a short period of time. Other network nodes must ultimately determine which change was the most recent. Nodes must be able to distinguish between old and new information about the state of the link. During the execution of a topology algorithm, additional topology changes may occur. The topology algorithm must be able to incorporate new information or start a new algorithm version while it is running. If different versions are used, each node must be able to determine which is the most recent version. Repairing a single link can reconnect two parts of a disconnected network. Each part may have outdated topology information about the other. An algorithm must ensure that the two parts eventually agree and adopt the correct network topology.
[0106] The ability of a network to clearly understand changes within itself is important for fast and efficient communication throughout the network and for the network to function fully. As an example, to provide a high-speed payment network for digital currencies, transactions and other information must be shared completely and quickly throughout the distributed network.
[0107] In methods that rely on threshold cryptosystems, which protect secrets by distributing shares to participants, a network is first formed consisting of a set of merchants who collectively hold a subset of the secret shares. The second half of the secret shares is held by the customer(s). The merchant network performs important tasks such as generating signatures, updating key shares, defining threshold levels, validating transactions, etc. Their ability to collaborate, communicate, and be aware of the network topology is essential in these situations.
[0108] In the following, we present an algorithm that enables each merchant node to maintain a correct view of the network topology despite link and node failures. The algorithm allows the network to automatically return to a stable configuration within a finite number of steps (so-called "self-stabilization") and uses a logical clock to accurately capture the causal relationships between events. The topology update protocol is event-driven, i.e., it is triggered when some change is detected.
[0109] The system is detecting a change in topology; ordering these changes by occurrence; and constructing a new topology that reflects the changes.
[0110] To enable a complete description of the present invention, it is useful to understand a mathematical model of a network.
[0111] Referring to Figure 1, a set of nodes (labeled 1-8) is provided. Each node is provided with a link (or edge) to another node. The set of nodes forms a set, where V is the number of nodes in the set.
[0112] A network can be represented by a graph G=(V,E), where V is a set of nodes, each with a different identity, and E is a set of edges (or links).
[0113] The mathematical model uses the following definitions:
[0114] Definition 1 (Definition of "Hop"). The distance d(i,j) between two nodes i and j is equal to the minimum number of links connecting these nodes. Thus, in Figure 1, the distance between node 6 and node 1 is 2 links, and between node 8 and node 1 it is only 1 link.
[0115] Definition 2 (Definition of "Adjacent Nodes"): The adjacent nodes adj(i) of a node i, i∈V, in a set V are nodes that are within a given distance or adjacency radius r adj , j∈V, in a set V, where adj(i)={j∈V:d(i,j)=r adj} Definition 3 (Definition of "Neighbor Nodes"): A neighbor node N(i) of a node i, i∈V, in a set V is a node N(i) that is within a given distance or horizontal radius H≧r adj where N(i) = {j∈V:d(i,j) = H,adj(i)⊆N(i)} In Figure 1, the adjacent radius r adj If we choose horizontal radius H=1, the neighboring nodes of node (peer) 1 are represented in red, i.e., nodes 2, 3, 4, 7, and 8. If we choose horizontal radius H=2, the neighboring nodes are represented in blue, i.e., nodes 5 and 6.
[0116] Change detection Clearly, to be able to explain topology changes, it is necessary to be able to detect such changes.
[0117] Topology changes can occur at any time. Therefore, to capture any kind of initial failure, we make the following assumptions about the system: Each node i in the network maintains the identities of its neighbors in a list. Node i periodically sends test messages "I'm alive" to its neighbors. Referring to Figure 1, node 4 sends such messages only to node 1, while node 1 sends such messages to nodes 2, 3, 4, 7, and 8.
[0118] The frequency with which "I'm alive" messages are sent has a significant impact on the efficiency of the error detection mechanism: to achieve a short error detection time, "I'm alive" messages need to be sent and checked very frequently.
[0119] Each processor in node i has a local clock that is used to measure time intervals. The clocks at different nodes may not be synchronized with each other. For each link (i,j), node i synchronizes the timer t of its neighbor j∈adj(i). ij If node i does not receive an "I'm alive" message from node j within a time interval δt, it considers link (i,j) to be no longer available and removes j from its set of neighbors. Node i then maintains its current (possibly erroneous) topology table T i The topology table is a list of the operational states of the links directly connected to node i. Thus, referring to Figure 1, node 1 should send an "I'm alive" message to node 4, and node 4 should send an "I'm alive" message to node 1. If node 1 does not receive such a message from node 4 within a predetermined time period, node 4 updates the topology table T 1 Then, the topology table T 1 The only neighbors of node 1 in are nodes 2, 3, 7, and 8.
[0120] The above considerations form the first topology update rule, which is as follows: 1. When a node detects that an adjacent link has failed, a failure condition is entered into the node's primary topology table. This updated topology table is preferably shared with other nodes in node set V. When this occurs, the node updates its own topology table according to the topology table received from its neighbors. Therefore, a second topology update rule is formed, namely: 2. Once a node receives the complete primary topology table from its neighbors, it updates its own primary topology table using the primary topology update algorithm (described below).
[0121] Ordering of Changes As mentioned above, updated topology table messages are only sent in response to detected topology changes. Because all messages sent in the network are subject to delay, a node cannot be sure that it knows the correct topology at any given time. One or more updated topology table messages may be old or out of date compared to the state described in another updated topology message, regardless of its reception time. Causal ordinal broadcasting (described in Raynal, M., Singhal, M., "Capturing Causality in Distributed Systems," 1996, IEEE) ensures that if two messages are causally related and have the same destination, they will be delivered to the application in the order they were sent.
[0122] The present invention uses a system of logical clocks, where every node (peer) has a logical clock that is advanced using a set of rules described below. As a result, every message is assigned a timestamp that allows processing to infer causal relationships between events. The timestamps assigned to events follow the monotonicity property: they are always increasing. That is, if event a is the cause that influences event b, then the timestamp of a is less than the timestamp of b. In this case, event b is the result of event a.
[0123] The logical clock advances according to the following rules: Vector time clock.
[0124] In a system of vector clocks, the time domain is represented by a set of finite-dimensional non-negative integer vectors. Each node i is represented by a vector T i =(T i1 ,...,T in ) where T ij is the local logical clock of node i, which describes the logical time progression of node i from time 1 to time n.
[0125] T ijrepresents the latest knowledge of node i about the local time of node j, where node j∈adj(i).
[0126] The dimension of Ti is dim(T i ) and dim(T i ) equal to the magnitude of adj(i).
[0127] The timestamps of the initial local events at node i are all 0 except for the i-th entry, which is 1. T ij = x, node i knows that the local time at node j has advanced to x. i constructs node i's view of logical global time, which node i uses to timestamp events. The timestamp of a received message is the element-wide maximum of the current timestamp and the incoming vector timestamp.
[0128] This operation is shown in Figure 2 for three nodes A, B, and C. At each node, the local time is initially 0. When an event occurs at node C, node C increments its local clock time to 1 and notifies node B. When node B receives the message, no other events have been notified to node B, and therefore node B's local time remains 0. Because node B has now experienced the event, node B updates its local time by 1. This gives it a value of 1, as node B's local time was 0. Furthermore, node B also corrects its local time by adding the greater of the updated node B local time (now value 1) or the node B local time in the message (value 1 in this example). Therefore, the corrected node B local time is 2, and node B then notifies node A of the change.
[0129] Node A goes through a similar process of updating by 1 and correcting by adding 1, resulting in a message to node B of A:2 B:2 C:1. By the time node B receives this message, node B has noticed another independent event and communicated it to C. So there is an update to node B by 1, but the correction is the addition of 1 to node B's local time (which is now 3), not the addition of 1 to node B's local time in the message (which is now only 2). So the new message sent to A has a value of B:5 (3+1+1, not 2+1+1).
[0130] Subsequent messages are processed in the same manner. The second message sent by node B at time 3 is independent of the other messages mentioned above: Message 1 (from C to B), Message 2 (from B to A), and Message 4 (from A to B) and Message 5 (from B to C).
[0131] The above considerations form the logical clock update rules, namely: 1. Before sending a message, node i updates its local logical time T ij ←T ij +1. 2. Message(m,T j ) from node j∈adj(i), node i performs the following sequence of actions: a. Update its own logical global time as follows: ∀k∈adj(i), T ik ←max(T ik ,T jk ) Figure 3 shows the execution of the broadcast algorithm without any failures or lost messages. We do not specify the broadcast algorithm (deterministic or probabilistic), and we do not provide a definition of neighboring nodes. We assume that nodes 1, 2, and 3 are all neighbors, i.e., (2,3)∈adj(1), (1,3)∈adj(2), and (1,2)∈adj(3). Node 1 generates a first message (m1,T1) and sends it to nodes 2 and 3, either randomly or deterministically according to the selected broadcast algorithm. Node 3, triggered by the message (m1,T1) from node 1, generates a new second message (m2,T3) and sends it to nodes 1 and 2. Node 1, triggered by the message (m2,T3) from node 3, generates a new third message (m3,T1) and sends it to nodes 2 and 3.
[0132] Specifically, by the time node 2 receives the second message (m2, T3) from node 3, node 2 has already received (m3, T1) from node 1. Node 2 knows the order of these messages from the method described above. Therefore, node 2 discards the second message (m2, T3) and uses the second message (m3, T1) to ensure the integrity of the message content.
[0133] Updated topographical configuration Having detected the changes and ensured the correct ordering of the changes at the node, how the node establishes the new topology is discussed below.
[0134] The following algorithm is performed by each node i to determine its main topology view V i Used to configure the mn or l nm Refers to a single bidirectional link between nodes m and n such that the topology table V i Each entry in the mn or l nmA link can take one of two values: 1 or ∞. When the link is up, the value is set to 1. When the link is dead, the value is set to ∞.
[0135] At a given time, node j sends a message m={V j ,T j}, node j uses it to generate its own global view V i Update.
[0136] Link mn Let V be a link in both global views. i ∪V j Link mn The information about j [t j ]>T i [t j ], then the received V j Updated by Link mn A newer state of affairs is adopted.
[0137] l pq Now V i Not a link within V j Let's say it's a link in l pq If the distance between nodes i and q is smaller than the horizontal value H for the neighboring nodes, then the global view V i is added to l ij +l jp2 +l p1p2 +···+l pnp +l pq <H、ここで、l ij , l jp2 , l p1p2 , ..., l pnp are all V i is the active link.
[0138] Thus, changes in the operational state of links are updated, links returning to an operational state are added, and new links appearing on the network are added. When links return to the network or new links are added to the network, the topology algorithm ensures that it is provided with an up-to-date copy of the topology table.
[0139] The above considerations form the rules of communication, namely: 1. When a link state entry in a node's primary topology table changes, a message containing the new topology table is sent to neighboring nodes. 2. When the link protocol at a node detects that a neighboring link has become up, the node sends its entire main topology table over that link.
[0140] An example of a suitable code for the protocol is as follows:
[0141]
number
[0142] r adj = 1, and H = 2. Thus, for node 1, nodes 2 and 3 are adjacent nodes, and nodes 4 and 5 are nearby nodes.
[0143] Initially, the topology view V of nodes 1, 2, and 3 i , i∈(1,2,3) is:
[0144]
number
[0145] Returning to the method of ordering the messages detailing the changes, the logical clock T iteeth:
[0146]
number
[0147] Phase 2: Nodes 1 and 2, i.e., i∈(1,2), satisfy T3[t3]>T i Since this is the case for the first message, nodes 1 and 2, i.e., node i, check whether their logical clocks T i and their views V i Update. Actually, this is the link l 23 was not known to node 1 in advance, so 23 On the other hand, the link l 45 was also unknown to node 1, but the link is outside the allowed neighbor limit, so: 13 +l 34 +l 45 >H, V1 is link l 45 The resulting updates to T and V at nodes 1 and 2 are:
[0148]
number
[0149]
number
[0150] Phase 3: Link (edge) 34 is now dead. Node 3 detects this change due to the absence of a test message from node 4. As a result, node 3 34 Update the view to include the current state of the action. The updated view is:
[0151]
number
[0152] Phase 4: Node 1 performs the above checks and updates its logical clock T1 and its view V1, which gives:
[0153]
number
[0154] Phase 6: Upon receiving message m4, node 2 performs the checks described above, and then node 2 updates T2 and V2 accordingly:
[0155]
number
[0156] It should be noted that the above-described embodiments do not limit the present invention, and those skilled in the art can devise numerous alternative embodiments without departing from the scope of the present invention, which is defined by the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprising" or "comprises", and the like, does not exclude the presence of elements or steps other than those listed in any claim or the specification as a whole. In this specification, "comprises" means "includes" or "consists of," and "comprising" means "including" or "including of." The singular reference of an element does not exclude the presence of a plurality of such elements, and vice versa. The invention can be implemented by means of hardware comprising several distinct elements, or by means of a suitably programmed computer. In a device claim enumerating several means, these several means can be embodied by one and the same hardware element. The fact that certain quantities are recited in mutually different dependent claims does not indicate that a combination of these quantities cannot be used to advantage.
Claims
1. 1. A computer-implemented method for ordering events in a network, the network including a plurality of nodes, each node having a time vector clock, each time vector clock operating at each node a respective time vector, the time vector of a given node including a local time of the given node and a local record of global time, the local record of global time being the local time of at least one other node as perceived by the given node, the method comprising: starting each time vector clock at a common start time; In response to an event occurring at the first node, updating the time vector clock of the first node to increase the local time of the first node by an integer value; sending a first message from the first node to one or more other nodes in the network indicating the event, the first message including the first node's local time and a local record of the global time of all other nodes known to the first node; in response to receiving the first message at a second node; updating the time vector clock of the second node to increase the local time of the second node by the integer value; determining whether the first message is newer than a previous message received at the second node, the first message being newer if a value of the first node's local time contained in the first message is greater than a value of the first node's local time in a local record of global time at the second node; in response to determining that the first message is newer than the preceding message, further updating the time vector clock of the second node to further increase the local time of the second node by adding the greater of (a) the updated local time of the second node and (b) the local record of the global time of the second node included in the first message; A method comprising:
2. In response to determining that the first message is newer than the preceding message, the method includes: updating, at the second node, a local record of the global times of all other nodes known to the second node that are contained in a time vector maintained by the second node based on the first message; 2. The computer-implemented method of claim 1, comprising:
3. The first message includes a topology data set, and in response to determining that the first message is newer than the previous message received at the second node, the method includes: updating the topology data set of the second node with the topology data set of the first message; 3. The computer-implemented method of claim 1 or 2, further comprising:
4. 4. The computer-implemented method of claim 3, wherein in response to determining that the first message is older than the previous message received at the second node, the topology data set of the first message is discarded and / or not used to update the topology data set of the second node.
5. 5. The computer-implemented method of claim 3 or 4, further comprising the second node transmitting a second message to the network containing an updated topology data set for the second node.
6. 6. A computer-implemented method according to claim 1, wherein the first node has adjacent nodes, which are nodes within a given range of a neighbor index of the first node, the first node has neighboring nodes, which are nodes outside the given range of a neighbor index of the first node but within a given range of a neighbor index of the first node, and the first node transmits the first message only to adjacent and neighboring nodes.
7. 7. The computer-implemented method of claim 6, wherein the time vector clock of each node has a local record of the global time of all of its neighboring nodes that the node knows about.
8. The topology data set of the second node includes: a) changing the operational state of one or more links between nodes listed in the topology data set of said first node; b) adding one or more links between nodes not listed in the topology dataset of said second node; c) deleting one or more links between nodes listed in the topology data set of said second node; 4. The computer-implemented method of claim 3, wherein the update is performed by one or more of:
9. the condition for the topology dataset of the second node to be updated is that the topology dataset of the first message includes one or more links that are not in the topology dataset of the second node, with the further condition that the topology dataset of the second node is updated only with respect to links in the topology dataset of the first message that are within a given neighbor index of the second node; 10. The computer-implemented method of claim 3 or 8.
10. A computer system configured to perform the method according to any one of claims 1 to 9.
11. The system comprises: a) a detector for detecting changes in the topology of the network, said detector detecting changes affecting one or more nodes and / or one or more links; b) an update sorter for sorting updated topology data sets communicated within the network; c) a topology dataset processor that processes the topology dataset so that the topology dataset is updated with topology datasets from other nodes in the network; d) a topology update communicator for updated topology data sets so that awareness of changes in the topology of the network is shared within the network; 11. The computer system of claim 10, comprising:
Citation Information
Patent Citations
Program and method for data management, and node device
JP2011233063A
Method and server for assigning relative order to message by using vector clock and delivering the message based on the assigned relative order under distributed environment
US20160337470A1