testnet-v1.75.1

wger-project/wgertestnet-v1.75.1Jul 7, 2026by ebmifa

AI Summary

Protocol version 129 release featuring updates to the Sui blockchain protocol, node functionality, and indexing framework improvements.

Key Highlights

  • Introduced explicit bounds for binary pools in the protocol.
  • Added `insert_before` and `insert_after` to `sui::linked_table`.
  • State-sync archive fallback now supports Google Cloud Storage (`gs://`) with requester-pays support.
  • New `RUST_LOG_TAILS` environment variable for writing logs to dedicated files.
  • Updated opaque pagination cursors in gRPC scanning APIs.

Breaking Changes

  • Updated internal encoding for opaque pagination cursors returned by scanning APIs (restart pagination if error).
  • Support for resumable checkpoints subscription is now available in the `staging` features.

New Features

  • Google Cloud Storage support for state-sync archives
  • Insert before/after methods for linked tables
  • RUST_LOG_TAILS environment variable
  • IAddressable.asTransactionObject generalization
  • GraphQL request payload capture for replay

Full Release Notes

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

https://github.com/MystenLabs/sui/pull/27096: Introduces a new protocol version that adds explicit bounds for binary pools that were otherwise implicitly constrained before. No user-visible change.

https://github.com/MystenLabs/sui/pull/26914: adds `insert_before` and `insert_after` to `sui::linked_table`

https://github.com/MystenLabs/sui/pull/27067: use `defining_ids` in `sui::coin`

## Nodes (Validators and Full nodes)

https://github.com/MystenLabs/sui/pull/27063: the state-sync archive fallback now supports `gs://` (Google Cloud Storage) ingestion URLs. A new `remote-store-headers` option under `state-archive-read-config` attaches default HTTP headers to archive requests, which enables requester-pays GCS buckets via `x-goog-user-project`. Previously only `file` / `s3` / `http` archive stores were supported.

https://github.com/MystenLabs/sui/pull/27026: New optional `RUST_LOG_TAILS` env var additionally writes individual tracing targets to dedicated files (format inferred from the file extension — `.jsonl`/`.ndjson` for JSON, otherwise text), leaving normal log output unchanged. Backward-compatible — unset by default, so log output is unchanged and no action is required.

## gRPC

https://github.com/MystenLabs/sui/pull/27035: Opaque pagination cursors returned by the scanning apis `list_transactions`, `list_events`, and `list_checkpoints` have a new internal encoding. Cursors remain opaque and clients should continue treating them as such. Users should restart pagination from the beginning if they encounter a cursor-related error.

## GraphQL

https://github.com/MystenLabs/sui/pull/27018: Introduce `IAddressable.asTransactionObject` as a generalization of `Address.asTransactionObject`.

https://github.com/MystenLabs/sui/pull/27004: GraphQL request payloads can be captured for replay by enabling the `graphql_request` tracing target at trace level — all kinds via `RUST_LOG=graphql_request=trace`, or a single operation kind via `RUST_LOG="graphql_request[{kind=mutation}]=trace"`. Disabled by default.

https://github.com/MystenLabs/sui/pull/26731: Add cursor field to Checkpoint object

https://github.com/MystenLabs/sui/pull/27035: The opaque pagination cursor returned for a `Transaction` edge of the `TransactionConnection` have a new internal encoding. Cursors remain opaque and clients should continue treating them as such. Users should restart pagination from the beginning if they encounter a cursor-related error.

https://github.com/MystenLabs/sui/pull/26714: Support resumable checkpoints subscription in features `staging`

## CLI

https://github.com/MystenLabs/sui/pull/27094: `sui start` respects the fullnode RPC socket address that's part of its network config, if one is provided.

## Indexing Framework

https://github.com/MystenLabs/sui/pull/27026: The same `RUST_LOG_TAILS` env var is available to indexer binaries (e.g. `sui-indexer-alt-graphql`). Set it alongside `RUST_LOG` (e.g. `RUST_LOG="info,graphql_request=trace"` with `RUST_LOG_TAILS="graphql_request=/var/log/sui/graphql_request.jsonl"`) to capture that target as NDJSON for replay while normal logs stay readable. Opt-in; no action required otherwise.

---
#### Full Log: https://github.com/MystenLabs/sui/commits/testnet-v1.75.1