Today, Sui Network announced on its official Twitter the launch of the Permanent Testnet, a long-running, decentralized, and permissionless testnet. Unlike the past Waves 1 and Waves 2 testnets, this new testnet is It will continue to operate after the Mainnet is launched. Through this permanent testnet, SUI Network will bring many important functional updates to the community.
Original: SUI Foundation
Compilation: SUI World
core network
Dynamic validator set: Candidate validators who meet sufficient equity requirements can join the network at the epoch boundary, and active validators can leave the network at the epoch boundary. This validator access model is truly permissionless.
Support protocol software and Sui framework upgrades: Unlike Devnet, Testnet will not be deleted on every software update (unless there is a special reason), the community will be notified before any software update or data deletion on Testnet.
Restoring full nodes from database snapshots: Node runners can take advantage of checkpoints to quickly start full nodes instead of waiting for full nodes to sync.
Address and signature updates: Account addresses, object IDs, and transaction IDs are upgraded from 20 bytes to 32 bytes to prevent hash collisions. Also, Sui's default hash function is now Blake2b instead of SHA3, because Blake2b is more performant. To support a wide range of transaction sizes, signatures are now applied to hash digests rather than serialized BCS data, which makes Sui compatible with hardware wallets whose signer API typically allows inputs of limited size.
developer experience
In order to realize the desire to make Sui the most developer-friendly platform in the public chain, Sui regards this permanent testnet as the earliest incarnation of Sui DevX 1.0, which brings together many core developer primitives and semantics:
1) Collection of feedback from developers and builders throughout the SUI development process;
2) The basic elements of developer efficiency will continue to be refined;
3) The purpose of the design is to realize a decentralized but not fragmented SUI ecosystem
These primitives are:
1) Programmable transaction blocks
https://docs.sui.io/build/prog-trans-ts-sdk
This powerful structure makes it possible to chain together a sequence of transactions—splitCoin mergeCoins transferObjects moveCall makeMoveVec publish—to create a custom block of atomic transactions specifically suited to an application's needs. Since moveCall can specify any existing on-chain function, the programmable transaction block essentially provides a temporary combination of transactions, which greatly enhances the versatility of the Sui Move programming model.
Programmable transaction blocks also simplify GAS Coin object management, as applications can pass in a vector of GAS Coin objects and perform Coin split/merge within a programmable transaction block without having to perform coin selection prior to commit.
2) Sponsorship transaction and gas station
https://docs.sui.io/learn/sponsored-transactions
While sponsorship transactions have been supported since SUI version 0.27, Shinami's gas station now
https://github.com/MystenLabs/sui/releases/tag/devnet-0.27.0
Works with Sui's permanent testnet!
3) Object display standard
https://docs.sui.io/build/sui-object-display
A set of named templates standardize the off-chain display of objects of the same type, both Sui Browser and Sui Wallet now support the Object Display Standard, as do the Sui API and Typescript/Rust SDK. This was a collaborative effort with a lot of ideas and brainstorming from the Sui community - special thanks to Capsules and OriginByte for their input on this standard.
4) Kiosk Standard
https://github.com/MystenLabs/sui/blob/main/crates/sui-framework/docs/kiosk.md
Kiosk is a powerful new primitive that enables listing objects for sale and enforcing a creator-defined royalty policy when an object is sold. The combination of Object Display and Kiosk fills two key gaps where people are building collectibles and trading platforms on Sui. We encourage ecosystem wallets, browsers, and marketplaces to explore object display standards and kiosk standards for seamless compatibility across the ecosystem.
5) RPC transformation
There are now more aggregation-based RPC get* methods: getEpoch, getNetworkMetrics, getMoveCallMetrics, queryObjects. JSON RPC batch requests are deprecated in favor of the MultiGet* methods. System events are deprecated in favor of dedicated fields in transaction responses . Finally, some legacy RPC methods (marked with unsafe_*) are deprecated in favor of programmable transaction blocks.
6) Zero-knowledge Proof
There is now Move API support for verifying Groth16 ZKPs using BN254 elliptic curves and BLS12-381 (two of the most widely used curves). This provides proof of computation in Sui smart contracts and enables privacy-preserving applications.
7) Timestamps with two granularities
https://docs.sui.io/build/move/time
A fine-grained Clock module that supports 2-3 second granularity for near real-time applications, and a coarse-grained Epoch timestamp.
8) Move Package Upgrade
This is the basic functionality for developers to upgrade their Move smart contracts and import related packages. The move package upgrade will be available on testnet with the next software update (tentatively scheduled for the first week of April), so stay tuned!
In addition to using Devnet and Testnet, builders are encouraged to use local environments for initial development and faster iterations. The sui-test-validator binary has been improved to aid local development.
Sui Devnet VS Testnet
The table below describes the network characteristics that differ between Devnet and the permanent testnet as of the date of this article.