Skip to content

Commit 7e5135e

Browse files
committed
adds blob retrieval
1 parent 49a5e9a commit 7e5135e

File tree

3 files changed

+139
-55
lines changed

3 files changed

+139
-55
lines changed

docs/concepts/peer-das.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@ With PeerDAS, consensus layer clients will use network and storage space for sid
5656
Storage consumption is increased, taking about 500 GB with 14 blobs of data layer space compared to 100 GB in Pectra.
5757

5858
:::warning important
59-
If a node operator needs complete blob data through the REST API, they must run in supernode mode.
60-
Other types of nodes store only partial blob data.
59+
If a node operator needs complete blob data through the REST API (for example, the `getBlobs` endpoint), they must either run in supernode mode or enable [`--get-blobs-api-p2p-sidecars-download-enabled`](../reference/cli/index.md#get-blobs-api-p2p-sidecars-download-enabled), which allows Teku to retrieve required sidecars on demand from the P2P network. Other types of nodes store only partial blob data.
6160
:::
6261

6362
All node space requirements are subject to change proportionally to the target number of blobs, which is currently scheduled to be 14 starting from January 7, 2026 (about 1 month after the Fusaka fork).

docs/reference/cli/index.md

Lines changed: 82 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,6 +1002,85 @@ You can use [Infura](https://infura.io/) as the source of initial states using
10021002

10031003
:::
10041004

1005+
### `get-blobs-api-p2p-sidecars-download-enabled`
1006+
1007+
<Tabs>
1008+
<TabItem value="Syntax" label="Syntax" default>
1009+
1010+
```bash
1011+
--get-blobs-api-p2p-sidecars-download-enabled[=<BOOLEAN>]
1012+
```
1013+
1014+
</TabItem>
1015+
<TabItem value="Example" label="Example" >
1016+
1017+
```bash
1018+
--get-blobs-api-p2p-sidecars-download-enabled=true
1019+
```
1020+
1021+
</TabItem>
1022+
<TabItem value="Environment variable" label="Environment variable" >
1023+
1024+
```bash
1025+
TEKU_GET_BLOBS_API_P2P_SIDECARS_DOWNLOAD_ENABLED=true
1026+
```
1027+
1028+
</TabItem>
1029+
<TabItem value="Configuration file" label="Configuration file" >
1030+
1031+
```bash
1032+
get-blobs-api-p2p-sidecars-download-enabled: true
1033+
```
1034+
1035+
</TabItem>
1036+
</Tabs>
1037+
1038+
Enables on-demand P2P download of required sidecars. When enabled, the `getBlobs` endpoint attempts to
1039+
download missing sidecars from the P2P network so that blobs can be reconstructed and returned.
1040+
1041+
This allows nodes that are not
1042+
[supernodes](https://github.com/ethereum/consensus-specs/blob/master/specs/fulu/p2p-interface.md#supernodes)
1043+
to access [blob data via the Beacon API](https://consensys.github.io/teku/#tag/Beacon/operation/getBlobs).
1044+
Successful retrievals are stored so that subsequent requests for the same slot do not trigger P2P download via RPC again.
1045+
The default is `false`.
1046+
1047+
### `get-blobs-sidecars-download-timeout`
1048+
1049+
<Tabs>
1050+
<TabItem value="Syntax" label="Syntax" default>
1051+
1052+
```bash
1053+
--get-blobs-sidecars-download-timeout=<INTEGER>
1054+
```
1055+
1056+
</TabItem>
1057+
<TabItem value="Example" label="Example" >
1058+
1059+
```bash
1060+
--get-blobs-sidecars-download-timeout=30
1061+
```
1062+
1063+
</TabItem>
1064+
<TabItem value="Environment variable" label="Environment variable" >
1065+
1066+
```bash
1067+
TEKU_GET_BLOBS_SIDECARS_DOWNLOAD_TIMEOUT=30
1068+
```
1069+
1070+
</TabItem>
1071+
<TabItem value="Configuration file" label="Configuration file" >
1072+
1073+
```bash
1074+
get-blobs-sidecars-download-timeout: 30
1075+
```
1076+
1077+
</TabItem>
1078+
</Tabs>
1079+
1080+
Timeout in seconds for on-demand P2P sidecar download when serving the Beacon API (getBlobs).
1081+
Only applies when [`--get-blobs-api-p2p-sidecars-download-enabled`](#get-blobs-api-p2p-sidecars-download-enabled)
1082+
is `true`.
1083+
10051084
### `help`
10061085

10071086
```bash title="Syntax"
@@ -2608,9 +2687,9 @@ but no less than 8 subnets.
26082687
This option is a mostly altruistic feature for a node with an excess of resources
26092688
that could be dedicated to serving network stability. When enabled, the option turns the node
26102689
into a [supernode](https://github.com/ethereum/consensus-specs/blob/master/specs/fulu/p2p-interface.md#supernodes).
2611-
If the node is required to provide blob data via the Beacon API, it's required
2612-
to be a supernode; otherwise, the node doesn't have all data for blob
2613-
reconstruction.
2690+
To provide blob data via the Beacon API's `getBlobs` method, the node must either be a supernode or
2691+
have [`--get-blobs-api-p2p-sidecars-download-enabled`](#get-blobs-api-p2p-sidecars-download-enabled) set to
2692+
`true`, which allows Teku to retrieve required sidecars on demand from the P2P network.
26142693

26152694
:::caution
26162695

0 commit comments

Comments
 (0)