Protocol
Sui Protocol Version in this release: 117
#25827: metadata hardening in Sui System
#25674: Enables address aliases feature on mainnet.
#23710: Enables Display V2 (0xd system object is created)
Nodes (Validators and Full nodes)
#25624: Fixes a potential fullnode panic when simulating a malformed transaction with invalid funds withdrawals.
JSON-RPC
#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
#25479: Introduce MoveValue.asVector for paginating through vectors of Move Values.
#25657: Introduce a new union SignatureScheme for UserSignature
#25715: ZkLoginVerifyResult will not contain error anymore. Error will not be part of GraphQL response error
#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
#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::FANOUTtrait constant has been removed. Processor concurrency is now configured via thefanoutfield onConcurrentConfig/SequentialConfig, which accepts aConcurrencyConfigenum instead ofusize.ingest_concurrencyinIngestionConfigchanged fromusizetoConcurrencyConfig.- A new
processor_channel_sizefield controls the channel between the processor and downstream stage (defaults tonum_cpus / 2). This channel previously sized itself fromFANOUT + 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.