testnet-v1.71.1
MystenLabs/suitestnet-v1.71.1May 5, 2026by ebmifa
AI Summary
Protocol v123 adds new Move stdlib functions for dynamic fields and a native bulletproof verification function. The Indexing Framework receives adaptive ingestion updates and removes legacy config options.
Key Highlights
- New dynamic field methods in Move stdlib
- Native verify_bulletproof_ristretto255_internal function
- Indexing framework updates: Adaptive ingestion and config removals
Breaking Changes
- Deprecates vector::empty and vector::singleton
- Deprecates dynamic_field::exists_ and remove_if_exists
- Removes checkpoint_lag and checkpoint_buffer_size from config
New Features
- New dynamic field methods (borrow_or_add, get_do, etc.)
- New dynamic_object_field methods
- Native verify_bulletproof_ristretto255_internal function
- New replace methods for dynamic fields
- GraphQL verifySignature
- accepts_chain_id implementation in stores
- ConcurrentConnection for BigTable
- Adaptive ingestion concurrency system
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/testnet-v1.71.1