devnet-0.23.0
Highlights
- Reconfiguration, stake delegation, voting power, and staking rewards are active! Most of these have worked since v0.22.0, but we did not advertise this functionality. Here are the basics:
- Epoch changes occur every ~2.5 hours
- At each epoch change, pending staking and un-staking actions take effect, staking rewards are distributed, and validator voting power is recomputed. All stake-related
entry
functions live in the sui_system module, and the Sui wallet also supports staking and un-staking. - By convention, total validator voting power is always 10,000, and the quorum threshold is always 6,667. This means that individual voting powers can easily be interpreted as percentages (e.g., voting power 500 = 0.5%).
- Validator voting power is proportional to the stake, with one exception: voting power of individual voting power is capped at 1,000 (i.e., 10%) if possible. This will always be the case in a realistic Sui system, but in the 4-validator devnet we will clearly need at least one validator over the cap :).
- We introduced several new libraries for testing Move code:
- test_utils, which has helpful functions for asserting equality (you’ll see both values when the assertion fails!) and debug printing: (example:
test_utils::print(b”we here”)
) - test_random, which exposes a seeded pseudorandom number generator for creating test values of various types. This makes it easier to exercise a variety of different test inputs, or even write a mini-fuzzer(#7574) (we have some ideas on first-class fuzzing support in Move tests—stay tuned :)).
- test_utils, which has helpful functions for asserting equality (you’ll see both values when the assertion fails!) and debug printing: (example:
- Checkpoints now have a unix timestamp in the CheckpointSummary. This can be accessed along with other checkpoint fields via sui_getCheckpointSummary
- Epoch have epoch start unix time stamp, also accessible in Move smart contracts via the following function. This is an important step toward the long-awaited feature of fine-grained time access in Move, which is coming soon!
- New flag (
--with-unpublished-dependencies
) forsui client publish
andsui move build
to simplify set-up after wipes by enabling packages to be published even if they have unpublished dependencies, by bundling the modules in those dependencies into the package. #7426 - Add methods for the CoinRead endpoints #7507
- Fix websocket default port for DevNet #7637
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-0.23.0