github iotaledger/iota v1.29.0-alpha
[Alphanet] v1.29.0-alpha

pre-release5 hours ago

Protocol

This release introduces protocol version 32

On alphanet, this protocol version can be enabled no earlier than 2026-08-01 01:03 UTC (start of epoch 57).

#12366: The validator count limits and stake thresholds are governed by the protocol config; the deprecated on-chain system parameter fields are recorded as zero on newly created networks.

#12440: Enable the optimistic commit rule (StarfishSpeed) in Starfish consensus on testnet.

#12477: The minimum checkpoint interval is now amortized over a sliding window of 20 checkpoints on testnet (protocol version 32).

#12426: iota_system::genesis no longer supports timelocked stake allocations.

#12509: Publish package metadata with the module metadata stored as a dynamic field and allows view functions on Testnet.

#12511: Enables Move-based sponsor account authentication and the pre-consensus logic to authenticate only the sponsor Move authentication (if present) in mainnet.

#12457: The P-COOL flow is enabled on devnet from protocol version 32.

Nodes (Validators and Full nodes)

#12298: The default Starfish soft_leader_timeout is reduced from 100 ms to 5 ms; validators propose sooner when strong votes for the previous leader are slow to arrive. Operators can override it via consensus-config.parameters.soft_leader_timeout.

#12375: A certified Abstract Account transaction whose account object was deleted or cancelled due to shared-object congestion now executes to the proper failure effect.

#11645: - State sync moved from the archival store to a checkpoints bucket; nodes no longer write or read a separate state archive; historical checkpoints are now synced from a checkpoints archive via an ingestion URL.

  • state-archive-write-config and state-archive-read-config iota-node config entries removed entirely.
  • checkpoint-archive-config iota-node config entry added; it configures the state-sync fallback, with a required url (the historical checkpoints archive to backfill from). Add this entry to your node configuration and pick the correct network:
checkpoint-archive-config:
  url: "https://checkpoints.<mainnet|testnet|devnet>.iota.cafe/ingestion/historical"
  download-concurrency: 5

#12046: Client-facing request handling (validator gRPC, JSON-RPC, gRPC read API) now runs on a dedicated tokio runtime, isolated from node-core work (consensus, execution, checkpoints) so a flood of incoming transactions can no longer starve consensus commits or checkpoint signing. The core runtime keeps one worker per CPU core; serving threads are sized per node role and added on top. New tokio_runtime_* metrics expose per-runtime saturation.

#12131: Full node gRPC traffic control now accounts for batch APIs per item — each item of ExecuteTransactions, SimulateTransactions, GetObjects, and GetTransactions counts as one request for the spam policy, and per-item client errors feed the error policy — so batching can no longer dilute a client's request rate or hide its errors. GetObjects / GetTransactions batches are now size-capped via the new max_get_objects_batch_size / max_get_transactions_batch_size config (default 1000).

#12137: The validator gRPC server now enforces a concurrency limit per service (Validator, ValidatorV2, ValidatorPeer) instead of one global limit, so a flood of client transaction submissions cannot crowd out validator-peer RPCs. The grpc_concurrency_limit config field is replaced by grpc_concurrency_limit_per_core (default 1000); the effective per-service limit is that value times the machine's CPU cores (previously effectively unlimited). With grpc_load_shed, excess requests are rejected with RESOURCE_EXHAUSTED.

#12368: 21 avg-only Starfish consensus histograms are exported as plain _sum/_count counter pairs under unchanged series names, and the consensus_transaction_synchronizer_fetch_latency, consensus_latency_to_process_stream, and consensus_suspended_block_header_time histograms are replaced by gauges exposing fixed per-node quantiles {0.05, 0.33, 0.5, 0.66, 0.95} (the first two keep per-peer _sum/_count means); the _bucket series of all 24 metrics are no longer exposed, so custom histogram_quantile() queries over them must be updated.

Indexer

#12328: Removed the deprecated --optimistic-pruner-batch-size / OPTIMISTIC_PRUNER_BATCH_SIZE argument

#12467: The IOTA Indexer can now be restored from a formal snapshot. See wiki for more information.

JSON-RPC

#12277: the OpenRPC schema component for signatures is renamed GenericSignatureUserSignature; the wire format (base64 string) is unchanged.

#12366: On newly created networks, the deprecated validator count/stake fields of the system state summary report zero; read the enforced values from the protocol config instead.

CLI

#12342: the keyScheme field in iota client new-address JSON output is now lowercase (e.g. ed25519 instead of ED25519).

#11645: - iota-tool drops the archive subcommands verify-archive, print-archive-manifest, update-archive-manifest, verify-archive-from-checksums, and dump-archive; its backfill-checkpoint-summaries command now takes a required --ingestion-url argument.

  • iota-data-ingestion removes the archival task type from the ingestion config and the standalone archival_ingestion binary.
  • iota-light-client removes the archive-store-config option and now requires a GraphQL URL to sync checkpoints.

#12461: Parallel iota move build invocations no longer corrupt the shared git dependency cache in ~/.move or print git lock errors; concurrent fetches of the same dependency now wait for each other.

Rust SDK

#12482: iota-vm-sdk gRPC object fetches now skip objects the node cannot serve instead of failing the whole fetch

gRPC

#12351: GetEpoch can now return epoch_close_proof, the certified proof of how an epoch closed, available even for old, pruned epochs.

#12131: Batch APIs are now tallied per item by the full node traffic control (spam rate and error policy), so batching cannot bypass rate limiting.


Full Log: v1.28.0-alpha...v1.29.0-alpha

Don't miss a new iota release

NewReleases is sending notifications on new releases.