Skip to content

Commit

Permalink
Move Run & Secure to References (#346)
Browse files Browse the repository at this point in the history
  • Loading branch information
jribbink authored Sep 20, 2023
1 parent 6145220 commit aff420e
Show file tree
Hide file tree
Showing 52 changed files with 2,669 additions and 44 deletions.
2 changes: 1 addition & 1 deletion docs/architecture/staking/11-machine-account.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Currently Machine Accounts are required only for `collection` and `consensus` no

#### Creation

For new node operators, Machine Accounts are created during the [staking process](../../build/run-and-secure/nodes/flow-port/staking-guide.md) in Flow Port.
For new node operators, Machine Accounts are created during the [staking process](../../references/run-and-secure/nodes/flow-port/staking-guide.md) in Flow Port.
For node operators who initially staked prior to the introduction of Machine Accounts, Machine Accounts can be
created for your staked nodes by following [this guide](../../node-ops/node-operation/machine-existing-operator.mdx).

Expand Down
2 changes: 1 addition & 1 deletion docs/architecture/staking/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ is compatible with Flow Port.

If you created your account using [Flow Port](https://port.onflow.org/),
you can also stake and earn rewards using the Flow Port.
Follow this [step-by-step guide](../../build/run-and-secure/nodes/flow-port/staking-guide.md) to stake using Flow Port.
Follow this [step-by-step guide](../../references/run-and-secure/nodes/flow-port/staking-guide.md) to stake using Flow Port.
Flow Port currently supports staking as a node, delegating,
and reward withdrawal using **Blocto**, **Ledger**, **Lilico**, and **NuFi** accounts / wallets.

Expand Down
2 changes: 1 addition & 1 deletion docs/build/building-vs-other-chains.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ Access Nodes are the node type that are most useful for developers, as they prov
- gRPC
- Mainnet: `access.mainnet.nodes.onflow.org:9000`
- Testnet: `access.devnet.nodes.onflow.org:9000`
- [Specification](./run-and-secure/nodes/access-api.mdx)
- [Specification](../references/run-and-secure/nodes/access-api.mdx)

### Running Your Own Node

Expand Down
2 changes: 1 addition & 1 deletion docs/build/key-concepts/accounts.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ Find [more about the command in the CLI docs](../../tools/flow-cli/accounts/get-

Accounts can be obtained from the access node APIs, currently, there are two gRPC and REST APIs. You can find more information about them here:

**gRPC API** [building-on-flow/nodes/access-api#accounts](../../build/run-and-secure/nodes/access-api.mdx#accounts)
**gRPC API** [building-on-flow/nodes/access-api#accounts](../../references/run-and-secure/nodes/access-api.mdx#accounts)

**REST API** [http-api#tag/Accounts](/http-api#tag/Accounts)

Expand Down
2 changes: 1 addition & 1 deletion docs/build/key-concepts/blocks.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Find [more about the command in the CLI docs](../../tools/flow-cli/get-flow-data

Blocks can be obtained from the access node APIs, currently, there are two gRPC and REST APIs. You can find more information about them here:

[**gRPC Block API**](../../build/run-and-secure/nodes/access-api.mdx#blocks)
[**gRPC Block API**](../../references/run-and-secure/nodes/access-api.mdx#blocks)

[**REST Block API**](/http-api#tag/Blocks)

Expand Down
2 changes: 1 addition & 1 deletion docs/build/key-concepts/collections.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Find [more about the command in the CLI docs](../../tools/flow-cli/get-flow-data

Collections can be obtained from the access node APIs, currently, there are two gRPC and REST APIs. You can find more information about them here:

[**gRPC Collection API**](../../build/run-and-secure/nodes/access-api.mdx#collections)
[**gRPC Collection API**](../../references/run-and-secure/nodes/access-api.mdx#collections)

[**REST Collection API**](/http-api#tag/Collections)

Expand Down
2 changes: 1 addition & 1 deletion docs/build/key-concepts/scripts.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Scripts can be run against previous blocks, allowing you to query historic data

Scripts are executed by being submitted to the Access Node APIs. Currently, there’s support for two APIs:

[**gRPC Script API**](../../build/run-and-secure/nodes/access-api.mdx#scripts)
[**gRPC Script API**](../../references/run-and-secure/nodes/access-api.mdx#scripts)

[**REST Script API**](/http-api#tag/Scripts)

Expand Down
2 changes: 1 addition & 1 deletion docs/build/key-concepts/transactions.md
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ A user can define their own transactions or it can use already defined transacti

Transactions can be submitted and obtained from the access node APIs, currently, there are two gRPC and REST APIs. You can find more information about them here:

[**gRPC Transaction API**](../../build/run-and-secure/nodes/access-api.mdx#transactions)
[**gRPC Transaction API**](../../references/run-and-secure/nodes/access-api.mdx#transactions)

[**REST Transaction API**](/http-api#tag/Transactions)

Expand Down
2 changes: 1 addition & 1 deletion docs/cadence/measuring-time.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ and further optimizations are needed to achieve that.
As of Feb 2021, the rate of block finalization on Mainnet is more than 0.5 blocks/s; with a standard deviation of ±0.1 blocks/s.
Hence, a new block is finalized on average every 2 seconds.
Note that block height only has a loose correlation with time,
as [the block rate naturally fluctuates](../build/run-and-secure/nodes/faq/operators.mdx#does-the-blockheight-go-up-1-every-second).
as [the block rate naturally fluctuates](../references/run-and-secure/nodes/faq/operators.mdx#does-the-blockheight-go-up-1-every-second).

In addition to the natural variation described above,
there are several theoretical block production attacks that could skew this relationship even further.
Expand Down
2 changes: 1 addition & 1 deletion docs/node-ops/node-operation/access-node-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ e737ec6efbd26ef43bf676911cdc5a11ba15fc6562d05413e6589fccdd6c06d5

You need to now register the node on chain by staking the node via [Flow Port](https://port.onflow.org/).

[Here](../../build/run-and-secure/nodes/flow-port/staking-guide.md) is a guide on how to use Flow port if you are not familiar with it.
[Here](../../references/run-and-secure/nodes/flow-port/staking-guide.md) is a guide on how to use Flow port if you are not familiar with it.
If you are staking via a custody provider or would like to directly submit a staking transaction instead follow this [guide](../../architecture/staking/index.md#how-do-i-stake).

Fund you Flow account with at least 100.01 FLOW tokens, which covers the required stake plus the storage deposit.
Expand Down
2 changes: 1 addition & 1 deletion docs/node-ops/node-operation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ Furthermore, Access Node operators can freely rate-limit the amount of resources

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

Expand Down
2 changes: 1 addition & 1 deletion docs/node-ops/node-operation/machine-existing-operator.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ $tree ./bootstrap/
## Create Machine Account

You will now need to copy the Machine account public key displayed in the terminal output and
head over to [Flow Port](../../build/run-and-secure/nodes/flow-port/staking-guide.md#existing-node-operators) to submit a transaction to create a Machine Account.
head over to [Flow Port](../../references/run-and-secure/nodes/flow-port/staking-guide.md#existing-node-operators) to submit a transaction to create a Machine Account.
For example, from the example above, we would copy `f847...` from this line:

```shell Example
Expand Down
2 changes: 1 addition & 1 deletion docs/node-ops/node-operation/observer-node.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Light Node a.k.a Observer Node
sidebar_label: Light Node
---

A light node also known as the observer node is similar to an access node and provides a locally accessible, continuously updated, verified copy of the block data. It serves the [gRPC Access API](../../build/run-and-secure/nodes/access-api.mdx) but unlike an access node, an light node does not need to be staked, and **anyone** can run it without being added to the approved list of nodes.
A light node also known as the observer node is similar to an access node and provides a locally accessible, continuously updated, verified copy of the block data. It serves the [gRPC Access API](../../references/run-and-secure/nodes/access-api.mdx) but unlike an access node, an light node does not need to be staked, and **anyone** can run it without being added to the approved list of nodes.

The light node bootstraps by connecting to an access node and becoming part of the public network comprised of access nodes and other light nodes. It then continuously receives blocks, which the consensus nodes are adding to the chain, either directly from access nodes or from other light nodes that are part of the public network. However, it makes no trust assumption of the upstream access node or the light node which is providing the block and locally verifies that the blocks that are received are the correct extension of the chain e.g. after receiving valid blocks A, B and C when it receives block D, it verifies that block D is indeed signed by the consensus nodes and is a valid next block. The received block data is indexed and made available via the Access API. For Collection, Transactions and Account queries, it delegates those requests to the upstream access node. Similarly, transactions and scripts sent to a light node are also forwarded to the upstream access node. Future versions of the light node will be able to serve this data locally as well.

Expand Down
2 changes: 1 addition & 1 deletion docs/node-ops/running-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ On Flow there is no requirement to run a node to develop applications. For many

# Running a Light Node

There are community access nodes available to use, but they are rate limited. Alternative to an Access node, anyone can run their own Light node. This is a good option if you want to have untrottled access to current Flow blockchain data. [More information](../build/run-and-secure/nodes/index.md#which-node-should-you-run)
There are community access nodes available to use, but they are rate limited. Alternative to an Access node, anyone can run their own Light node. This is a good option if you want to have untrottled access to current Flow blockchain data. [More information](../references/run-and-secure/nodes/index.md#which-node-should-you-run)

![Light nodes](observer-node-arch.png)

Expand Down
2 changes: 1 addition & 1 deletion docs/references/flow-networks/accessing-mainnet.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ func main() {

## Account creation

You can follow the [Flow Port account creation steps](../../build/run-and-secure/nodes/flow-port/index.md#blocto) to create a new mainnet account.
You can follow the [Flow Port account creation steps](../../references/run-and-secure/nodes/flow-port/index.md#blocto) to create a new mainnet account.

If you prefer watching a video, check out this tutorial:

Expand Down
2 changes: 1 addition & 1 deletion docs/references/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Quick references to very helpful parts of developer documentation. Languages to
## Network
Get Flow blockchain data from Access Nodes, both REST and gRPC endpoints are available. Get the current status of mainnet and testnet networks.

- [Flow Access API](../build/run-and-secure/nodes/access-api.mdx)
- [Flow Access API](./run-and-secure/nodes/access-api.mdx)
- [Mainnet](./flow-networks/accessing-mainnet.md): `access.mainnet.nodes.onflow.org:9000`
- [Testnet](./flow-networks/accessing-testnet.md): `access.devnet.nodes.onflow.org:9000`
- [Status Page](https://status.onflow.org/) - Network status page
Expand Down
5 changes: 5 additions & 0 deletions docs/references/run-and-secure/_category_.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
label: Running and Securing Flow
position: 4
customProps:
icon: 🔐
description: Learn about the four Flow node types, and how you can help secure and maintain the Flow blockchain.
72 changes: 72 additions & 0 deletions docs/references/run-and-secure/nodes/access-api-rate-limits.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
title: Flow Access API rate limits on Dapper Labs Access nodes
sidebar_label: Access API Rate Limits
sidebar_position: 2
---

#### Rate limits

Following are the current rate limits for the [Access Node gRPC API](./access-api.mdx) in total across all Dapper Labs Access nodes. The actual limits are enforced by each individual node. If you are using a load balanced endpoint, the limits below are the max rate, and may vary depending on how your requests are routed.

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 access nodes hosted by Dapper Labs. Access nodes run by other node operators will have different rate limits.

##### Mainnet

| gRPC API | Total request per second per client IP |
|:-----------------------------------------------------|:---------------------------------------------:|
| flow.access.AccessAPI/Ping | 2000 |
| flow.access.AccessAPI/GetLatestBlockHeader | 2000 |
| flow.access.AccessAPI/GetBlockHeaderByID | 2000 |
| flow.access.AccessAPI/GetBlockHeaderByHeight | 2000 |
| flow.access.AccessAPI/GetLatestBlock | 2000 |
| flow.access.AccessAPI/GetBlockByID | 2000 |
| flow.access.AccessAPI/GetBlockByHeight | 2000 |
| flow.access.AccessAPI/GetCollectionByID | 2000 |
| flow.access.AccessAPI/SendTransaction | 2000 |
| flow.access.AccessAPI/GetTransaction | 2000 |
| flow.access.AccessAPI/GetTransactionResult | 2000 |
| flow.access.AccessAPI/GetAccount | 2000 |
| flow.access.AccessAPI/GetAccountAtLatestBlock | 2000 |
| flow.access.AccessAPI/GetAccountAtBlockHeight | 2000 |
| flow.access.AccessAPI/ExecuteScriptAtLatestBlock | 100 |
| flow.access.AccessAPI/ExecuteScriptAtBlockID | 100 |
| flow.access.AccessAPI/ExecuteScriptAtBlockHeight | 100 |
| flow.access.AccessAPI/GetEventsForHeightRange | 100 |
| flow.access.AccessAPI/GetEventsForBlockIDs | 100 |
| flow.access.AccessAPI/GetNetworkParameters | 2000 |
| flow.access.AccessAPI/GetLatestProtocolStateSnapshot | 4 |


##### Testnet

| gRPC API | Total request per second per IP |
|:-----------------------------------------------------|:---------------------------------------------:|
| flow.access.AccessAPI/Ping | 2000 |
| flow.access.AccessAPI/GetLatestBlockHeader | 2000 |
| flow.access.AccessAPI/GetBlockHeaderByID | 2000 |
| flow.access.AccessAPI/GetBlockHeaderByHeight | 2000 |
| flow.access.AccessAPI/GetLatestBlock | 2000 |
| flow.access.AccessAPI/GetBlockByID | 2000 |
| flow.access.AccessAPI/GetBlockByHeight | 2000 |
| flow.access.AccessAPI/GetCollectionByID | 2000 |
| flow.access.AccessAPI/SendTransaction | 2000 |
| flow.access.AccessAPI/GetTransaction | 2000 |
| flow.access.AccessAPI/GetTransactionResult | 2000 |
| flow.access.AccessAPI/GetAccount | 2000 |
| flow.access.AccessAPI/GetAccountAtLatestBlock | 2000 |
| flow.access.AccessAPI/GetAccountAtBlockHeight | 2000 |
| flow.access.AccessAPI/ExecuteScriptAtLatestBlock | 200 |
| flow.access.AccessAPI/ExecuteScriptAtBlockID | 200 |
| flow.access.AccessAPI/ExecuteScriptAtBlockHeight | 200 |
| flow.access.AccessAPI/GetEventsForHeightRange | 100 |
| flow.access.AccessAPI/GetEventsForBlockIDs | 100 |
| flow.access.AccessAPI/GetNetworkParameters | 2000 |
| flow.access.AccessAPI/GetLatestProtocolStateSnapshot | 4 |

_The rate limits are the same for the gRPC web interface_

_The rate limits for ALL the REST API is **40** request per second per client IP_

Please note: The rate limits are applied by each of the access nodes behind a load balancer and limits listed here are the aggregate total from all the access nodes. Actual limits may be somewhat less depending on how the requests are routed.
Loading

1 comment on commit aff420e

@vercel
Copy link

@vercel vercel bot commented on aff420e Sep 20, 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.