testnet-v1.71.0

MystenLabs/suitestnet-v1.71.0Apr 28, 2026by ebmifa

AI Summary

Upgrades the Sui protocol to version 122, adds new dynamic field functions, deprecates specific Move stdlib functions, and updates the indexing framework with adaptive ingestion.

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.
  • 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.
  • Fixes an issue where derived object or dynamic field load could be incorrectly bounded.

Full Release Notes

## Protocol
#### Sui Protocol Version in this release: `122`

https://github.com/MystenLabs/sui/pull/26196: deprecates `vector::empty` and `vector::singleton` in the MoveStdlib

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/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/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.0