-
Notifications
You must be signed in to change notification settings - Fork 186
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve docs clarity and usability (#1857)
* upgrade Docusaurus to v3 * add search functionality * revamp various guides and introduce new ones * change font to DM Sans * add configuration options table generator * add FAQ page * add API reference and request builder
- Loading branch information
1 parent
3d16548
commit 315cfd7
Showing
64 changed files
with
10,694 additions
and
4,890 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,44 @@ | ||
# Website | ||
# Juno Documentation | ||
|
||
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. | ||
The Juno Documentation can be accessed at <https://juno.nethermind.io/> and is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. | ||
|
||
### Installation | ||
## Installation | ||
|
||
``` | ||
$ npm install | ||
```bash | ||
npm install | ||
``` | ||
|
||
### Local Development | ||
## Local Development | ||
|
||
``` | ||
$ npm run start | ||
```bash | ||
npm run start # Run 'node generate-config.js' in the root directory to generate the Juno configuration options table | ||
``` | ||
|
||
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. | ||
|
||
### Build | ||
## Deployment | ||
|
||
```bash | ||
npm run build # Runs 'node generate-config.js' and then 'docusaurus build' | ||
# The 'generate-config.js' script extracts Juno's configuration details and generates a table for the Configuring Juno guide | ||
``` | ||
$ npm run build | ||
|
||
This command generates static content into the `build` directory and can be served using any static contents hosting service. Deployment is handled using GitHub pages. | ||
|
||
## Troubleshooting | ||
|
||
Docusaurus depends heavily on caching to improve site performance. If you make changes that do not appear in the website, try clearing the cache by running: | ||
|
||
```bash | ||
npm run clear | ||
``` | ||
|
||
This command generates static content into the `build` directory and can be served using any static contents hosting service. | ||
## Versioning | ||
|
||
To generate a new version of the documentation, run the following command: | ||
|
||
```bash | ||
npm run docusaurus docs:version <VERSION NAME> | ||
``` | ||
|
||
Deployment is handled using GitHub pages. | ||
To view versions of the documentation that have not yet been released, visit `http://localhost:3000/next/`. |
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,48 @@ | ||
<!-- This file is generated automatically. Any manual modifications will be overwritten. --> | ||
|
||
| Config Option | Default Value | Description | | ||
| - | - | - | | ||
| `cn-core-contract-address` | | Custom network core contract address | | ||
| `cn-feeder-url` | | Custom network feeder URL | | ||
| `cn-gateway-url` | | Custom network gateway URL | | ||
| `cn-l1-chain-id` | | Custom network L1 chain id | | ||
| `cn-l2-chain-id` | | Custom network L2 chain id | | ||
| `cn-name` | | Custom network name | | ||
| `cn-unverifiable-range` | `[]` | Custom network range of blocks to skip hash verifications (e.g. `0,100`) | | ||
| `colour` | `true` | Use `--colour=false` command to disable colourized outputs (ANSI Escape Codes) | | ||
| `config` | | The YAML configuration file | | ||
| `db-cache-size` | `8` | Determines the amount of memory (in megabytes) allocated for caching data in the database | | ||
| `db-max-handles` | `1024` | A soft limit on the number of open files that can be used by the DB | | ||
| `db-path` | `juno` | Location of the database files | | ||
| `eth-node` | | WebSocket endpoint of the Ethereum node. To verify the correctness of the L2 chain, Juno must connect to an Ethereum node and parse events in the Starknet contract | | ||
| `grpc` | `false` | Enable the HTTP gRPC server on the default port | | ||
| `grpc-host` | `localhost` | The interface on which the gRPC server will listen for requests | | ||
| `grpc-port` | `6064` | The port on which the gRPC server will listen for requests | | ||
| `gw-api-key` | | API key for gateway endpoints to avoid throttling | | ||
| `gw-timeout` | `5` | Timeout for requests made to the gateway | | ||
| `http` | `false` | Enables the HTTP RPC server on the default port and interface | | ||
| `http-host` | `localhost` | The interface on which the HTTP RPC server will listen for requests | | ||
| `http-port` | `6060` | The port on which the HTTP server will listen for requests | | ||
| `log-level` | `info` | Options: trace, debug, info, warn, error | | ||
| `max-vm-queue` | | Maximum number for requests to queue after reaching max-vms before starting to reject incoming requests. Default is set to double the value of `max-vms` | | ||
| `max-vms` | | Maximum number for VM instances to be used for RPC calls concurrently. Default is set to three times the number of CPU cores | | ||
| `metrics` | `false` | Enables the Prometheus metrics endpoint on the default port | | ||
| `metrics-host` | `localhost` | The interface on which the Prometheus endpoint will listen for requests | | ||
| `metrics-port` | `9090` | The port on which the Prometheus endpoint will listen for requests | | ||
| `network` | `mainnet` | Options: mainnet, sepolia, sepolia-integration | | ||
| `p2p` | `false` | EXPERIMENTAL: Enables p2p server | | ||
| `p2p-addr` | | EXPERIMENTAL: Specify p2p source address as multiaddr | | ||
| `p2p-feeder-node` | `false` | EXPERIMENTAL: Run juno as a feeder node which will only sync from feeder gateway and gossip the new blocks to the network | | ||
| `p2p-peers` | | EXPERIMENTAL: Specify list of p2p peers split by a comma. These peers can be either Feeder or regular nodes | | ||
| `p2p-private-key` | | EXPERIMENTAL: Hexadecimal representation of a private key on the Ed25519 elliptic curve | | ||
| `pending-poll-interval` | `5` | Sets how frequently pending block will be updated (0s will disable fetching of pending block) | | ||
| `pprof` | `false` | Enables the pprof endpoint on the default port | | ||
| `pprof-host` | `localhost` | The interface on which the pprof HTTP server will listen for requests | | ||
| `pprof-port` | `6062` | The port on which the pprof HTTP server will listen for requests | | ||
| `remote-db` | | gRPC URL of a remote Juno node | | ||
| `rpc-call-max-steps` | `4000000` | Maximum number of steps to be executed in starknet_call requests | | ||
| `rpc-cors-enable` | `false` | Enable CORS on RPC endpoints | | ||
| `rpc-max-block-scan` | `18446744073709551615` | Maximum number of blocks scanned in single starknet_getEvents call | | ||
| `ws` | `false` | Enables the WebSocket RPC server on the default port | | ||
| `ws-host` | `localhost` | The interface on which the WebSocket RPC server will listen for requests | | ||
| `ws-port` | `6061` | The port on which the WebSocket server will listen for requests | |
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,102 @@ | ||
--- | ||
title: Configuring Juno | ||
--- | ||
|
||
# Configuring Juno :gear: | ||
|
||
Juno can be configured using several methods, with the following order of precedence: | ||
|
||
1. [Command line parameters (flags)](#command-line-params) | ||
2. [Environment variables](#environment-variables) | ||
3. [Configuration file](#configuration-file) | ||
|
||
## Command line params | ||
|
||
Juno can be configured directly on the command line by prefixing `--` to each option name: | ||
|
||
```bash | ||
./build/juno --http --http-port 6060 --http-host 0.0.0.0 | ||
``` | ||
|
||
When using Docker, append the command line parameters after the image name to configure Juno: | ||
|
||
```bash | ||
docker run nethermind/juno --http --http-port 6060 --http-host 0.0.0.0 | ||
``` | ||
|
||
:::tip | ||
Command line parameters override [environment variables](#environment-variables) and [configuration file](#configuration-file). | ||
::: | ||
|
||
## Environment variables | ||
|
||
Juno can be configured through environment variables by prefixing the variable names with `JUNO_` and using the configuration options in [SCREAMING_SNAKE_CASE](https://en.wiktionary.org/wiki/screaming_snake_case) format. | ||
|
||
To set the `http`, `http-port`, and `http-host` configurations, Juno should be run in this format: | ||
|
||
```bash | ||
JUNO_HTTP=true JUNO_HTTP_PORT=6060 JUNO_HTTP_HOST=0.0.0.0 ./build/juno | ||
``` | ||
|
||
When using Docker, start Juno using the `-e` command option: | ||
|
||
```bash | ||
docker run \ | ||
-e "JUNO_HTTP=true JUNO_HTTP_PORT=6060 JUNO_HTTP_HOST=0.0.0.0" \ | ||
nethermind/juno | ||
``` | ||
|
||
:::tip | ||
Environment variables rank second in configuration precedence. [Command line parameters](#command-line-params) override environment variables. | ||
::: | ||
|
||
## Configuration file | ||
|
||
Juno can be configured using a [YAML](https://en.wikipedia.org/wiki/YAML) file: | ||
|
||
```yaml title="Sample YAML File" showLineNumbers | ||
log-level: info | ||
network: mainnet | ||
http: true | ||
http-port: 6060 | ||
metrics: true | ||
metrics-port: 9090 | ||
``` | ||
To run Juno with a configuration file, use the `config` option to specify the path of the configuration file: | ||
|
||
```bash | ||
# Standalone binary | ||
./build/juno --config <CONFIG FILE PATH> | ||
# Docker container | ||
docker run nethermind/juno --config <CONFIG FILE PATH> | ||
``` | ||
|
||
:::info | ||
By default, Juno looks for the configuration file in the `$XDG_CONFIG_HOME` directory. | ||
::: | ||
|
||
:::tip | ||
Configuration file rank third in configuration precedence. [Command line parameters](#command-line-params) and [environment variables](#environment-variables) override configuration file. | ||
::: | ||
|
||
## Configuration options | ||
|
||
To list all available command line options, you can use the `--help` parameter: | ||
|
||
```bash | ||
# Standalone binary | ||
./build/juno --help | ||
# Docker container | ||
docker run nethermind/juno --help | ||
``` | ||
|
||
Below is a list of all configuration options available in Juno, along with their default values and descriptions: | ||
|
||
```mdx-code-block | ||
import ConfigOptions from "./_config-options.md"; | ||
<ConfigOptions /> | ||
``` |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.