mainnet-v1.71.1
MystenLabs/suimainnet-v1.71.1May 6, 2026by ebmifa
AI Summary
Bumps the Sui protocol to version 123, introduces new dynamic field functions in the Move stdlib, and updates the indexing framework with adaptive ingestion and chain ID support.
Key Highlights
- Adds new dynamic field functions like `borrow_or_add`, `get_do`, and `get_fold`.
- Deprecates `vector::empty` and `vector::singleton` in the MoveStdlib.
- Adds new native function `verify_bulletproof_ristretto255_internal`.
- Introduces adaptive ingestion for sequential pipelines and removes `checkpoint_lag` and `checkpoint_buffer_size` config fields.
Breaking Changes
- Removal of `checkpoint_lag` and `checkpoint_buffer_size` configuration fields in the indexing framework.
New Features
- Adds `sui::dynamic_field::replace` and `sui::dynamic_object_field::replace`.
- Adds `sui::dynamic_field::get_fold` and `get_mut_fold` variants.
- Adds `verifySignature` to GraphQL.
- Implements `accepts_chain_id` in consistent store, analytics indexer, and object store.
Full Release Notes
## Protocol #### Sui Protocol Version in this release: `123` https://github.com/MystenLabs/sui/pull/26492: Bump protocol version https://github.com/MystenLabs/sui/pull/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` https://github.com/MystenLabs/sui/pull/26196: deprecates `vector::empty` and `vector::singleton` in the MoveStdlib https://github.com/MystenLabs/sui/pull/26226: - Deprecated `sui::dynamic_field::exists_` in favor of `sui::dynamic_field::exists`. - Deprecated `sui::dynamic_field::remove_if_exists` in favor of `sui::dynamic_field::remove_opt`. - Deprecated `sui::dynamic_object_field::exists_` in favor of `sui::dynamic_object_field::exists`. - Adds `sui::dynamic_object_field::remove_opt`. https://github.com/MystenLabs/sui/pull/25959: Add a new native function, **verify_bulletproof_ristretto255_internal** and enable on devnet. https://github.com/MystenLabs/sui/pull/26248: - Adds `sui::dynamic_field::replace`. - Adds `sui::dynamic_object_field::replace`. https://github.com/MystenLabs/sui/pull/26318: Adds amendments to certain linkages to allow them to be loaded into the new VM. ## GraphQL https://github.com/MystenLabs/sui/pull/25863: Add new verifySignature https://github.com/MystenLabs/sui/pull/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 https://github.com/MystenLabs/sui/pull/26181: Implement `accepts_chain_id` in consistent store. https://github.com/MystenLabs/sui/pull/26171: Implement `accepts_chain_id` in analytics indexer. https://github.com/MystenLabs/sui/pull/26247: Implement `accepts_chain_id` in object store https://github.com/MystenLabs/sui/pull/26150: Implements `ConcurrentConnection` for `BigTableConnection` to support backwards indexing. Updates `BigTableReader` to use new watermark format. https://github.com/MystenLabs/sui/pull/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_lag`** is gone. The sequential committer no longer holds writes back behind a lag window; it commits whenever contiguous checkpoints are available. - **`checkpoint_buffer_size`** is gone. ### Added - **`subscriber_channel_size`** is now a per-pipeline knob under the pipeline's `ingestion` section. Defaults to `max(num_cpus / 2, 4)`. ```toml [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_size` from `[ingestion]`. - Remove `checkpoint_lag` from any `[pipeline.*]` section. **We recommend omitting these overrides entirely** — the adaptive controller sizes fetch concurrency against the slowest subscriber automatically. --- #### Full Log: https://github.com/MystenLabs/sui/commits/mainnet-v1.71.1