-
Notifications
You must be signed in to change notification settings - Fork 34
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #897 from oasisprotocol/amela/add-node-descriptions
docs: Add descriptions of node types
- Loading branch information
Showing
5 changed files
with
166 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
import {findSidebarItem} from '@site/src/sidebarUtils'; | ||
import DocCardList from '@theme/DocCardList'; | ||
|
||
# Run your node | ||
|
||
The Oasis Network consists of several types of nodes, each serving distinct | ||
roles to maintain the functionality, security, and decentralization of the | ||
network. In this section you can find descriptions of the main types of nodes | ||
within the Oasis Network. | ||
|
||
## Validator Node | ||
|
||
A [Validator Node] is an essential component, as Oasis Network uses | ||
proof-of-stake (PoS) consensus mechanisms. It is responsible for verifying transactions and proposing new blocks to be added to the blockchain. Validator | ||
nodes operate on the consensus layer by staking the network's tokens, which | ||
grants them the right to participate in the consensus process. This process | ||
involves validating transactions, signing blocks, and ensuring the integrity of | ||
the blockchain. | ||
|
||
[Validator Node]: ./validator-node.mdx | ||
|
||
## Compute Nodes | ||
|
||
[Compute Nodes] are responsible for executing smart contracts and processing | ||
transactions within a specific ParaTime (Parallel Runtime). These nodes handle | ||
the actual computation tasks, such as running decentralized applications | ||
(dApps), performing data processing, and executing privacy-preserving smart | ||
contracts. | ||
|
||
- **Sapphire Compute Node** is responsible for executing EVM-compatible | ||
privacy-preserving smart contracts and processing transactions within the | ||
Sapphire ParaTime. These nodes validate and execute transactions while | ||
maintaining the confidentiality of sensitive data, which is a crucial aspect | ||
of applications that handle private information or require enhanced security. | ||
This is achieved through trusted execution environments (TEEs) that ensure | ||
data remains encrypted and confidential, even while being processed. | ||
|
||
- **Cipher Compute Node** is responsible for executing privacy-preserving smart | ||
contracts written in Oasis Wasm and processing transactions within the Cipher | ||
ParaTime. These nodes validate and execute transactions while maintaining the | ||
confidentiality of sensitive data, which is a crucial aspect of applications | ||
that handle private information or require enhanced security. This is achieved | ||
through trusted execution environments (TEEs) that ensure data remains | ||
encrypted and confidential, even while being processed. | ||
|
||
- **Emerald Compute Node** is responsible for executing EVM-compatible smart | ||
contracts and processing transactions within the Emerald ParaTime. It performs | ||
tasks such as validating transactions, running EVM-based smart contracts, and | ||
ensuring that the operations within the Emerald ParaTime are carried out | ||
efficiently. | ||
|
||
[Compute Nodes]: ./paratime-node.mdx | ||
|
||
## Client Nodes | ||
|
||
A Client Node is a type of node within the Oasis Network that serves as | ||
an interface for users or other applications to interact with the blockchain. | ||
Unlike compute nodes, which handle transaction processing and smart contract | ||
execution, client nodes are primarily responsible for tasks such as querying | ||
the blockchain, submitting transactions, and retrieving other data from the | ||
network. | ||
|
||
- **[Non-Validator Node]** is a type of node in the Oasis Network that does not | ||
participate in the consensus process of validating and proposing new blocks. | ||
Instead, it has client node functions that support the network's operations and | ||
decentralization. | ||
|
||
- **[Sapphire Client Node]** is a specific type of client node within the Oasis | ||
Network that interacts with the Sapphire ParaTime. The Sapphire ParaTime is | ||
designed to support EVM-compatible confidential smart contracts and | ||
privacy-preserving decentralized applications (dApps) with strong privacy | ||
features and high performance. | ||
|
||
- **[Cipher Client Node]** is a type of node within the Oasis Network designed | ||
to interact specifically with the Cipher ParaTime. The Cipher ParaTime is known | ||
for its strong privacy features, allowing for the execution of confidential | ||
smart contracts and the development of privacy-preserving decentralized | ||
applications (dApps). | ||
|
||
- **[Emerald Client Node]** is a specific type of client node within the Oasis | ||
Network, designed to interact with the Emerald ParaTime. The Emerald ParaTime is | ||
an Ethereum-compatible environment on the Oasis Network, allowing developers | ||
to deploy and manage decentralized applications (dApps) that utilize the | ||
Ethereum Virtual Machine (EVM). | ||
|
||
[Non-Validator Node]: ./non-validator-node.mdx | ||
[Sapphire Client Node]: ./paratime-client-node.mdx | ||
[Cipher Client Node]: ./paratime-client-node.mdx | ||
[Emerald Client Node]: ./paratime-client-node.mdx | ||
|
||
## Archive Node | ||
|
||
An [Archive Node] is a specialized node within the Oasis Network that stores the | ||
entire blockchain history, making it a crucial tool for in-depth analysis, | ||
development, and ensuring that the network's past states remain accessible. | ||
|
||
[Archive Node]: ./archive-node.md | ||
|
||
## Seed Node | ||
|
||
A [Seed Node] is a type of node in the Oasis Network that serves a critical role | ||
in helping other nodes discover peers and join the network (*address book*). | ||
Unlike validator nodes, which participate in the consensus process, Seed Nodes | ||
do not play a direct role in consensus. | ||
|
||
[Seed Node]: ./seed-node.md | ||
|
||
## Key Manager Node | ||
|
||
A [Key Manager Node] is a specialized node in the Oasis Network responsible for | ||
securely managing cryptographic keys used in confidential computing. These nodes | ||
are crucial for the network's privacy-preserving features, enabling secure | ||
encryption and decryption of data processed within Trusted Execution | ||
Environments (TEEs). They play a vital role in enabling the Oasis Network's | ||
secure, decentralized, and privacy-focused operations. | ||
|
||
[Key Manager Node]: ./keymanager-node/README.md | ||
|
||
## Services | ||
|
||
### Rosetta Gateway | ||
|
||
A [Rosetta Gateway] service is a specialized service within the Oasis Network | ||
that implements the [Rosetta API] to provide a standardized and simplified | ||
interface for interacting with the blockchain. This service is crucial for | ||
enabling seamless integration between the Oasis Network and various external | ||
platforms, such as exchanges, wallets, custodians, and blockchain-based | ||
applications. The Rosetta Gateway connects to a [non-validator](#client-nodes) | ||
node. | ||
|
||
[Rosetta Gateway]: https://github.com/oasisprotocol/oasis-rosetta-gateway | ||
[Rosetta API]: https://docs.cdp.coinbase.com/mesh/docs/api-reference | ||
|
||
### Public gRPC | ||
|
||
The [Oasis gRPC protocol] is an efficient, real-time, and cross-platform | ||
communication protocol that allows developers to both manage the Oasis node and communicate with the Oasis network. While each Oasis node opens a gRPC socket, | ||
the public endpoints run a proxy and expose only a small, safe subset of the | ||
API calls publicly. | ||
|
||
[Oasis gRPC protocol]: ../grpc.mdx | ||
|
||
### Web3 Gateway | ||
|
||
A [Web3 Gateway] enables interaction with the Oasis Network using standard | ||
Web3 protocol, which is widely used in the Ethereum ecosystem. It acts as a | ||
bridge between Web3-based applications and the Oasis Network, allowing | ||
developers to leverage the tools, libraries, and practices familiar in | ||
Ethereum development while benefiting from the unique features of the Oasis | ||
Network, such as privacy and confidentiality. The Web3 gateway connects to a | ||
[compute](#compute-nodes) or a [client](#client-nodes) Sapphire or Emerald node. | ||
|
||
[Web3 Gateway]: ../web3.mdx | ||
|
||
## See also | ||
|
||
<DocCardList items={[ | ||
findSidebarItem('/node/run-your-node/maintenance'), | ||
findSidebarItem('/node/run-your-node/advanced'), | ||
findSidebarItem('/node/run-your-node/troubleshooting'), | ||
]} /> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters