Skip to content
Merged
4 changes: 2 additions & 2 deletions docs/bee/installation/build-from-source.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Prerequisites for installing directly from source are:
3. Checkout the required version:

```bash
git checkout v2.8.2
git checkout v2.8.3
```

4. Build the binary:
Expand All @@ -48,7 +48,7 @@ Prerequisites for installing directly from source are:
```

```
2.8.2
2.8.3
```

6. (optional) Additionally, you may also like to move the Bee binary to somewhere in your `$PATH`
Expand Down
14 changes: 7 additions & 7 deletions docs/bee/installation/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ description: Provides comprehensive steps for deploying Bee nodes using Docker c
The following is a guide for installing a Bee node using Docker. Docker images for Bee are hosted at [Docker Hub](https://hub.docker.com/r/ethersphere/bee). Using Docker to operate your Bee node offers many benefits, such as ease of deployment and consistency across environments.

:::caution
In the examples below we specify the exact image version as 2.8.2.
In the examples below we specify the exact image version as 2.8.3.
It's recommended to only use the exact version number tags.
Make sure to check that you're on the latest version of Bee by reviewing the tags for Bee on [Docker Hub](https://hub.docker.com/r/ethersphere/bee/tags), and replace 2.8.2 in the commands below if there is a newer full release.
Make sure to check that you're on the latest version of Bee by reviewing the tags for Bee on [Docker Hub](https://hub.docker.com/r/ethersphere/bee/tags), and replace 2.8.3 in the commands below if there is a newer full release.
:::

:::warning
Expand Down Expand Up @@ -39,13 +39,13 @@ docker run -d --name bee-1 \
-e BEE_PASSWORD="flummoxedgranitecarrot" \
-e BEE_BLOCKCHAIN_RPC_ENDPOINT="https://xdai.fairdatasociety.org" \
-v bee-1:/home/bee/.bee \
ethersphere/bee:2.8.2 start
ethersphere/bee:2.8.3 start
```

Here is the same command in a single line in case you run into issues with the line breaks in the command above:

```bash
docker run -d --name bee-1 --restart always -p 127.0.0.1:1633:1633 -p 1634:1634 -e BEE_API_ADDR=":1633" -e BEE_FULL_NODE="true" -e BEE_SWAP_ENABLE="true" -e BEE_PASSWORD="flummoxedgranitecarrot" -e BEE_BLOCKCHAIN_RPC_ENDPOINT="https://xdai.fairdatasociety.org" -v bee-1:/home/bee/.bee ethersphere/bee:2.8.2 start
docker run -d --name bee-1 --restart always -p 127.0.0.1:1633:1633 -p 1634:1634 -e BEE_API_ADDR=":1633" -e BEE_FULL_NODE="true" -e BEE_SWAP_ENABLE="true" -e BEE_PASSWORD="flummoxedgranitecarrot" -e BEE_BLOCKCHAIN_RPC_ENDPOINT="https://xdai.fairdatasociety.org" -v bee-1:/home/bee/.bee ethersphere/bee:2.8.3 start
```

#### Command explained:
Expand All @@ -61,7 +61,7 @@ docker run -d --name bee-1 --restart always -p 127.0.0.1:1633:1633 -p 1634:1634
- **`-e BEE_PASSWORD="flummoxedgranitecarrot"`**: Sets the keystore password, make sure to replace with your own.
- **`-e BEE_BLOCKCHAIN_RPC_ENDPOINT="https://xdai.fairdatasociety.org"`**: Connects to the Gnosis Chain.
- **`-v bee-1:/home/bee/.bee`**: Persists node data in the `bee-1` volume.
- **`ethersphere/bee:2.8.2 start`**: Runs Bee version 2.8.2 and starts the node.
- **`ethersphere/bee:2.8.3 start`**: Runs Bee version 2.8.3 and starts the node.

This setup runs the Bee node in a container, with full node functionality, SWAP enabled, and connections to the Gnosis blockchain for chequebook and postage stamp management, while persisting its data using a volume.

Expand All @@ -77,7 +77,7 @@ If everything is set up correctly, you should see your Bee node listed:

```bash
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
37f4ad8b4060 ethersphere/bee:2.8.2 "bee start" 6 seconds ago Up 5 seconds 127.0.0.1:1633->1633/tcp, 0.0.0.0:1634->1634/tcp, :::1634->1634/tcp bee-1
37f4ad8b4060 ethersphere/bee:2.8.3 "bee start" 6 seconds ago Up 5 seconds 127.0.0.1:1633->1633/tcp, 0.0.0.0:1634->1634/tcp, :::1634->1634/tcp bee-1
```

And check the logs:
Expand Down Expand Up @@ -170,7 +170,7 @@ damage to hardware or loss of funds associated with the Ethereum account connect
No developers or entity involved will be liable for any claims and damages associated with your use,
inability to use, or your interaction with other nodes or the software.

"time"="2026-07-07 16:52:59.641444" "level"="info" "logger"="node" "msg"="bee version" "version"="2.8.2-7e703f49"
"time"="2026-07-07 16:52:59.641444" "level"="info" "logger"="node" "msg"="bee version" "version"="2.8.3-8e9bb914"
"time"="2026-07-07 16:52:59.793257" "level"="info" "logger"="node" "msg"="swarm public key"
"public_key"="02d8d7e1ca6b3b43653ae27e35a375dd74e3ce2f40587fd264bc7268ed918650ab"
"time"="2026-07-07 16:53:00.087534" "level"="info" "logger"="node" "msg"="pss public key" "public_key"="02aaae4ede42f47f48aa5182df4b94039ca71254f44ebc5383d5a67f71fe7e6156"
Expand Down
12 changes: 6 additions & 6 deletions docs/bee/installation/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,17 @@ Run the shell script using `curl` or `wget`:


:::tip
We specify `TAG=v2.8.2` to indicate which Bee version to install. You can find available versions in the ["releases" section](https://github.com/ethersphere/bee/releases) of the Bee GitHub repo.
We specify `TAG=v2.8.3` to indicate which Bee version to install. You can find available versions in the ["releases" section](https://github.com/ethersphere/bee/releases) of the Bee GitHub repo.
:::

```bash
curl -s https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.8.2 bash
curl -s https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.8.3 bash
```

OR

```bash
wget -q -O - https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.8.2 bash
wget -q -O - https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.8.3 bash
```

Verify installation:
Expand Down Expand Up @@ -109,7 +109,7 @@ damage to hardware or loss of funds associated with the Ethereum account connect
No developers or entity involved will be liable for any claims and damages associated with your use,
inability to use, or your interaction with other nodes or the software.

"time"="2026-07-07 16:52:59.641444" "level"="info" "logger"="node" "msg"="bee version" "version"="2.8.2-7e703f49"
"time"="2026-07-07 16:52:59.641444" "level"="info" "logger"="node" "msg"="bee version" "version"="2.8.3-8e9bb914"
"time"="2026-07-07 16:52:59.793257" "level"="info" "logger"="node" "msg"="swarm public key"
"public_key"="02d8d7e1ca6b3b43653ae27e35a375dd74e3ce2f40587fd264bc7268ed918650ab"
"time"="2026-07-07 16:53:00.087534" "level"="info" "logger"="node" "msg"="pss public key" "public_key"="02aaae4ede42f47f48aa5182df4b94039ca71254f44ebc5383d5a67f71fe7e6156"
Expand Down Expand Up @@ -181,7 +181,7 @@ swarm-cli status
```bash
Bee
API: http://localhost:1633 [OK]
Version: 2.8.2-7e703f49
Version: 2.8.3-8e9bb914
Mode: light

Chainsync
Expand Down Expand Up @@ -211,7 +211,7 @@ swarm-cli status
```bash
Bee
API: http://localhost:1633 [OK]
Version: 2.8.2-7e703f49
Version: 2.8.3-8e9bb914
Mode: light

Chainsync
Expand Down
6 changes: 3 additions & 3 deletions docs/bee/installation/shell-script.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Below is a step-by-step guide for installing and setting up your Bee node using
Run the install shell script using either `curl` or `wget`:

:::caution
In the example below, the version is specified using `TAG=v2.8.2`. Check the [latest Bee releases](https://github.com/ethersphere/bee/tags) and if needed, update the command to install the most recent version (note that in tags containing "rc," the abbreviation stands for "release candidate", and these versions should be used for testing purposes only).
In the example below, the version is specified using `TAG=v2.8.3`. Check the [latest Bee releases](https://github.com/ethersphere/bee/tags) and if needed, update the command to install the most recent version (note that in tags containing "rc," the abbreviation stands for "release candidate", and these versions should be used for testing purposes only).
:::

:::info
Expand Down Expand Up @@ -59,15 +59,15 @@ values={[
<TabItem value="curl">

```bash
curl -s https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.8.2 bash
curl -s https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.8.3 bash
```
</TabItem>
<TabItem value="wget">

**wget**

```bash
wget -q -O - https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.8.2 bash
wget -q -O - https://raw.githubusercontent.com/ethersphere/bee/master/install.sh | TAG=v2.8.3 bash
```
</TabItem>

Expand Down
12 changes: 9 additions & 3 deletions docs/bee/working-with-bee/bee-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,10 @@ curl -s http://localhost:1633/redistributionstate | jq
"block": 32354719,
"reward": "1804537795127017472",
"fees": "592679945236926714",
"isHealthy": true
"isHealthy": true,
"enabled": true,
"hasCommittedThisRound": false,
"hasRevealedThisRound": false
}
```

Expand All @@ -324,6 +327,9 @@ curl -s http://localhost:1633/redistributionstate | jq
* `"reward"` - The total all-time reward in PLUR earned by your node.
* `"fees"` - The total amount in fees paid by your node denominated in xDAI wei.
* `"isHealthy"` - a check of whether your node’s storage radius is the same as the most common radius from among its peer nodes
* `"enabled"` - Whether your node will commit in new rounds of the redistribution game. From Bee v2.8.3, you can pause and resume participation with a `PATCH` request to this endpoint (see [Pause Redistribution Participation](./staking.md#pause-redistribution-participation)).
* `"hasCommittedThisRound"` - Whether your node has committed in the current round. If this is `false`, you can shut down your node without the risk of being frozen.
* `"hasRevealedThisRound"` - Whether your node has revealed in the current round. After your node commits, it must reveal before it's safe to shut down.

### _/reservestate_

Expand Down Expand Up @@ -584,8 +590,8 @@ curl -s http://localhost:1633/health | jq
```json
{
"status": "ok",
"version": "2.8.2-7e703f49",
"apiVersion": "8.1.1"
"version": "2.8.3-8e9bb914",
"apiVersion": "8.2.1"
}
```

Expand Down
23 changes: 21 additions & 2 deletions docs/bee/working-with-bee/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ Flags:
--db-open-files-limit uint number of open files allowed by database (default 200)
--db-write-buffer-size uint size of the database write buffer in bytes (default 33554432)
--full-node cause the node to start in full mode
--gas-limit-fallback uint gas limit fallback when estimation fails for contract transactions (default 500000)
--gas-limit-fallback uint gas limit fallback when estimation fails for contract transactions (default 900000)
-h, --help help for printconfig
--mainnet triggers connect to main net bootnodes. (default true)
--minimum-gas-tip-cap uint minimum gas tip cap in wei for transactions, 0 means use suggested gas tip cap
Expand All @@ -101,6 +101,7 @@ Flags:
--payment-tolerance-percent int excess debt above payment threshold in percentages where you disconnect from your peer (default 25)
--postage-stamp-address string postage stamp contract address
--postage-stamp-start-block uint postage stamp contract start block number
--postage-sync-block-range uint maximum number of blocks per eth_getLogs request when syncing postage contract events (default 1000)
--pprof-mutex enable pprof mutex profile
--pprof-profile enable pprof block profile
--price-oracle-address string price oracle contract address
Expand Down Expand Up @@ -217,7 +218,7 @@ db-write-buffer-size: "33554432"
# cause the node to start in full mode
full-node: false
# gas limit fallback when estimation fails for contract transactions
gas-limit-fallback: "500000"
gas-limit-fallback: "900000"
# help for printconfig
help: false
# triggers connect to main net bootnodes.
Expand Down Expand Up @@ -256,6 +257,8 @@ payment-tolerance-percent: 25
postage-stamp-address: ""
# postage stamp contract start block number
postage-stamp-start-block: "0"
# maximum number of blocks per eth_getLogs request when syncing postage contract events
postage-sync-block-range: "1000"
# enable pprof mutex profile
pprof-mutex: false
# enable pprof block profile
Expand Down Expand Up @@ -618,6 +621,22 @@ block-sync-interval: 10
The equivalent flag is `--block-sync-interval` and the environment variable is `BEE_BLOCK_SYNC_INTERVAL`.
This is especially useful for operators on paid or rate-limited RPC providers who want to lower request volume.

### Postage sync block range

Bee syncs postage stamp contract events by requesting logs from your RPC endpoint in fixed block ranges.
Starting with Bee v2.8.3, the `postage-sync-block-range` option sets the maximum number of blocks in each `eth_getLogs` request:

```yaml
# bee.yaml
postage-sync-block-range: 1000
```

- The default is `1000`, which works with RPC endpoints that limit log requests to 1000 blocks, such as Nethermind 2.0.0 and later with default settings.
- If your RPC endpoint allows wider ranges, a higher value lets your node catch up with the chain in fewer requests.
- `0` falls back to the default.

The equivalent flag is `--postage-sync-block-range` and the environment variable is `BEE_POSTAGE_SYNC_BLOCK_RANGE`.

## SIMD hashing (Optional)

Bee can use a hardware-accelerated (SIMD) implementation of its chunk hasher, a frequent and CPU-intensive operation.
Expand Down
87 changes: 81 additions & 6 deletions docs/bee/working-with-bee/staking.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,35 @@ Only stake your xBZZ if you intend to participate as a full node, as withdrawals
- A [high-performance RPC endpoint](./configuration.md#setting-blockchain-rpc-endpoint) connection to Gnosis Chain.
- A minimum of 10 xBZZ to be used as ***non-refundable*** stake (the requirement is increased if [reserve doubling](./staking.md#reserve-doubling) is used).

### Minimum Deposit

Starting with Bee v2.8.3, the [`GET /stake`](/api/#tag/Staking/paths/~1stake/get) endpoint also returns `minimumDeposit`, the smallest amount in [PLUR](./../../references/glossary.md#plur) that your node can deposit as its next stake:

```bash
curl -s http://localhost:1633/stake | jq
```

```json
{
"stakedAmount": "100000000000000000",
"minimumDeposit": "1"
}
```

- For a node's first deposit, the minimum is 10 xBZZ, or 20 xBZZ with [reserve doubling](#reserve-doubling).
- For later deposits, the minimum is 1 PLUR, unless your node needs more to keep its committed stake from decreasing after the storage price has increased, or to meet the 20 xBZZ total with reserve doubling.
- `minimumDeposit` is `null` when Bee can't read the current storage price from the price oracle.

If you try to stake less than the minimum, `POST /stake/{amount}` returns HTTP 400 with the required amount:

```json
{
"code": 400,
"message": "insufficient stake amount",
"minimumDeposit": "100000000000000000"
}
```



### Check Status
Expand All @@ -152,7 +181,10 @@ curl -X GET http://localhost:1633/redistributionstate | jq
"lastFrozenRound": 0,
"block": 26800488,
"reward": "10479124611072000",
"fees": "30166618102500000"
"fees": "30166618102500000",
"enabled": true,
"hasCommittedThisRound": false,
"hasRevealedThisRound": false
}
```
* `"minimumFunds": <integer>` - The minimum xDAI needed to play a single round of the redistribution game (the unit is 1e-18 xDAI).
Expand All @@ -167,10 +199,14 @@ curl -X GET http://localhost:1633/redistributionstate | jq
* `"block": <integer>` - Gnosis block of the current redistribution game.
* `"reward": <string (BigInt)>` - Record of total reward received in [PLUR](./../../references/glossary.md#plur).
* `"fees": <string (BigInt)>` - Record of total spent in 1E-18 xDAI on all redistribution related transactions.
* `"enabled": <bool>` - Whether the node will commit in new rounds of the redistribution game. See [Pause Redistribution Participation](#pause-redistribution-participation).
* `"hasCommittedThisRound": <bool>` - Whether the node has committed in the current round.
* `"hasRevealedThisRound": <bool>` - Whether the node has revealed in the current round.


:::warning
Do not shut down or update your node during an active redistribution round as it may cause them to lose out on winnings or become frozen. To see if your node is playing the current round, check if `lastPlayedRound` equals `round` in the output from the [`/redistributionstate` endpoint](/api/#tag/RedistributionState/paths/~1redistributionstate/get).
From Bee v2.8.3, you can [pause participation](#pause-redistribution-participation) to find a safe moment to shut down.
:::

You should also check the [`/status`](/api/#tag/Node-Status/paths/~1status/get) endpoint:
Expand Down Expand Up @@ -203,6 +239,43 @@ curl -s http://localhost:1633/status | jq
If your node is not operating properly such as getting frozen or not participating in any rounds, see the [troubleshooting section](#troubleshooting).
:::

### Pause Redistribution Participation

Starting with Bee v2.8.3, you can stop a full node from committing in new redistribution rounds without restarting it, for example before planned maintenance.
Send a `PATCH` request to the [`/redistributionstate`](/api/#tag/RedistributionState) endpoint:

```bash
curl -s -X PATCH http://localhost:1633/redistributionstate \
-H "Content-Type: application/json" \
-d '{"enabled": false}' | jq
```

```json
{
"enabled": false
}
```

While participation is paused:

- The node doesn't commit in new rounds, but it keeps calculating samples so that it can commit in the next commit phase after you resume.
- If the node already committed in the current round, it still reveals and claims for that round.
- Resuming during a commit phase that the node already skipped doesn't retry that round.
- Restarting the node resumes participation.

To find a safe moment to shut down, pause participation, then check the `/redistributionstate` endpoint:

- If `hasCommittedThisRound` is `false`, you can shut down without the risk of being frozen.
- If `hasCommittedThisRound` is `true`, wait until `hasRevealedThisRound` is `true` before you shut down.

To resume participation, set `enabled` back to `true`:

```bash
curl -s -X PATCH http://localhost:1633/redistributionstate \
-H "Content-Type: application/json" \
-d '{"enabled": true}' | jq
```


## Partial Stake Withdrawals

Expand Down Expand Up @@ -269,7 +342,8 @@ curl -s http://localhost:1633/stake | jq

```bash
{
"stakedAmount": "200000000000000000"
"stakedAmount": "200000000000000000",
"minimumDeposit": "1"
}
```

Expand Down Expand Up @@ -481,13 +555,13 @@ curl -s http://localhost:1633/health | jq

To confirm a successful update, check that the value for the `"version"` field in the results corresponds to the version number of the [latest](https://github.com/ethersphere/bee/releases/latest) Bee release.

For example, if the latest version was 2.8.2, it would look like this:
For example, if the latest version was 2.8.3, it would look like this:

```json
{
"status": "ok",
"version": "2.8.2-7e703f49",
"apiVersion": "8.1.1"
"version": "2.8.3-8e9bb914",
"apiVersion": "8.2.1"
}
```

Expand Down Expand Up @@ -517,7 +591,8 @@ The expected output after staking the minimum of 10 xBZZ:

```bash
{
"stakedAmount": "100000000000000000"
"stakedAmount": "100000000000000000",
"minimumDeposit": "1"
}
```

Expand Down
Loading
Loading