You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Copy file name to clipboardExpand all lines: docs/bakers.md
+93-11Lines changed: 93 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -248,32 +248,58 @@ tezos:
248
248
tz4YourConsensusKey:
249
249
log_payloads: true
250
250
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
260
260
```
261
261
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.
263
277
264
278
```bash
265
279
# Set consensus and companion keys for your delegate
266
280
octez-client set consensus key for<manager_key> to <consensus_key>
267
281
octez-client set companion key for<manager_key> to <companion_key>
268
282
```
269
283
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
271
290
272
291
```bash
292
+
# Example baker command for DAL participation (tz4 with companion)
273
293
octez-baker run with local node ~/.tezos-node \
274
294
--liquidity-baking-toggle-vote pass \
275
295
--dal-node http://localhost:10732 \
276
296
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
277
303
```
278
304
279
305
### Key Requirements
@@ -306,6 +332,62 @@ Both keys receive **identical tag 41 bytes** and decode to `request=attestation`
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.
0 commit comments