mainnet-v1.68.1
MystenLabs/suimainnet-v1.68.1Mar 25, 2026by ebmifa
AI Summary
Upgrades the Sui protocol to version 118, enables Display V2 and Address Aliases, and introduces adaptive concurrency control.
Key Highlights
- Enables Display V2 system object creation.
- Enables address aliases feature.
- Introduces adaptive concurrency control for processors and ingestion pipelines.
Breaking Changes
- `Processor::FANOUT` trait constant removed.
- `ingest_concurrency` changed from `usize` to `ConcurrencyConfig`.
- New `processor_channel_size` field controls the channel size.
New Features
- Adds support for Display Registry in JSON-RPC and GraphQL.
- Introduces `MoveValue.asVector` for paginating through vectors.
- Introduces `SignatureScheme` union for `UserSignature`.
Full Release Notes
## Protocol
#### Sui Protocol Version in this release: `118`
https://github.com/MystenLabs/sui/pull/25907: Add missing function for display migration cap
https://github.com/MystenLabs/sui/pull/25674: Enables address aliases feature on mainnet.
https://github.com/MystenLabs/sui/pull/23710: Enables Display V2 (`0xd` system object is created)
https://github.com/MystenLabs/sui/pull/25827: metadata hardening in Sui System
## Nodes (Validators and Full nodes)
https://github.com/MystenLabs/sui/pull/25624: Fixes a potential fullnode panic when simulating a malformed transaction with invalid funds withdrawals.
## JSON-RPC
https://github.com/MystenLabs/sui/pull/25360: Adds support for Display Registry to JSONRPC: When `showDisplay` is set, the RPC will look for a `Display<T>` stored in the Display Registry and will use that as the source of truth for its type's format. This takes precedence over any Display v1 formats that exist for this type.
## GraphQL
https://github.com/MystenLabs/sui/pull/25479: Introduce `MoveValue.asVector` for paginating through vectors of Move Values.
https://github.com/MystenLabs/sui/pull/25657: Introduce a new union `SignatureScheme` for `UserSignature`
https://github.com/MystenLabs/sui/pull/25715: ZkLoginVerifyResult will not contain error anymore. Error will not be part of GraphQL response error
https://github.com/MystenLabs/sui/pull/25242: Adds support for Display Registry to GraphQL: `MoveValue.display` will look for a `Display<T>` stored in the Display Registry and will use that as the source of truth for its type's format. This takes precedence over any Display v1 formats that exist for this type.
## Indexing Framework
https://github.com/MystenLabs/sui/pull/25641: Processor concurrency (`fanout`) and ingestion concurrency (`ingest_concurrency`) now use adaptive concurrency control by default. Instead of a fixed number of workers, concurrency starts at 1 and scales automatically based on downstream channel backpressure — up to `num_cpus` for processors and up to 500 for ingestion.
**Breaking changes:**
- `Processor::FANOUT` trait constant has been removed. Processor concurrency is now configured via the `fanout` field on `ConcurrentConfig` / `SequentialConfig`, which accepts a `ConcurrencyConfig` enum instead of `usize`.
- `ingest_concurrency` in `IngestionConfig` changed from `usize` to `ConcurrencyConfig`.
- A new `processor_channel_size` field controls the channel between the processor and downstream stage (defaults to `num_cpus / 2`). This channel previously sized itself from `FANOUT + PIPELINE_BUFFER`.
**Migration:** To preserve previous fixed-concurrency behavior, set `fanout: Some(ConcurrencyConfig::Fixed { value: N })` or `ingest_concurrency: ConcurrencyConfig::Fixed { value: N }`. Otherwise, no changes are needed — the adaptive defaults should work well for most workloads.
---
#### Full Log: https://github.com/MystenLabs/sui/commits/mainnet-v1.68.1