← Back to DALHousie

Tezos DAL Implementation Guide

Complete guide to Data Availability Layer implementation with BLS hardware signing

📅 Research Period: August 2025 🔬 Protocol: Seoul (PtSeouLouXkx) v23.0-rc2 🏗️ Implementation: DAL + BLS consensus operations

🎯 DAL Project Overview

✅ Successfully Implemented DAL Operations

Comprehensive implementation of Tezos DAL (Data Availability Layer) functionality with BLS hardware signing on Seoul testnet. Successfully diagnosed and resolved DAL eligibility issues, achieving full DAL + BLS consensus operations with SHARD 251 assigned and ready for DAL attestations.

📖 What is Tezos DAL?

🏗️ Data Availability Layer

  • Purpose: Tezos scaling infrastructure for handling large data payloads
  • Function: Ensures data availability for smart rollups and Layer 2 solutions
  • Technology: Uses BLS signatures for efficient attestation aggregation
  • Benefits: Enables massive throughput increases while maintaining decentralization

⚙️ How DAL Works

  1. Data Sharding: Large data is split into 512 shards across the network
  2. Shard Assignment: Delegates with sufficient stake get assigned specific shards to attest
  3. Attestation Process: Delegates use their companion BLS keys to attest data availability
  4. Reward Distribution: Additional rewards for successful DAL attestations

🔧 DAL Technical Architecture

Key Components

🌐 DAL Node

--dal-node https://dal-bootstrap-rpc.seoulnet.teztnets.com
  • Purpose: Provides DAL data and coordination
  • Required: Must be configured in baker for DAL functionality
  • Network: Each testnet/mainnet has specific DAL bootstrap nodes

🔐 Companion Key (BLS)

tz4D2W852XgHSAaGvDab9NpRaWDMi6x3emoW

  • Type: tz4 BLS key (different from consensus key)
  • Purpose: Specifically for DAL attestations
  • Storage: Can be stored on hardware device (Pi) alongside consensus key
  • Status: ✅ OPERATIONAL - ready for DAL operations

📊 Shard Assignment System

  • Total Shards: 512 per DAL slot
  • Assignment: Based on staking power and randomization
  • Duration: Assignments persist across multiple levels
  • Our Assignment: SHARD 251

DAL Network Parameters (Seoul Testnet)

Seoul Testnet DAL Configuration

"dal_parametric": {
  "feature_enable": true,
  "incentives_enable": true,
  "number_of_slots": 32,
  "number_of_shards": 512,
  "attestation_lag": 8,
  "attestation_threshold": 66,
  "minimal_participation_ratio": {"numerator": "16", "denominator": "25"}
}

⚙️ DAL Configuration

1. Baker Configuration

Production DAL Baker Setup

docker run -d --name tezos-bls-baker --network host \
  -v ~/.tezos-client:/home/tezos/.tezos-client \
  --entrypoint /usr/local/bin/octez-baker \
  tezos/tezos:octez-v23.0-rc2 \
  -E http://127.0.0.1:8732 \
  run remotely tz4GVPvRjU74WK6PvZrvb9jrSnqDykyj7eHc \
  --liquidity-baking-toggle-vote pass \
  --dal-node https://dal-bootstrap-rpc.seoulnet.teztnets.com \
  consensus_key companion_key

Critical: Both BLS keys (consensus and companion) are required for DAL operations.

2. Key Registration and Verification

🔍 Verify Key Access

# Check BLS Consensus Key
curl -s http://10.0.0.1:7732/keys/tz4BeVDPwvFu2s6TacozUVhammffmN95GHzd

# Check BLS Companion Key  
curl -s http://10.0.0.1:7732/keys/tz4D2W852XgHSAaGvDab9NpRaWDMi6x3emoW

# Verify key registration
octez-client list known addresses

✅ Current Key Status

  • Manager Key: tz4GVPvRjU74WK6PvZrvb9jrSnqDykyj7eHc
  • BLS Consensus: tz4BeVDPwvFu2s6TacozUVhammffmN95GHzd
  • BLS Companion: tz4D2W852XgHSAaGvDab9NpRaWDMi6x3emoW
  • Balance: 526,122+ ꜩ staked (87x DAL minimum)

3. Minimum Staking Requirements

⚠️ DAL Staking Threshold

DAL participation requires minimum 6,000 ꜩ staked balance. Our current balance of 526,122+ ꜩ provides 87x the minimum requirement, ensuring consistent shard assignments and DAL rewards eligibility.

🔍 DAL Monitoring & Diagnostics

Check DAL Shard Assignment

🔍 Query Shard Assignment

# Check if your delegate has shards
octez-client -E https://rpc.seoulnet.teztnets.com \
  rpc get '/chains/main/blocks/head/context/dal/shards' | \
  grep -A 5 "tz4GVPvRjU74WK6PvZrvb9jrSnqDykyj7eHc"

# List all delegates with DAL shards
octez-client -E https://rpc.seoulnet.teztnets.com \
  rpc get '/chains/main/blocks/head/context/dal/shards' | \
  jq '.[].delegate'

✅ Current Assignment Status

  • Assigned Shard: SHARD 251 ✅
  • Delegate: tz4GVPvRjU74WK6PvZrvb9jrSnqDykyj7eHc
  • Companion Key: tz4D2W852XgHSAaGvDab9NpRaWDMi6x3emoW
  • Status: Ready for DAL attestations

Monitor Baker DAL Activity

Baker Log Monitoring

# Watch for DAL-related baker logs
docker logs tezos-bls-baker --follow | grep -i "dal\|companion"

# Look for these patterns:
# ✅ Success: "injected attestation (with DAL)"
# ❌ No shards: "has no assigned DAL shards at level"
# ⏳ Waiting: "injected attestation (without DAL)"

Verify Delegate Stake

Stake Verification Commands

# Check current balance and staking info
octez-client -E https://rpc.seoulnet.teztnets.com get balance for baker

# Get detailed delegate information
octez-client -E https://rpc.seoulnet.teztnets.com \
  rpc get /chains/main/blocks/head/context/delegates/tz4GVPvRjU74WK6PvZrvb9jrSnqDykyj7eHc

🚨 DAL Troubleshooting Guide

Issue 1: No DAL Shards Assigned

Symptoms:

  • Baker logs: "has no assigned DAL shards at level 814341"
  • Baker logs: "injected attestation (without DAL)"
  • RPC query returns empty results for your delegate

🔧 Diagnostic Steps

# 1. Check minimum stake requirement
octez-client -E https://rpc.seoulnet.teztnets.com \
  rpc get '/chains/main/blocks/head/context/constants' | \
  jq '.minimal_stake'

# 2. Check your current stake
octez-client -E https://rpc.seoulnet.teztnets.com get balance for baker

# 3. Verify delegate is active (not deactivated)
octez-client -E https://rpc.seoulnet.teztnets.com \
  rpc get /chains/main/blocks/head/context/delegates/tz4GVPvRjU74WK6PvZrvb9jrSnqDykyj7eHc | \
  grep deactivated
# Should show: "deactivated": false

# 4. Check if companion key is properly registered
octez-client list known addresses | grep companion

✅ Resolution Strategy

  1. Minimum Stake: Ensure >6,000 ꜩ staked balance
  2. Delegate Status: Verify delegate is not deactivated
  3. Key Registration: Both consensus and companion BLS keys must be registered
  4. Baker Configuration: DAL node must be specified in baker command
  5. Wait Period: DAL shard assignments may take several cycles to appear

Key Troubleshooting Commands

🔧 Key Management Issues

# Re-import keys if needed
octez-client import secret key consensus_key \
  http://10.0.0.1:7732/tz4BeVDPwvFu2s6TacozUVhammffmN95GHzd \
  --force

octez-client import secret key companion_key \
  http://10.0.0.1:7732/tz4D2W852XgHSAaGvDab9NpRaWDMi6x3emoW \
  --force

🔄 Delegate Reactivation

# If delegate was deactivated
octez-client -E https://rpc.seoulnet.teztnets.com \
  register key baker as delegate

# Verify reactivation
octez-client -E https://rpc.seoulnet.teztnets.com \
  rpc get /chains/main/blocks/head/context/delegates/tz4GVPvRjU74WK6PvZrvb9jrSnqDykyj7eHc | \
  grep deactivated

🏆 Implementation Results

✅ Complete DAL + BLS Infrastructure Operational

Successfully implemented full Tezos DAL operations with BLS hardware signing using Raspberry Pi Zero 2W. This demonstrates cutting-edge Tezos scaling technology with hardware security isolation, ready for both consensus operations and Data Availability Layer attestations.

🎯 Current Operational Status

  • DAL Shard Assignment: SHARD 251 ✅
  • BLS Consensus: Active with 90.6% success rate
  • Companion Key: Ready for DAL attestations
  • Staking Power: 526,122+ ꜩ (87x DAL minimum)
  • Network Latency: <1ms (local Seoul node)
  • Infrastructure: Production ready

🚀 Technical Achievements

  • Hardware BLS Signing: Raspberry Pi Zero 2W isolation
  • Local Node Integration: Optimized Seoul node performance
  • Dual Key Management: Consensus + companion BLS keys
  • DAL Configuration: Full bootstrap node integration
  • Monitoring System: Automated health checks
  • Production Scale: Ready for mainnet deployment

Key Learning Outcomes

🔐 Hardware Security

Successful isolation of BLS signing operations on dedicated hardware provides enhanced security for both consensus and DAL attestations.

📈 Scaling Infrastructure

DAL implementation demonstrates Tezos's path to massive throughput scaling while maintaining decentralization and security.

🎯 Operational Excellence

Achieving 87x the minimum DAL staking requirement ensures consistent shard assignments and reliable DAL participation.