Snowflake is made up of 4 components - Snowflake smart contract, Snowflake UI, Snowflake SDK (future) and Snowflake node operator network. In this article, we are going to explore how Snowflake node operator network works.
What are node operators ?
Node operators are machines that deploy Snowflake client software. These nodes constantly monitor the conditions set in your automations and execute those automations on your behalf.
How it works
Fully redundant to ensure every job is processed at right time.
Node operators work together in a highly redundant fashion to ensure that your automations are executed, even in the event that some of the nodes might go down.
It works by creating a schedule where each node operator is given an opportunity to execute your automations. If the node operator is unable to execute your automation for any reasons (goes offline, runs out of hardware resources, etc ...), the automation would then be processed by the next node operator.
Self monitoring, self eviction, peer-to-peer
How does Snowflake ensure that node operators stay online and proactively participate in job executions ?
Snowflake provides mechanisms in which the node operators also monitor each others. If a node fails to execute jobs for a set period, it will be evicted from the network automatically by its peers.
It's important to note that the node monitoring and eviction process is decentralised and peer-to-peer. Snowflake does not have a centralised service to monitor these nodes. After all, the whole point of this is to provide a decentralised and redundant network of nodes which can't be controlled and do not rely on the liveness of a centralised party.
Node operators are trustless. Users are not required to trust node operators. Snowflake team is not required to trust node operators. Node operators can only do one of the two things:
Execute automations exactly as specified on-chain by the users.
Go offline / refuse to execute any automations.
If they choose to do #1, there is no problems to solve. If they choose to do #2, they will be evicted by their peers, automatically.
Snowflake does not rely on any node operators being honest. A node operator that attempts to be malicious has zero impacts on the health of the network and will be evicted.
Who runs node operators ?
Snowflake is designed so that anyone can run a node. As the network scales, Snowflake team will provide further stats of the node operators, their executions and geographic locations in order to ensure enough resources and redundancy in place to meet user demand.
Permission vs permissionless
Node operators run both permission and permissionless jobs. Snowflake provides funding authorisation mechanism in which node operators can execute permissioned jobs (moving user funds) without having any access to these funds.