# Node Score

{% hint style="warning" %}
算法需要重新调整。
{% endhint %}

$$
S = N⋅H ⋅C
$$

Node Score (S) is determined by 3 factors:

* **Network Score (N)** evaluates the reliability of your current network. Factors such as NAT type, NAT consistency, outbound bandwidth, and average latency will be considered.
* **Hardware Score (H)** considers \*\*\*\*the capabilities of your connected hardware, from CPU, GPU, RAM, disk space, to disk type, etc. High-performing hardware can boost the efficiency and performance of the network and thus will be given a higher score.
* **Consistency Score (C)** assesses the consistency of worker nodes’ availability over a period of time. Consistency in node availability is proof of reliability and trustworthiness.

## Network Score (N)

<details>

<summary>Factors Affecting Network Score</summary>

Network Score is affected by various factors. Initially, we will include the following criteria, but the list will continue to evolve:

* **NAT Type**: NAT (Network Address Translation) Type refers to the strictness of a router in allowing connections from outside networks. The ranking of NAT Types from least restrictive to most restrictive is as follows: Static>DMZ>PAT>Full Cone>IP Restricted Cone>Port Restricted Cone>Symmetric. There are several types of NAT:
  * Static NAT (Network Address Translation) refers to a type of NAT where each private IP address is mapped to a corresponding public IP address. This mapping is consistent and does not change over time. Static NAT is typically used when a device, such as a server, needs to be accessible from the internet.
  * DMZ (De-Militarized Zone) in the context of NAT (Network Address Translation) refers to a network setup where a particular device (like a server) is placed outside the main network's security firewall. This allows unrestricted network access to that device, making it readily accessible over the internet. However, it also exposes the device to potential external threats, hence it's typically used for servers that need to be publicly accessible yet isolated from internal networks for security reasons.
  * PAT, or Port Address Translation, is a type of NAT (Network Address Translation). In PAT, all devices on the local network are mapped to a single public IP address, but each device is assigned a specific port number. This way, the router can determine which device to forward incoming packets to based on the port number. PAT is a common method used in home networks due to its efficient use of limited public IP addresses.
  * Full Cone: All requests from the same internal IP address and port are mapped to the same external IP address and port. Any external host can send packets to the internal host by sending packets to the mapped external IP address and port.
  * Restricted Cone: As with Full Cone, all requests from the same internal IP address and port are mapped to the same external IP address and port. However, an external host can send packets to the internal host only if the internal host has previously sent a packet to the external host.
  * Port-Restricted Cone: This is a more restricted type of NAT. The router keeps track of the port numbers on the external host that the internal host communicates with. The router allows incoming packets to those port numbers only.
  * Symmetric: This is the most restrictive NAT type. Each time the same internal device sends a packet to a destination, a new port is used and mapped for the return packets from that destination. This makes it very difficult for incoming connections to be made to the internal device unless the device has initiated the connection.
* **NAT Consistency**: NAT Consistency refers to the predictability and reliability of a NAT (Network Address Translation) type in maintaining and managing the network connection.
* **Outbound Bandwidth**: Outbound bandwidth refers to the maximum rate of data transfer from a particular system or network to another system or network. It's measured in bits per second (bps). It plays a crucial role in network performance as it affects the speed and quality of data transmission. Higher outbound bandwidth typically indicates better network performance.
* **Average Latency**: Average latency refers to the average amount of time it takes for data to travel from one point to another in OpenEdge network, checked by all the Sentry Nodes periodically. Lower latency signifies a more efficient and high-performing network as data transmission is faster, leading to a better user experience.

</details>

**Network Scores** will be assigned to nodes according to the conditions below:

<table><thead><tr><th width="138">Score</th><th width="117">1</th><th width="140">2</th><th width="121">3</th><th>4</th><th>5</th></tr></thead><tbody><tr><td>NAT Type</td><td>Symmetric</td><td>Port Restricted Cone</td><td>IP Restricted Cone</td><td>Full Cone</td><td>PAT/DMZ/Static</td></tr><tr><td>NAT Consistency</td><td>Not consistent</td><td>Slightly consistent</td><td>Moderately consistent</td><td>Mostly consistent</td><td>Fully consistent</td></tr><tr><td>Outbound Bandwidth</td><td>&#x3C;100Mbps</td><td>[100Mbps, 500Mbps)</td><td>[500Mbps, 1Gbps)</td><td>[1Gbps, 3Gbps)</td><td>>3Gbps</td></tr><tr><td>Average Latency (ms)</td><td>[200,+∞)</td><td>[100,200)</td><td>[50,100)</td><td>[20,50)</td><td>[0,20)</td></tr></tbody></table>

## Hardware Score (H)

<details>

<summary>Factors Affecting Hardware Score</summary>

* **CPU**: The processing power of the CPU (Central Processing Unit) is crucial for performance. The number of cores and clock speed can significantly affect the node's efficiency.
* **GPU**: The GPU (Graphics Processing Unit) is important for tasks that require high computational power, such as machine learning and data processing.
* **RAM**: RAM (Random Access Memory) affects the node's ability to handle multiple tasks simultaneously. More RAM generally leads to better performance.
* **Disk Space**: Sufficient disk space is necessary for storing data and running applications smoothly. It's measured in gigabytes (GB) or terabytes (TB).
* **Disk Type**: The type of hard disk (e.g., HDD vs. SSD) can impact read/write speeds. SSDs (Solid State Drives) are generally faster and more reliable than HDDs (Hard Disk Drives

</details>

**Hardware Scores** will be assigned to nodes according to the conditions below:

<table data-full-width="false"><thead><tr><th>Score</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th></tr></thead><tbody><tr><td>CPU (Cores)</td><td>&#x3C;4</td><td>4-8</td><td>8-16</td><td>16-32</td><td>>32</td></tr><tr><td>GPU</td><td>Integrated</td><td>Entry-Level</td><td>Mid-Range</td><td>High-End</td><td>Top-Tier</td></tr><tr><td>RAM (GB)</td><td>&#x3C;8</td><td>8-16</td><td>16-32</td><td>32-64</td><td>>64</td></tr><tr><td>Disk Space (GB)</td><td>&#x3C;256</td><td>256-512</td><td>512-1024</td><td>1TB-2TB</td><td>>2TB</td></tr><tr><td>Disk Type</td><td>HDD</td><td>Hybrid</td><td>SSD</td><td>NVMe SSD</td><td>Top-Tier NVMe SSD</td></tr></tbody></table>

## Consistency Score (C)

<details>

<summary>Factors affecting Consistency Score</summary>

The Consistency Score (C) is evaluated based on 7-day moving average up-time and liveliness over a period of time:

* **Average Up-time**: This refers to the percentage of time that the node is operational and accessible when checked by a centralized server.
* **Average Liveliness**: This refers to the percentage of time that the node is available and responsive when checked by random Sentry Nodes from the entire network.

</details>

**Consistency Scores** will be assigned to nodes according to the conditions below:

<table><thead><tr><th width="121">Score</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th></tr></thead><tbody><tr><td>Moving Average Uptime</td><td>&#x3C;25%</td><td>25-50%</td><td>50-75%</td><td>75-90%</td><td>>90%</td></tr><tr><td>Moving Average Liveliness</td><td>&#x3C;25%</td><td>25-50%</td><td>50-75%</td><td>75-90%</td><td>>90%</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gradient.network/hide/worker-node-rewards/node-score.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
