Skip to content

Commit

Permalink
Merge pull request #897 from oasisprotocol/amela/add-node-descriptions
Browse files Browse the repository at this point in the history
docs: Add  descriptions of node types
  • Loading branch information
amela committed Aug 30, 2024
2 parents 49bdb07 + 1305053 commit 0290f49
Show file tree
Hide file tree
Showing 5 changed files with 166 additions and 6 deletions.
2 changes: 1 addition & 1 deletion docs/README.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ queries on the network.
findSidebarItem('/node/'),
findSidebarItem('/node/mainnet/'),
findSidebarItem('/node/testnet/'),
findSidebarItem('/node/run-your-node'),
findSidebarItem('/node/run-your-node/'),
]} />

## Build ParaTimes
Expand Down
2 changes: 1 addition & 1 deletion docs/node/grpc.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,6 @@ To make a tunneled Unix socket over SSH permanent, consider using [autossh].
## See also

<DocCardList items={[
findSidebarItem('/node/run-your-node'),
findSidebarItem('/node/run-your-node/'),
findSidebarItem('/node/web3'),
]} />
161 changes: 161 additions & 0 deletions docs/node/run-your-node/README.mdx
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'),
]} />
2 changes: 1 addition & 1 deletion docs/node/web3.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,6 @@ extended downtime while the Web3 Gateway is reindexing the blocks.
## See also

<DocCardList items={[
findSidebarItem('/node/run-your-node'),
findSidebarItem('/node/run-your-node/'),
findSidebarItem('/node/grpc'),
]} />
5 changes: 2 additions & 3 deletions sidebarNode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,8 @@ export const sidebarNode: SidebarsConfig = {
label: 'Run Your Node',
collapsible: false,
link: {
type: 'generated-index',
description: "This section provides documentation on how to set up an Oasis Node running on your computer.",
slug: 'node/run-your-node',
type: 'doc',
id: 'node/run-your-node/README',
},
items: [
{
Expand Down

0 comments on commit 0290f49

Please sign in to comment.