Zero's Dyno Matcher aims to ensure that Nodes requesting services are matched with the highest quality Nodes and Dynos available within the Zero Grid. Nodes and Dynos are hereinafter referred to as Node Dyno pairs, given that all matching requires a Node to be matched via a Dyno. One way to think of the Dyno Matcher is an agent-centric approach to index and connect additional services that are useful beyond zChain. This process enables peers to establish connections directly with Node Dynos that can exist at any endpoint, including centralized servers or peers in any type of distributed network.
As outlined in the previous Section 4.2.6 The Creditor, after CEA(t) calculations are performed, this data is propagated to other peers in the Zero Grid using a gossip protocol. As CEA(t) data is received, the Dyno Matcher stack ranks Node Dyno pairs with associated scores. Once this occurs an additional process is run that continually pings the top resulting Nodes within the stack rank that also adds network latency data to the stack rank. If latency falls below a certain threshold, the Node is temporarily removed from the stack rank until it makes it back into the ranking.
Providing a Node Dyno-pair’s latency is within an acceptable range, the Node then establishes a connection from the local machine to Node running the Dyno (otherwise known as the Dyno host). Once the service is instantiated, address information and credentials are sent to other relevant peers. To illustrate this, let's explore the process of a Node establishing a video conference with multiple parties:
- 1.The Member submits a Message to the Dyno Matcher to start a new video conference from their local machine.
- 2.The Dyno Matcher pings the top ranking video conferencing Dynos according to the most recent data recorded in the Member's local CET stack ranking. This data has been previously gossiped by other Nodes on the Network.
- 3.Once the Node has found a viable Dyno, it sends a direct request to spawn a new connection instance for the relevant Dyno on the host’s machine.
- 4.If the Video Conferencing Dyno instance is successfully deployed, a connection is established, and the requisite process is established on the remote machine.
- 5.A unique url and set of access credentials are created to access the host machine. The remote IP / domain, route and necessary credentials are provided, such as: ‘https://video.zer0.io/TCP/188.8.131.52/video/videoConfName’. Members are provided that link along with a password that must be entered upon arriving at the url.
As more Members place system load on the top ranking Nodes, scores are dynamically adjusted and propagated to other Nodes in the Grid using the gossip protocol. Nodes with more capacity and better performance move up in rank, creating a natural balancing effect between Node Dyno pairs within the Grid.
Given that matching happens using an agent-centric approach, different clusters of Nodes maintain unique stack ranks, further aiding with network distribution, and supporting to alleviate potential congestion.