Protocol
Sui Protocol Version in this release: 122
#26166: - Adds sui::dynamic_field::borrow_or_add
- Adds
sui::dynamic_field::borrow_mut_or_add - Adds
sui::dynamic_field::get_do - Adds
sui::dynamic_field::get_mut_do - Adds
sui::dynamic_field::get_fold - Adds
sui::dynamic_field::get_mut_fold - Adds
sui::dynamic_object_field::borrow_or_add - Adds
sui::dynamic_object_field::borrow_mut_or_add - Adds
sui::dynamic_object_field::get_do - Adds
sui::dynamic_object_field::get_mut_do - Adds
sui::dynamic_object_field::get_fold - Adds
sui::dynamic_object_field::get_mut_fold
#26196: deprecates vector::empty and vector::singleton in the MoveStdlib
#26226: - Deprecated sui::dynamic_field::exists_ in favor of sui::dynamic_field::exists.
- Deprecated
sui::dynamic_field::remove_if_existsin favor ofsui::dynamic_field::remove_opt. - Deprecated
sui::dynamic_object_field::exists_in favor ofsui::dynamic_object_field::exists. - Adds
sui::dynamic_object_field::remove_opt.
#25959: Add a new native function, verify_bulletproof_ristretto255_internal and enable on devnet.
#26248: - Adds sui::dynamic_field::replace.
- Adds
sui::dynamic_object_field::replace.
#26318: Adds amendments to certain linkages to allow them to be loaded into the new VM.
GraphQL
#25863: Add new verifySignature
#26208: Fixes an issue where a derived object or dynamic field load could be incorrectly bounded by the version of the object containing the derived object key, instead of the parent.
Indexing Framework
#26247: Implement accepts_chain_id in object store
#26150: Implements ConcurrentConnection for BigTableConnection to support backwards indexing. Updates BigTableReader to use new watermark format.
#26302: ## Adaptive ingestion for sequential pipelines
Sequential pipelines now participate in the adaptive ingestion concurrency system alongside concurrent pipelines. Fetch concurrency is driven by per-subscriber bounded-channel fill across both pipeline types — one mechanism, no special cases.
Removed
checkpoint_lagis gone. The sequential committer no longer holds writes back behind a lag window; it commits whenever contiguous checkpoints are available.checkpoint_buffer_sizeis gone.
Added
-
subscriber_channel_sizeis now a per-pipeline knob under the pipeline'singestionsection. Defaults tomax(num_cpus / 2, 4).[pipeline.my_pipeline.ingestion] subscriber_channel_size = 32
Migration
Config layers carry #[serde(deny_unknown_fields)], so stale fields will fail to parse on upgrade. Before deploying:
- Remove
checkpoint_buffer_sizefrom[ingestion]. - Remove
checkpoint_lagfrom any[pipeline.*]section.
We recommend omitting these overrides entirely — the adaptive controller sizes fetch concurrency against the slowest subscriber automatically.