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