Skip to content

Commit fbe03e0

Browse files
michaelkernaghanjevonearth
authored andcommitted
docs: Clarify attestation_with_dal applies to all key types
Fixes #671 - Clarify that attestation_with_dal policy is required for ALL key types when DAL node is connected - Add detailed explanation of tz1/tz2/tz3 behavior with DAL node - Distinguish between attestation encoding vs shard attestation capability - Add concrete log examples from Seoulnet testing - Update baker command examples for both tz1 and tz4 scenarios - Add new 'DAL Behavior by Key Type' section with practical examples The documentation now accurately reflects that the attestation_with_dal encoding is triggered by DAL node connectivity, not key type. Testing on Seoulnet demonstrated that tz1 keys do sign attestation_with_dal operations when a DAL node is connected, even without shard attestation capability (bitset 0). This prevents operators from mistakenly omitting the attestation_with_dal policy for tz1-only setups.
1 parent 1c34ae0 commit fbe03e0

1 file changed

Lines changed: 93 additions & 11 deletions

File tree

docs/bakers.md

Lines changed: 93 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -248,32 +248,58 @@ tezos:
248248
tz4YourConsensusKey:
249249
log_payloads: true
250250
allow:
251-
block:
252-
attestation: # Tag 41 - all attestations
253-
preattestation: # Tag 40
254-
255-
# Companion key (tz4)
256-
tz4YourCompanionKey:
257-
log_payloads: true
258-
allow:
259-
attestation: # Tag 41 - only permission needed
251+
block: # Standard block baking
252+
attestation: # Standard attestations
253+
preattestation: # Pre-attestations
254+
attestation_with_dal: # Required for ALL key types when DAL node is connected
255+
generic:
256+
- transaction
257+
- reveal
258+
- delegation
259+
- stake
260260
```
261261
262-
**2. Set Keys**
262+
:::warning Important
263+
The `attestation_with_dal` policy applies to **all key types** (tz1, tz2, tz3, tz4) when a DAL node is connected to the baker. This is an encoding/policy distinction triggered by DAL node connectivity, not a key type requirement.
264+
265+
* **tz1/tz2/tz3 keys**: Sign `attestation_with_dal` operations with empty DAL content (bitset 0)
266+
* **tz4 keys**: Can attest actual DAL shards (bitset > 0) when consensus + companion keys are properly configured
267+
* **Both trigger the same signatory policy check** for `attestation_with_dal`
268+
269+
Even if your baker uses only tz1 keys, you **must** include `attestation_with_dal` in your signatory policy when running with a DAL node, otherwise attestation requests will be rejected and you'll miss those rewards.
270+
:::
271+
272+
### Key Requirements
273+
274+
**Standard Keys (tz1/tz2/tz3)**: Can participate in DAL attestations without companion keys. When a DAL node is connected, the baker will sign `attestation_with_dal` operations with the consensus key (or manager key if no separate consensus key is configured). However, these attestations will have bitset 0 (no shard attestation capability) since DAL shard attestation requires BLS signature aggregation.
275+
276+
**BLS Consensus Keys (tz4)**: A **companion key is mandatory** for DAL attestations with tz4 keys. Without it, tz4 bakers cannot produce DAL attestations with shard attestation capability.
263277

264278
```bash
265279
# Set consensus and companion keys for your delegate
266280
octez-client set consensus key for <manager_key> to <consensus_key>
267281
octez-client set companion key for <manager_key> to <companion_key>
268282
```
269283

270-
**3. Start Baker with DAL**
284+
**Baker Command Requirements:**
285+
286+
For DAL participation, your baker command must include:
287+
- **Consensus key**: Required for all attestation operations
288+
- **Companion key**: Required for tz4 keys to enable DAL shard attestation (optional for tz1/tz2/tz3)
289+
- **DAL node endpoint**: `--dal-node` parameter pointing to your DAL node
271290

272291
```bash
292+
# Example baker command for DAL participation (tz4 with companion)
273293
octez-baker run with local node ~/.tezos-node \
274294
--liquidity-baking-toggle-vote pass \
275295
--dal-node http://localhost:10732 \
276296
consensus_key companion_key
297+
298+
# Example baker command for DAL participation (tz1 without companion)
299+
octez-baker run with local node ~/.tezos-node \
300+
--liquidity-baking-toggle-vote pass \
301+
--dal-node http://localhost:10732 \
302+
manager_or_consensus_key
277303
```
278304

279305
### Key Requirements
@@ -306,6 +332,62 @@ Both keys receive **identical tag 41 bytes** and decode to `request=attestation`
306332

307333
**Further Reading**: [DAL & BLS Attestations Guide](dal_bls_attestations.md) | [DAL Node Setup](https://octez.tezos.com/docs/shell/dal_run.html) | [DAL Architecture](https://docs.tezos.com/architecture/data-availability-layer)
308334

335+
### DAL Behavior by Key Type
336+
337+
Understanding how different key types interact with DAL attestations:
338+
339+
#### tz1/tz2/tz3 Keys with DAL Node
340+
341+
**What Happens:**
342+
- Baker sends `attestation_with_dal` requests to Signatory
343+
- Signatory logs show: `"request=attestation_with_dal"`
344+
- Attestations have bitset 0 (no shard attestation)
345+
- Baker logs show: `"injected attestation (without DAL)"`
346+
- DAL rewards can still be earned
347+
348+
**Signatory Logs Example:**
349+
```
350+
msg="Requesting signing operation" request=attestation_with_dal pkh=tz1YourKey
351+
msg="Signed attestation_with_dal successfully" pkh=tz1YourKey
352+
```
353+
354+
**Baker Logs Example:**
355+
```
356+
tz1YourKey has no assigned DAL shards at level 1234567
357+
injected attestation (without DAL) for level 1234567
358+
```
359+
360+
**Configuration Required:**
361+
```yaml
362+
tezos:
363+
tz1YourKey:
364+
allow:
365+
attestation_with_dal: # REQUIRED even for tz1 keys with DAL node
366+
```
367+
368+
#### tz4 Keys with DAL Node and Companion Key
369+
370+
**What Happens:**
371+
- Baker sends `attestation_with_dal` requests for both consensus and companion keys
372+
- Attestations can have bitset > 0 when assigned DAL shards
373+
- Full shard attestation capability with BLS aggregation
374+
- Higher DAL rewards potential
375+
376+
**Configuration Required:**
377+
```yaml
378+
tezos:
379+
tz4ConsensusKey:
380+
allow:
381+
attestation_with_dal: # REQUIRED
382+
tz4CompanionKey:
383+
allow:
384+
attestation_with_dal: # REQUIRED
385+
```
386+
387+
#### Key Takeaway
388+
389+
**The `attestation_with_dal` encoding is triggered by DAL node connectivity, not key type.** All keys signing through a baker with `--dal-node` configured will use the `attestation_with_dal` request type, regardless of whether they can actually attest DAL shards.
390+
309391
---
310392

311393
## Protocol-Agnostic Baker Commands

0 commit comments

Comments
 (0)