Skip to content

Commit

Permalink
Merge pull request #461 from onflow/revert-460-revert-456-nialexsan/v…
Browse files Browse the repository at this point in the history
…3-mobile-section

Revert "Revert "Nialexsan/v3 mobile section""
  • Loading branch information
nialexsan authored Nov 30, 2023
2 parents 77da568 + b66d0bc commit 4b84bfa
Show file tree
Hide file tree
Showing 101 changed files with 1,295 additions and 1,342 deletions.
2 changes: 2 additions & 0 deletions docs/architecture/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,6 @@ import DocCardList from '@theme/DocCardList';
import { useDocsSidebar, isSamePath } from '@docusaurus/theme-common/internal';
import { useLocation } from '@docusaurus/router';

# Architecture

<DocCardList items={useDocsSidebar().items.filter(item => !isSamePath(item.href, useLocation().pathname))}/>
2 changes: 2 additions & 0 deletions docs/architecture/node-ops/_category_.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
position: 2
label: Node Ops
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ Flow multirole architecture makes it more scalable and provides several node typ

---

The different types of nodes are described [here](./node-roles.mdx). As node operator, you can choose to run any of the different types of node that best fits your needs.
The different types of nodes are described [here](./nodes/node-operation/node-roles.md). As node operator, you can choose to run any of the different types of node that best fits your needs.

The nodes are classified as follows,

![Flownodesdiagram.png](Flownodesdiagram.png)
![Flownodesdiagram.png](nodes/node-operation/Flownodesdiagram.png)

## Light node a.k.a. Observer node

Expand All @@ -37,11 +37,11 @@ In addition to supporting dapps, an observer node can also be run by access node

The observer node is not staked but still provides the same API as the access node.

<Callout type="info">
<br />
To run a light node, follow this [guide](./observer-node.mdx)
<br />
</Callout>
:::info

To run a light node, follow this [guide](./nodes/node-operation/observer-node.md)

:::

## Archive node

Expand All @@ -68,37 +68,33 @@ In a nutshell, Full Nodes are staked network participants that drive network pro
---

If you want local access to the protocol state data (blocks, collections, transactions) and do not want to use one of the community access nodes you can run an access node.
Dapp developers, chain explorers, chain analytics etc. who want exclusive access to chain data and not be subject to the rate-limits on the community access node can choose to run an access node.
Dapp developers, chain explorers, chain analytics and others who want exclusive access to chain data and not be subject to the rate-limits on the community access node can choose to run an access node.

An access node is minimally staked for network security.
The central goal for Access Nodes is to provide RPC functionality to its node operator.
In comparison, contributing to protocol progress (e.g. routing transactions to collector clusters, relaying blocks to the unstaked peer-to-peer network, etc.) should only take up a marginal fraction an Access Node's computational resources.
Furthermore, Access Node operators can freely rate-limit the amount of resources their Access Node dedicates to supporting the broader ecosystem. Therefore, Access Nodes do not receive staking rewards.

<Callout type="info">
<br />
Launch an access node using QuickNode
<a
href="https://www.quicknode.com/chains/flow"
target="_blank"
>
https://www.quicknode.com/chains/flow
</a>
<br/>
</Callout>


<Callout type="info">
<br />
To run a self-hosted access node, follow this [guide](./access-node-setup.md)
<br />
</Callout>

<Callout type="tip">
<br />
Alternately, instead of running an access node, you can use the [Flow community](../../../references/run-and-secure/nodes/access-api.md) access nodes or the ones run by any of the other node operators.
<br />
</Callout>
:::info

Launch an access node using QuickNode

[https://www.quicknode.com/chains/flow](https://www.quicknode.com/chains/flow)

:::


:::info

To run a self-hosted access node, follow this [guide](./nodes/node-operation/access-node-setup.md)

:::

:::tip

Alternately, instead of running an access node, you can use the [Flow community](./nodes/access-api.md) access nodes or the ones run by any of the other node operators.

:::

### Validator node

Expand All @@ -124,8 +120,8 @@ Before proceeding, ensure you have the stake required for your new node and that

To set up a new staked node after it has been authorized by the Flow governance working group, you will need to complete the following steps:

1. [Provision](./node-setup.mdx) the machine on which your node will run.
1. [Provision](./nodes/node-operation/node-setup.md) the machine on which your node will run.

2. [Generate and register](./node-bootstrap.mdx) your node identity.
2. [Generate and register](./nodes/node-operation/node-bootstrap.md) your node identity.

3. [Start](./node-bootstrap.mdx#step-3---start-your-flow-node) your node!
3. [Start](./nodes/node-operation/node-bootstrap.md#step-3---start-your-flow-node) your node!
1 change: 1 addition & 0 deletions docs/architecture/node-ops/nodes/_category_.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
label: Flow Nodes
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Please note, these limits only apply to the public (community) access nodes.

The public access nodes are hosted by [QuickNode](https://www.quicknode.com/chains/flow).

> If you require higher limits, you can either run your own Access node (see this [guide](../node-operation/access-node-setup.md)) or use [QuickNode](https://www.quicknode.com/chains/flow) to run a fully-managed access node.
> If you require higher limits, you can either run your own Access node (see this [guide](./node-operation/access-node-setup.md)) or use [QuickNode](https://www.quicknode.com/chains/flow) to run a fully-managed access node.

| gRPC API | Total requests per second per client IP |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ The Access Nodes hosted by DapperLabs are accessible at:
| Testnet | `access.devnet.nodes.onflow.org:9000` | `testnet.onflow.org` | `testnet.onflow.org` |

#### Mainnet
##### We are still in the process of aggregating the past chain data but mainnet 5 to mainnet 1 spork data can be retrieved from the Access nodes mentioned [here](../node-operation/spork.mdx#mainnet)
##### We are still in the process of aggregating the past chain data but mainnet 5 to mainnet 1 spork data can be retrieved from the Access nodes mentioned [here](./node-operation/spork.md#mainnet)

Production network where the Flow blockchain is running. Funds are at risk.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Following are the current rate limits for the [Archive Node gRPC API](./archive-
Once the limit has reached, the client will receive an RPC error `ResourceExhausted` in the gRPC response.

Please note, these limits only apply to the archive nodes hosted by Dapper Labs. Archive nodes run by other node operators will have different rate limits.
Also, all the gRPC endpoints listed below start with `flow.access.AccessAPI` due to the Archive Access API having the same gRPC protobuf definitions as the original Access API from our [Access Nodes](../node-operation/node-roles.mdx#access). For information on rate limitting of the Access API for Flow's Access Nodes please visit [this page](./access-api-rate-limits.md).
Also, all the gRPC endpoints listed below start with `flow.access.AccessAPI` due to the Archive Access API having the same gRPC protobuf definitions as the original Access API from our [Access Nodes](./node-operation/node-roles.md#access). For information on rate limitting of the Access API for Flow's Access Nodes please visit [this page](./access-api-rate-limits.md).

##### Mainnet

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
---
title: Operator FAQ
sidebar_position: 1
---

# Operator FAQ

### Can anybody run a node? What is the approval process?

Anyone can run an [observer node](./observer-node.mdx).
Anyone can run an [observer node](./observer-node.md).

Very soon, Access nodes too will be permissionless and anyone will be able to run one.

Expand All @@ -18,29 +19,29 @@ In the long-term, anyone can run a node validator on Flow.

### How do I generate keys?

Please follow the instructions provided here: [Generate Your Node Keys](./node-bootstrap.mdx#generating-your-node-id)
Please follow the instructions provided here: [Generate Your Node Keys](./node-bootstrap.md#generating-your-node-id)

### How do I check on the status of my node?

Please follow the instructions provided here: [Monitoring nodes](./monitoring-nodes.mdx)
Please follow the instructions provided here: [Monitoring nodes](./monitoring-nodes.md)

### Can I bootstrap and run a node at any time?

Flow allows nodes to join/leave the network each time a new epoch begins (roughly once per week).
See [Staking & Epochs](../staking/index.md#epochs) for general information and [Node Setup](./node-bootstrap.mdx#timing) for a guide to running a new node.
See [Staking & Epochs](../../../staking/index.md#epochs) for general information and [Node Setup](./node-bootstrap.md#timing) for a guide to running a new node.

### Would it hurt the network to have a node that constantly spins up and down?

All staked nodes except access nodes, have to be online at all time. A staked node, other than an access node, which is not online can cause severe degradation of network performance and will be subjected to slashing of rewards.
A way to prevent this is to check your equipment meets Flow's [recommended requirements](./node-setup.mdx#hardware-requirements), periodically checking for updates and announcements in Discord but also using a node monitoring system for when your node does go offline.
A way to prevent this is to check your equipment meets Flow's [recommended requirements](./node-setup.md#hardware-requirements), periodically checking for updates and announcements in Discord but also using a node monitoring system for when your node does go offline.

### Does Flow has a regular schedule for Sporks?

Yes, see [Upcoming Sporks](./upcoming-sporks.mdx) for the latest schedule. Currently, Flow has a Mainnet Spork and a Testnet Spork roughly every two months.
Yes, see [Upcoming Sporks](./upcoming-sporks.md) for the latest schedule. Currently, Flow has a Mainnet Spork and a Testnet Spork roughly every two months.

### How do I update the Node Software?

One of the reasons for a [spork](./spork.mdx) is to make sure all nodes update to the latest software version. Hence, you should have the latest software update as long as you are participating in each spork.
One of the reasons for a [spork](./spork.md) is to make sure all nodes update to the latest software version. Hence, you should have the latest software update as long as you are participating in each spork.
However, if we do release any software update in between a Spork (e.g. an emergency patch) we will announce it on Discord.

### Is there any way to know if a node is currently online?
Expand All @@ -50,11 +51,11 @@ To verify if a node is online, please [setup metrics](./FAQ.md#how-do-i-check-on
### Can I migrate a node to a new machine?

Yes, as long as you retain the `boostrap` information which includes the node staking key, networking key, IP address and port from the old node to the new.
More on this [here](./node-migration.mdx)
More on this [here](./node-migration.md)

### Where can I find how many nodes are currently running Flow?

If you are running a node, then you most definitely have this information on your node in the file `<your bootstrap dir>/public-root-information/node-infos.pub.json`. If you are not running a node, you can find this information by using a Cadence script to query the [Staking Smart Contract](../../../references/core-contracts/06-staking-contract-reference.md) (or check [Flowdiver](https://flowdiver.io/staking/overview))
If you are running a node, then you most definitely have this information on your node in the file `<your bootstrap dir>/public-root-information/node-infos.pub.json`. If you are not running a node, you can find this information by using a Cadence script to query the [Staking Smart Contract](../../../../references/core-contracts/06-staking-contract-reference.md) (or check [Flowdiver](https://flowdiver.io/staking/overview))

### Why do I need to update my node's ulimit?

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
label: Node Operation
position: 5
Loading

1 comment on commit 4b84bfa

@vercel
Copy link

@vercel vercel bot commented on 4b84bfa Nov 30, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.