Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SKALE Nodes #66

Closed
Tracked by #13
manuelbarbas opened this issue Dec 26, 2023 · 0 comments
Closed
Tracked by #13

SKALE Nodes #66

manuelbarbas opened this issue Dec 26, 2023 · 0 comments
Labels
documentation Improvements or additions to documentation help wanted Extra attention is needed

Comments

@manuelbarbas
Copy link
Collaborator

manuelbarbas commented Dec 26, 2023

SKALE Nodes

The SKALE Network consists of a large pool of validator nodes, all running concurrently and independently, validating transactions within the SKALE Chains they oversee. These nodes coordinate with a set of smart contracts that run on the Ethereum mainnet called SKALE Manager.

Each SKALE Chain comprises a collective of randomly appointed virtualized subnodes that run a containerized SKALE EVM-client daemon (skaled) and SKALE ABBA-based consensus algorithm. Nodes in the SKALE Network aren’t restricted to operating a single chain but instead can support multiple chains via virtualized subnodes. This multiplex capability is made possible via a containerized subnode architecture deployed on each node in the network. Each node is virtualized and can participate as a validator via this subnode architecture for an independent number of sidechains.

The subnode virtualization is enabled via an innovative containerized architecture that provides industrial-grade performance and optionality for decentralized application developers – performance and flexibility that’s similar to traditional centralized cloud and microservice systems. Containers are divided into several main components encapsulated via a dockerized Linux OS, allowing each node to be hosted in an OS-agnostic manner.

Run a Node

The SKALE Network has a set of validators securing the network. Validators provide computation power to the SKALE Network via deploying nodes. The collection of validators and the node(s) they spin up represent the entire validator network that performs work for SKALE Chains (an elastic sidechain or SKALE Chain). ‍ SKALE Chains in the network are operated by a group of virtualized sub-nodes selected from a subset of nodes (validators) in the network and are run on all or a subset (multi-tenancy) of each node’s computation and storage resources.

As each node in the network continues to participate in their assigned SKALE Chains, they’re awarded bounties based upon their performance at the end of each network epoch. Each node will be monitored by their peer nodes. ‍ When a SKALE Chain has reached the end of its lifetime, the resources (computation, storage) of its virtualized sub-nodes will be freed so that validator nodes may participate in newly created SKALE Chains.

Expectations

  • Reliable connection to SKALE Network (low latency, high uptime)
  • Robust security practices and network architecture
  • Running latest SKALE Node software releases
  • Participation in governance (when applicable)

To encourage proper behavior amongst network participants, SKALE follows a Proof of Stake (POS) system whereby each node must stake a predetermined amount of SKALE tokens to be slashed at the citation of any activity not condoned by the network.

Activities not approved by the network include those which denote a failure to properly participate in each assigned SKALE Chain’s consensus, and maintain uptime and latency standards enforced by the Service Level Agreement (SLA).

Network SLAs are enforced through an algorithmic peer review system whereby each node is appointed 24 node peers to monitor and log their network participation, uptime, and latency. These metrics will be collected and averaged on the Ethereum mainnet to reward or slash nodes according to their respective performance.

Requirements

To be added as a node to the SKALE Network, a prospective node must run the SKALE Admin, which manages all operations in the node and is installed with the skale-node-cli. SKALE Admin evaluates the prospective node to ensure that it’s upholding network hardware requirements. If the prospective node passes this verification step, the SKALE Admin permits the node to submit a request to SKALE Manager to join the network. This request contains both the required network deposit as well as node metadata collected by the SKALE Daemon (for example IP address, port, public key, etc.).

Once the request has been submitted to SKALE Manager on Ethereum, SKALE Manager randomly defines the prospective node as a 'full node' or a 'fractional node' by assigning different sizes of SKALE Chains to the prospective node. Full nodes have all their resources utilized for a single sidechain, while fractional nodes participate in multiple sidechains (multi-tenancy).

General Hardware Requirements

@manuelbarbas manuelbarbas added the help wanted Extra attention is needed label Dec 26, 2023
@manuelbarbas manuelbarbas added the documentation Improvements or additions to documentation label Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant