Compliance Requirements
The following compliance requirements are required to ensure all supernodes meet a standard of performance.Compliance requirements may be reviewed and modified at any given time.
General Check
Supernode operators can use this general PASS/FAIL check to confirm whether a supernode meets the compliance requirements. https://dune.com/skale/metricsWallet Balances
- At least 0.5 ETH in self-recharging validator wallet (should be >= NODES_NUMBER * 0.5)
- At least 1 ETH in each supernode wallet
Hardware
- A Linux x86_84 machine
- At least 8 physical cores (benchmark AWS t2.2xlarge)
- At least 32 GB RAM
- At least 100 GB root storage (not tested at the moment, recommended)
- At minimum, separate not mounted block device - 2 Tb TB (1.9 TB actual measure) attached and unformatted non-boot storage (Note that separate not mounted block device - 2Tb TB storage results in < separate not mounted block device - 2Tb TB actual physical storage)
- At least 16 GB swap
http://YOUR_SKALE_NODE_IP:3009/status/hardware
Example response:
Networking
-
Non-expired SSL certificates for each supernode.
- The certificate file should be issued in PEM format, issued by a trusted authority, and contain a full certificate chain.
- Certificate should always be renewed to avoid expiry
- Don’t touch machine firewall (iptables installed by skale supernode software automatically sets machine firewall rules), external VPC or networking firewall ensure some_port_range.
Servers
SGXWallet
- 1 SGX server for up to 5 SKALE supernodes (not tested, but required)
- 6 cores (not tested, but required)
- 8GB RAM (not tested, but required)
http://YOUR_SKALE_NODE_IP:3009/status/sgx
Example response:
ETH Mainnet Endpoint
After the merge a Mainnet supernode operator must run both an execution client and a consensus client at the same time.It is a requirement to run Geth as an execution client.
http://YOUR_SKALE_NODE_IP:3009/status/endpoint
Example Response:
Software
Latest Mainnet software versions are defined here:- Supernode software versions must be updated to the latest Denali requirements
- SGXWallet software versions must be updated to the latest Denali requirements
- SGX container should be up and running and should be responding to health check request
- FILEBEAT_HOST should be defined in .env and the filebeat container should be up and running. The supernode must be sending logs to elastic server
- All skale-containers are always running on the supernode
- filebeat
- skale-admin
- bounty
- transaction-manager
- nginx
- skale-api
- celery
- SKALE Chain (if selected for SKALE Chain)
http://YOUR_SKALE_NODE_IP:3009/status/meta-info
Example response:
http://YOUR_SKALE_NODE_IP:3009/status/SKALE Chain-containers-versions
Example response:
http://YOUR_SKALE_NODE_IP:3009/status/core
Example response:
http://YOUR_SKALE_NODE_IP:3009/status/btrfs returns information about btrfs kernel module (enabled/disabled).
Public IP must be the same as the registered supernode IP. http://YOUR_SKALE_NODE_IP:3009/status/public-ip returns public ip address (source of the packets that your supernode is sending to other supernodes)
IMA Container must pass healthcheck. http://YOUR_SKALE_NODE_IP:3009/status/ima returns information about basic ima healthcheck
Networking
- Check key-cert pair validity using
http://YOUR_SKALE_NODE_IP:3009/status/ssl - Test ssl certificates using
skale ssl check - Make sure the following port ranges are open 80, 311, 443, 3009, 10000–18192, and ICMP IPv4. Those ports are utilized by SKALE node software.
- Ensure all other port ranges are closed. If any are required for operations, confirm with the core team first.
