diff --git a/docs/getting-started/running-a-public-subtensor.md b/docs/getting-started/running-a-public-subtensor.md deleted file mode 100644 index 8dc023484e..0000000000 --- a/docs/getting-started/running-a-public-subtensor.md +++ /dev/null @@ -1,267 +0,0 @@ ---- -title: "Running a Public Subtensor" ---- -import ThemedImage from '@theme/ThemedImage'; -import useBaseUrl from '@docusaurus/useBaseUrl'; - -# Running a Public Subtensor - -You can run a public subtensor node and synchronize with the Bittensor network. You can run this subtensor node as either a **lite node** or as an **archive node**, and connect and sync with either the Bittensor mainchain or the testchain. This document describes how to run a public subtensor node either by compiling the subtensor source code into a binary and executing this binary, or by using a Docker container. - -## Lite node vs archive node - -A public subtensor node refers to an internet-connected computer that is synchronized with the Bittensor blockchain database. A **lite node** or an **archive node** is a type of public subtensor node. - -:::tip a subtensor node is not a neuron -A subtensor node is different from a Bittensor neuron. A Bittensor neuron is either a subnet validator node or a subnet miner node—it exists in a subnet, and it does not contain blockchain database. -::: - -Normally, a node in Bittensor blockchain must always be synchronized to the latest blockchain ledger state. Such a blockchain node accomplishes this by holding a copy of the entire Bittensor blockchain database, from the genesis block all the way to the current block. However, holding an entire copy of blockchain ledger state, which is continously increasing in size, can be expensive. Hence, two types of nodes, a lite node and an archive node, are defined, as below: - -- A **lite node** is configured to synchronize with only a few latest blocks of the Bittensor blockchain, and not the entire blockchain. The purpose of a lite node is to serve, with minimal storage requirements, as a local entry point into the Bittensor mainchain or testchain. A lite node's storage is always refreshed with only the latest few blocks from the Bittensor blockchain. - :::tip lite node for a subnet miner - A subnet miner should use a local lite node to communicate with the Bittensor blockchain. - ::: - -- On the other hand, an **archive node** stores all the Bittensor blockchain blocks from genesis up to the most recent block. - :::tip archive node for a blockchain explorer - Applications such as Bittensor blockchain explorer, for example, [Taostats](https://taostats.io/) that require access to historical blockchain data use an archive node. - ::: - -## A public subtensor vs a local blockchain - -Note that running a public subtensor node locally, as described above, is not the same as [running a local blockchain, also referred as running on staging](https://github.com/opentensor/bittensor-subnet-template/blob/main/docs/running_on_staging.md). When you run a local blockchain, it is for the purposes of developing and testing your subnet incentive mechanism. This local blockchain is not public and hence it is isolated from any Bittensor network. See the below diagram. - -
- -
- -## Query archived data - -We recommend that you use archive public subtensor node to retrieve blockchain data older than the previous 300 blocks. See the below example: - -For example, to sync with a specific block number `12345` that is older than the 300 blocks: - -```python -import bittensor as bt -meta = bt.subtensor('archive').metagraph(netuid=18, block=12345) -print(meta) -``` - -:::tip See also -Also see the [`metagraph` API reference](https://docs.bittensor.com/python-api/html/autoapi/bittensor/metagraph/index.html#bittensor.metagraph.metagraph.sync). -::: - -## System requirements - -To run a public subtensor, make sure that your computer satisfies the following system requirements: - -- Currently only x86_64 Linux architecture is supported. -- Subtensor requires approximately ~286 MiB to run. -- Only Linux OS and macOS are supported. - -### Linux x86_64 - -Requirements: - -- Linux kernel 2.6.32+. -- glibc 2.11+. - -### macOS x86_64 - -Requirements: - -- macOS 10.7+ - -## Network requirements and port settings - -After you install the subtensor as per the below instructions, make sure that you open network ports on your subtensor node. This will allow other peer subtensor nodes to connect to your subtensor node. - -- Your subtensor node must have access to the public internet. -- Your subtensor node runs in an IPv4 network. - -### Port settings - -Make sure that your subtensor node listens on the following ports: - -- `9944` - Websocket. This port is used by Bittensor. This port only accepts connections from ``localhost``. Make sure this port is firewalled **off** from the public internet domain. -- `9933` - RPC. This port should be opened but it is not used. -- `30333` - p2p socket. This port should accept connections from other subtensor nodes on the internet. Make sure your firewall **allows** incoming traffic to this port. -- We assume that your default outgoing traffic policy is `ACCEPT`. If not, make sure that outbound traffic on port 30333 is allowed. - -## Method 1: By compiling the source code - -### Install basic packages - -Install the basic requirements by running the below command on a terminal. - -```bash -sudo apt install build-essential git make clang libssl-dev llvm libudev-dev protobuf-compiler -y -``` - -### Install Rust - -Next, install Rust and update the environment by running the following commands: - -```bash -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup-init.sh -``` - -Next, - -```bash -chmod +x rustup-init.sh -``` - -Then, - -```bash -./rustup-init.sh # You can select default options in the prompts you will be given -``` - -and finally, - -```bash -source "$HOME/.cargo/env" -``` - -### Update rustup - -Run the below command: - -```bash -rustup default stable && \ - rustup update && \ - rustup update nightly && \ - rustup target add wasm32-unknown-unknown --toolchain nightly -``` - -### Compile - -Next, compile the subtensor source code. Follow the below steps: - -Clone the subtensor repo: - -```bash -git clone https://github.com/opentensor/subtensor.git -``` - -`cd` into the subtensor directory: - -```bash -cd subtensor -``` - -Compile with `cargo`: - -```bash -cargo build --release --features runtime-benchmarks -``` - -You can now run the public subtensor node either as a lite node or as an archive node. See below: - -### Lite node on mainchain - -To run a lite node connected to the mainchain, execute the below command: - -```bash -sudo ./scripts/run/subtensor.sh -e binary --network mainnet --node-type lite -``` - -### Archive node on mainchain - -To run an archive node connected to the mainchain, execute the below command: - -```bash -sudo ./scripts/run/subtensor.sh -e docker --network mainnet --node-type archive -``` - -### Lite node on testchain - -To run a lite node connected to the testchain, execute the below command: - -```bash -sudo ./scripts/run/subtensor.sh -e binary --network testnet --node-type lite -``` - -### Archive node on testchain - -To run an archive node connected to the testchain, execute the below command: - -```bash -sudo ./scripts/run/subtensor.sh -e docker --network testnet --node-type archive -``` - -## Method 2: Using Docker - -### Install git - -`sudo apt install git` - -### Install Docker - -Follow Docker's [official installation guides](https://docs.docker.com/engine/install/). - -### Clone the subtensor repo - -Clone the subtensor repo: - -```bash -git clone https://github.com/opentensor/subtensor.git -``` - -Then `cd` into the subtensor directory: - -```bash -cd subtensor -``` - -:::tip Run Docker first -Before you proceed, make sure that Docker is running. -::: - -### Lite node on mainchain - -To run a lite node connected to the Bittensor mainchain, run the below command. - -```bash -sudo ./scripts/run/subtensor.sh -e docker --network mainnet --node-type lite -``` - -### Archive node on mainchain - -To run an archive node connected to the Bittensor mainchain, run the below command. - -```bash -sudo ./scripts/run/subtensor.sh -e docker --network mainnet --node-type archive -``` - -### Lite node on testchain - -To run a lite node connected to the Bittensor testchain, run the below command. - -```bash -sudo ./scripts/run/subtensor.sh -e docker --network testnet --node-type lite -``` - -### Archive node on testchain - -To run an archive node connected to the Bittensor testchain, run the below command. - -```bash -sudo ./scripts/run/subtensor.sh -e docker --network testnet --node-type archive -``` - -## On cloud - -:::danger Not tested on cloud -We have not tested these installation scripts on any cloud service. In addition, if you are using Runpod cloud service, then note that this service is already [containerized](https://docs.runpod.io/pods/overview). Hence, the only option available to you is to [compile from source](#method-1-by-compiling-the-source-code) but these scripts have not been tested on Runpod. -::: - diff --git a/docs/questions-and-answers.md b/docs/questions-and-answers.md index 72c84e9235..4b51042fee 100644 --- a/docs/questions-and-answers.md +++ b/docs/questions-and-answers.md @@ -58,7 +58,7 @@ See more here in [How a subnet works](learn/introduction.md#how-a-subnet-works). Yes. As we saw in the above [So where does the blockchain come in](#so-where-does-the-blockchain-come-in) section, the subtensor blockchain is an essential part of the Bittensor. This subtensor blockchain is like any blockchain, i.e., there are decentralized validator nodes that validate the transactions coming into the subtensor blockchain and post them in the subtensor blockchain ledger. Blocks containing such transactions are processed at the rate of one block every 12 seconds. You can run your own public subtensor node to synchronize with the Bittensor mainchain or testchain. :::tip See also -See [Running a Public Subtensor](getting-started/running-a-public-subtensor.md). +See [Subtensor Nodes](./subtensor-nodes/index.md). ::: diff --git a/docs/subtensor-nodes/index.md b/docs/subtensor-nodes/index.md new file mode 100644 index 0000000000..2694dec24d --- /dev/null +++ b/docs/subtensor-nodes/index.md @@ -0,0 +1,84 @@ +--- +title: "Subtensor Node Basics" +--- +import ThemedImage from '@theme/ThemedImage'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + +# Subtensor Node Basics + +You can run a public subtensor node and synchronize with the Bittensor network. You can run this subtensor node as either a **lite node** or as an **archive node**, and connect and sync with either the Bittensor mainchain or the testchain. This document describes how to run a public subtensor node either by compiling the subtensor source code into a binary and executing this binary, or by using a Docker container. + +## Lite node vs archive node + +A public subtensor node refers to an internet-connected computer that is synchronized with the Bittensor blockchain database. A **lite node** or an **archive node** is a type of public subtensor node. + +:::tip a subtensor node is not a neuron +A subtensor node is different from a Bittensor neuron. A Bittensor neuron is either a subnet validator node or a subnet miner node—it exists in a subnet, and it does not contain blockchain database. +::: + +Normally, a node in Bittensor blockchain must always be synchronized to the latest blockchain ledger state. Such a blockchain node accomplishes this by holding a copy of the entire Bittensor blockchain database, from the genesis block all the way to the current block. However, holding an entire copy of blockchain ledger state, which is continously increasing in size, can be expensive. Hence, two types of nodes, a lite node and an archive node, are defined for subtensor, as below: + +### Lite node + +A **lite node** is configured to perform warp synchronization, which primarily syncs with the blocks that have been finalized, and not the entire blockchain. + +:::tip flags for lite node +Use `--sync=warp` when starting a subtensor node. See [Using Source Code](./using-source.md#run-the-subtensor-node). +::: + +The lite node warps (jumps) directly to the latest finalized block, downloading the complete blockchain state at that point. The purpose of a lite node is to get up and running quickly and serve, with minimal storage requirements, as a local entry point into the Bittensor mainchain or testchain. + + **Verification of chain history**: To ensure blockchain validity, a lite node downloads and verifies finality proofs all the way back to the genesis block (the first block). These proofs confirm the legitimacy of the chain's history without processing every single block. + + **Background fill**: The lite node, while actively participating in the network, still downloads and processes historical blocks in the background to build the complete blockchain database. This download happens when the node is less busy. + + :::tip lite node for a subnet miner + A subnet miner should use a local lite node to communicate with the Bittensor blockchain. + ::: + +### Archive node + +On the other hand, an **archive node** downloads and validates all the Bittensor blockchain blocks from genesis up to the most recent block. + +:::tip flags for archive node +Use `--sync=full` and `--pruning archive` when starting a subtensor node. See [Using Source Code](./using-source.md#run-the-subtensor-node). +::: + +The full synchronization performed by an archive node can be significantly slower than warp sync (done by a lite node) as it involves processing every block. Also, archive nodes require substantially more storage space due to the complete historical data. + + :::tip archive node for a blockchain explorer + Applications such as Bittensor blockchain explorer, for example, [Taostats](https://taostats.io/) that require access to historical blockchain data use an archive node. + ::: + +## A public subtensor vs a local blockchain + +Note that running a public subtensor node locally, as described above, is not the same as [running a local blockchain, also referred as running on staging](https://github.com/opentensor/bittensor-subnet-template/blob/main/docs/running_on_staging.md). When you run a local blockchain, it is for the purposes of developing and testing your subnet incentive mechanism. This local blockchain is not public and hence it is isolated from any Bittensor network. See the below diagram. + +
+ +
+ +## Query archived data + +We recommend that you use archive public subtensor node to retrieve blockchain data older than the previous 300 blocks. See the below example: + +For example, to sync with a specific block number `12345` that is older than the 300 blocks: + +```python +import bittensor as bt +meta = bt.subtensor('archive').metagraph(netuid=18, block=12345) +print(meta) +``` + +:::tip See also +Also see the [`metagraph` API reference](https://docs.bittensor.com/python-api/html/autoapi/bittensor/metagraph/index.html#bittensor.metagraph.metagraph.sync). +::: + + diff --git a/docs/subtensor-nodes/subtensor-node-requirements.md b/docs/subtensor-nodes/subtensor-node-requirements.md new file mode 100644 index 0000000000..f28aeac18b --- /dev/null +++ b/docs/subtensor-nodes/subtensor-node-requirements.md @@ -0,0 +1,43 @@ +--- +title: "Subtensor Node Requirements" +--- +import ThemedImage from '@theme/ThemedImage'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + +# Subtensor Node Requirements + +To run a public subtensor, make sure that your computer satisfies the following system requirements: + +- Currently only x86_64 Linux architecture is supported. +- Subtensor requires approximately ~286 MiB to run. +- Only Linux OS and macOS are supported. + +## Linux x86_64 + +Requirements: + +- Linux kernel 2.6.32+. +- glibc 2.11+. + +## macOS x86_64 + +Requirements: + +- macOS 10.7+ + +## Network requirements and port settings + +After you install the subtensor as per the below instructions, make sure that you open network ports on your subtensor node. This will allow other peer subtensor nodes to connect to your subtensor node. + +- Your subtensor node must have access to the public internet. +- Your subtensor node runs in an IPv4 network. + +### Port settings + +Make sure that your subtensor node listens on the following ports: + +- `9944` - Websocket. This port is used by Bittensor. This port only accepts connections from ``localhost``. Make sure this port is firewalled **off** from the public internet domain. +- `9933` - RPC. This port should be opened but it is not used. +- `30333` - p2p socket. This port should accept connections from other subtensor nodes on the internet. Make sure your firewall **allows** incoming traffic to this port. +- We assume that your default outgoing traffic policy is `ACCEPT`. If not, make sure that outbound traffic on port 30333 is allowed. + diff --git a/docs/subtensor-nodes/using-docker.md b/docs/subtensor-nodes/using-docker.md new file mode 100644 index 0000000000..54fc2f61d1 --- /dev/null +++ b/docs/subtensor-nodes/using-docker.md @@ -0,0 +1,97 @@ +--- +title: "Using Docker" +--- +import ThemedImage from '@theme/ThemedImage'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + +# Using Docker + +To run a subtensor node with Docker, follow the below steps. + +:::danger Not tested on cloud +We have not tested subtensor node installation scripts on any cloud service. In addition, if you are using Runpod cloud service, then note that this service is already [containerized](https://docs.runpod.io/pods/overview). Hence, the only option available to you for Runpod is to install a subtensor node by [compiling from source](using-source.md). **Note that we have not tested any subtensor installation steps on Runpod.** +::: + +If you are already running a subtensor node using Docker, then go directly to [Step 5 Prepare to Run ](#step-5-prepare-to-run). The below steps 1 through 4 are for first time users only. + +## Step 1: Install git + +Make sure you installed `git` on your machine. See [GitHub docs](https://docs.github.com/en/get-started). + +## Step 2: Install Docker + +Follow Docker's [official installation guides](https://docs.docker.com/engine/install/) and install Docker. + +:::tip Run Docker first +Before you proceed, make sure that Docker is running. +::: + +## Step 3: Clone the subtensor repo + +Clone the subtensor repo: + +```bash +git clone https://github.com/opentensor/subtensor.git +``` + +## Step 4: Go into subtensor directory + +Then `cd` into the subtensor directory: + +```bash +cd subtensor +``` + +## Step 5: Prepare to run + +Execute the below three commands in this order: + +Make sure you are on the `main` branch. If not, switch to it: + +```bash +git checkout main +``` + +Pull the latest `main` branch contents: + +```bash +git pull +``` + +Stop the currently running Docker containers: + +```bash +docker compose down --volumes +``` + +## Run a lite node on mainchain + +To run a lite node connected to the Bittensor mainchain, run the below command. + +```bash +sudo ./scripts/run/subtensor.sh -e docker --network mainnet --node-type lite +``` + +## Run an archive node on mainchain + +To run an archive node connected to the Bittensor mainchain, run the below command. + +```bash +sudo ./scripts/run/subtensor.sh -e docker --network mainnet --node-type archive +``` + +## Run a lite node on testchain + +To run a lite node connected to the Bittensor testchain, run the below command. + +```bash +sudo ./scripts/run/subtensor.sh -e docker --network testnet --node-type lite +``` + +## Run an archive node on testchain + +To run an archive node connected to the Bittensor testchain, run the below command. + +```bash +sudo ./scripts/run/subtensor.sh -e docker --network testnet --node-type archive +``` diff --git a/docs/subtensor-nodes/using-source.md b/docs/subtensor-nodes/using-source.md new file mode 100644 index 0000000000..e3aa4e9a92 --- /dev/null +++ b/docs/subtensor-nodes/using-source.md @@ -0,0 +1,117 @@ +--- +title: "Using Source Code" +--- +import ThemedImage from '@theme/ThemedImage'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + +# Using Source Code + +To install and run a subtensor node by compiling the source code, follow the below steps. + +:::danger Not tested on cloud +We have not tested subtensor node installation scripts on any cloud service. In addition, if you are using Runpod cloud service, then note that this service is already [containerized](https://docs.runpod.io/pods/overview). Hence, the only option available to you for Runpod is to install a subtensor node by compiling from source, as described below. **Note that we have not tested any subtensor installation steps on Runpod.** +::: + +## Install basic packages + +Install the basic requirements by running the below commands on a Linux terminal. + +```bash title="On Linux" +sudo apt-get update +sudo apt install build-essential +sudo apt-get install clang +sudo apt-get install curl +sudo apt-get install git +sudo apt-get install make +sudo apt install --assume-yes git clang curl libssl-dev protobuf-compiler +sudo apt install --assume-yes git clang curl libssl-dev llvm libudev-dev make protobuf-compiler +``` + +## Install Rust + +Next, install Rust and update the environment by running the following commands: + +```bash +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +source ~/.cargo/env +``` + +Next, install Rust toolchain: + +```bash +rustup default stable +rustup update +rustup target add wasm32-unknown-unknown +rustup toolchain install nightly +rustup target add --toolchain nightly wasm32-unknown-unknown +``` + +## Compile subtensor code + +Next, to compile the subtensor source code, follow the below steps: + +Clone the subtensor repo: + +```bash +git clone https://github.com/opentensor/subtensor.git +``` + +`cd` into the subtensor directory: + +```bash +cd subtensor +``` + +Make sure you are on the `main` branch. If not, switch to it: + +```bash +git checkout main +``` + +Remove previous chain state: + +```bash +rm -rf /tmp/blockchain +``` + +Install subtensor by compiling with `cargo`: + +```bash +cargo build --release --features=runtime-benchmarks +``` + +## Run the subtensor node + +You can now run the public subtensor node either as a lite node or as an archive node. See below: + +### Lite node on mainchain + +To run a lite node connected to the mainchain, execute the below command (note the `--sync=warp` flag which runs the subtensor node in lite mode): + +```bash title="With --sync=warp setting, for lite node" +./target/release/node-subtensor --chain raw_spec.json --base-path /tmp/blockchain --sync=warp --execution wasm --wasm-execution compiled --port 30333 --max-runtime-instances 64 --rpc-max-response-size 2048 --rpc-cors all --rpc-port 9933 --ws-port 9944 --bootnodes /ip4/13.58.175.193/tcp/30333/p2p/12D3KooWDe7g2JbNETiKypcKT1KsCEZJbTzEHCn8hpd4PHZ6pdz5 --ws-max-connections 16000 --no-mdns --in-peers 8000 --out-peers 8000 --prometheus-external --rpc-external --ws-external +``` + +### Archive node on mainchain + +To run an archive node connected to the mainchain, execute the below command (note the `--sync=full` which syncs the node to the full chain and `--pruning archive` flags, which disables the node's automatic pruning of older historical data): + +```bash title="With --sync=full and --pruning archive setting, for archive node" +./target/release/node-subtensor --chain raw_spec.json --base-path /tmp/blockchain --sync=full --pruning archive --execution wasm --wasm-execution compiled --port 30333 --max-runtime-instances 64 --rpc-max-response-size 2048 --rpc-cors all --rpc-port 9933 --ws-port 9944 --bootnodes /ip4/13.58.175.193/tcp/30333/p2p/12D3KooWDe7g2JbNETiKypcKT1KsCEZJbTzEHCn8hpd4PHZ6pdz5 --ws-max-connections 16000 --no-mdns --in-peers 8000 --out-peers 8000 --prometheus-external --rpc-external --ws-external +``` + +### Lite node on testchain + +To run a lite node connected to the testchain, execute the below command: + +```bash title="With bootnodes set to testnet and --sync=warp setting, for lite node." +./target/release/node-subtensor --chain raw_spec.json --base-path /tmp/blockchain --sync=warp --execution wasm --wasm-execution compiled --port 30333 --max-runtime-instances 64 --rpc-max-response-size 2048 --rpc-cors all --rpc-port 9933 --ws-port 9944 --bootnodes /dns/bootnode.test.finney.opentensor.ai/tcp/30333/p2p/12D3KooWDe7g2JbNETiKypcKT1KsCEZJbTzEHCn8hpd4PHZ6pdz5 --ws-max-connections 16000 --no-mdns --in-peers 8000 --out-peers 8000 --prometheus-external --rpc-external --ws-external +``` + +### Archive node on testchain + +To run an archive node connected to the testchain, execute the below command: + +```bash title="With bootnodes set to testnet and --sync=full and --pruning archive setting, for archive node" +./target/release/node-subtensor --chain raw_spec.json --base-path /tmp/blockchain --sync=full --pruning archive --execution wasm --wasm-execution compiled --port 30333 --max-runtime-instances 64 --rpc-max-response-size 2048 --rpc-cors all --rpc-port 9933 --ws-port 9944 --bootnodes /dns/bootnode.test.finney.opentensor.ai/tcp/30333/p2p/12D3KooWDe7g2JbNETiKypcKT1KsCEZJbTzEHCn8hpd4PHZ6pdz5 --ws-max-connections 16000 --no-mdns --in-peers 8000 --out-peers 8000 --prometheus-external --rpc-external --ws-external +``` \ No newline at end of file diff --git a/docs/whats-new-in-docs.md b/docs/whats-new-in-docs.md index d1a0a59d90..53900e994c 100644 --- a/docs/whats-new-in-docs.md +++ b/docs/whats-new-in-docs.md @@ -9,6 +9,10 @@ hide_table_of_contents: false Key updates to this documentation. +## 09 April 2024 + +- Added a new section for [Subtensor Nodes](./subtensor-nodes/index.md). + ## 05 April 2024 - Added a brief note on subnet deregistration in [Subnet deregistration](./subnets/create-a-subnet.md#subnet-deregistration). @@ -38,7 +42,7 @@ The following changes are documented: ## 07 March 2024 -- Added [Lite node vs archive node](getting-started/running-a-public-subtensor#lite-node-vs-archive-node) section. +- Added [Lite node vs archive node](subtensor-nodes/index.md#lite-node-vs-archive-node) section. ## 28 February 2024 @@ -46,7 +50,7 @@ The following changes are documented: ## 27 February 2024 -- Added [System requirements](./getting-started/running-a-public-subtensor.md#system-requirements) and [Network requirements and port settings](getting-started/running-a-public-subtensor.md#network-requirements-and-port-settings) to the public subtensor installation document. +- Added [System requirements](subtensor-nodes/subtensor-node-requirements.md) and [Network requirements and port settings](subtensor-nodes/subtensor-node-requirements.md#network-requirements-and-port-settings) to the public subtensor installation document. ## 23 February 2024 @@ -56,7 +60,7 @@ The following changes are documented: - Updated [`btcli wallet` command options](./btcli.md#check-balance-in-all-wallets). - Added a note on [mining and validating on Windows](./subnets/register-validate-mine.md#register). -- Added a note on running a [public subtensor on cloud](./getting-started/running-a-public-subtensor.md#on-cloud). +- Added a note on running a [public subtensor on cloud](subtensor-nodes/using-source.md). ## 08 February 2024 @@ -83,7 +87,7 @@ The following changes are documented: ## 18 January 2024 -- Add a new document [Running a Public Subtensor](./getting-started/running-a-public-subtensor.md). +- Add a new document [Subtensor Nodes](subtensor-nodes/index.md). ## 10 January 2024 diff --git a/docusaurus.config.js b/docusaurus.config.js index a521d3151a..750f3df3c4 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -98,6 +98,10 @@ const config = { to: "/subnets/walkthrough-prompting", from: "/subnets/code-walkthrough-text-prompting", }, + { + to: "/subtensor-nodes", + from: "/getting-started/running-a-public-subtensor", + }, ], }, ], @@ -155,6 +159,11 @@ const config = { label: "Subnet Pages", to: "subnet-pages", }, + { + position: "left", + label: "Subtensor Nodes", + to: "subtensor-nodes", + }, { type: "search", position: "left", diff --git a/sidebars.js b/sidebars.js index ec7c2e897a..badbbe3b15 100644 --- a/sidebars.js +++ b/sidebars.js @@ -42,7 +42,18 @@ const sidebars = { items: [ "getting-started/installation", "getting-started/wallets", - "getting-started/running-a-public-subtensor", + ], + }, + { + type: "category", + label: "Subtensor Nodes", + link: {type: "doc", id: "subtensor-nodes/index",}, + collapsible: true, + collapsed: false, + items: [ + "subtensor-nodes/subtensor-node-requirements", + "subtensor-nodes/using-source", + "subtensor-nodes/using-docker", ], }, {