Skip to content

Releases: MystenLabs/sui

testnet-v1.4.1

28 Jun 17:00
7ffd0ba
Compare
Choose a tag to compare

What's Changed

  • Protocol version 16 upgrade
  • Cherry pick unwrapped then deleted simplification to release branch by @lxfind in #12600
  • Cherry pick 652fa40 (deep book change) to release by @lxfind in #12629
  • Cherry-pick: Framework snapshot for 1.4.1 (#12637) by @lxfind in #12640
  • Cherrypick PR#12620 into 1.4 release by @arun-koshy in #12677
  • Work around a bug that may cause fullnodes to fork when processing shared-object transactions with child objects. #12710
    • The work around may cause increased latency for execute_transaction_block RPC calls in some cases.
    • No behavioral changes are expected.
  • Disable blobdb: #12721
    • When attempting to prune tables that use blobdb, we found that RocksDB compaction CPU usage was unacceptably high.
    • Therefore blobdb is no longer used.
    • This change only takes effect for new nodes, or existing nodes that are wiped and resynced.
  • Fix bug that can cause checkpoint execution to stall on fullnodes. #12717
  • Fix race condition when populating secondary indexes, which can cause incorrect data to be served in response to RPCs. #12669

Full Changelog: https://github.com/MystenLabs/sui/commits/testnet-v1.4.1

mainnet-v1.3.2

28 Jun 17:11
2d985a3
Compare
Choose a tag to compare

What's Changed

  • Work around a bug that may cause fullnodes to fork when processing shared-object transactions with child objects. #12710
    • The work around may cause increased latency for execute_transaction_block RPC calls in some cases.
    • No behavioral changes are expected.
  • Disable blobdb: #12721
    • When attempting to prune tables that use blobdb, we found that RocksDB compaction CPU usage was unacceptably high.
    • Therefore blobdb is no longer used.
    • This change only takes effect for new nodes, or existing nodes that are wiped and resynced.
  • Fix bug that can cause checkpoint execution to stall on fullnodes. #12717
  • Fix race condition when populating secondary indexes, which can cause incorrect data to be served in response to RPCs. #12669

Full Changelog: https://github.com/MystenLabs/sui/commits/mainnet-v1.3.2

devnet-v1.5.0

10 Jul 18:32
5f0704a
Compare
Choose a tag to compare
devnet-v1.5.0 Pre-release
Pre-release

Highlights

  • #12515 #12821
    The kiosk::purchase_with_cap method for Sui Kiosk no longer emits the ItemPurchased event. This update should have minimal impact. If the logic of your application does rely on this event, you must change it to leverage custom events instead.

  • #12276
    Invalid coin_type inputs to coin_api now yield error code -32602 instead of the default -32000 error code, with the error string beginning with Invalid struct type. Similarly, invalid cursors will also yield a -32602 if the provided cursor cannot be found (with language cursor not found) or is not a coin (with language cursor is not a coin). Error language has been modified slightly:

    1. "Invalid Cursor {:?}, Object is not a coin" -> "cursor is not a coin"
    2. "Invalid Cursor {:?}, Object not found" -> "cursor not found"

    This is part of a larger effort to make JSON-RPC errors more actionable, by splitting errors into three error codes: -32602 for any client-facing error, -32000 for noncritical server and catchall errors, and -32603 for critical errors.

  • #12650
    Developers may now opt into running linters when building/testing/publishing/upgrading packages via CLI by specifying the -lint flag.

  • #12648 #12600
    Prior to this change, unwrapped_then_deleted field in TransactionEffects only contain unwrapped then deleted objects that previously existed in the store (i.e. was once unwrapped in its lifetime). If an object was always wrapped since creation and was never unwrapped ever, it wouldn't show up in unwrapped_then_deleted. With this change, we no longer make such a distinction. As long as an object is unwrapped and then deleted in a transaction, it would show up in effect regardless of its history. This simplifies the logic of handling them significantly.
    To properly maintain the state of the system accurately with this change, at the epoch boundary when this upgrade happens, we must re-accumulate the state root hash of all objects in the store. This process takes a few seconds on the mainnet. Testnet can take a much longer time (30s-1min) since it contains significantly more objects. Users may observe a brief slowdown of the network during epoch change when this is applied.

  • #12425
    The compiler features additional warnings for unused private functions and unused (uninstantiated) struct types

Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-v1.5.0

mainnet-v1.3.1

21 Jun 21:38
a2af559
Compare
Choose a tag to compare

What's Changed

  • Protocol version 14 upgrade
    • Reduce gas charges to align with the usage of PTBs. PTBs increase the amount of code that can be run within a single request with no significant impact on the execution time and use of resources. As such it did not seem consistent to penalize PTBs for a usage pattern that should be “rewarded” instead. Of course, there are still limits in execution in order to protect against DOS attacks.
      As a consequence, gas charges have been reduced across the following 2 axes:
      • “after execution” coarse buckets have been replaced by rounding (up by 1000 computation units). That makes the charges more linear than before and avoids the steep increase in medium size transactions.
      • Non-linear increases in computation and memory usage while executing have been reduced to a more gentle curve, particularly on the low and medium consumption. The increase in charges is still very steep on the higher end in order to avoid DOS attacks.

Full Changelog: https://github.com/MystenLabs/sui/commits/mainnet-v1.3.1

testnet-v1.4.0

21 Jun 22:01
Compare
Choose a tag to compare
testnet-v1.4.0 Pre-release
Pre-release

Highlights

  • #12548
    This release updates the protocol version to 14.
  • #12504
    Add support to the keytool import command to allow for importing a private key (from the wallet) in addition to the existing support of importing an account via a mnemonic.
  • #12536
    Added drop function to table_vec.move. This function simplifies cleaning up TableVec<T>s where T has drop. Previously one would have to pop elements out of the data structure one by one and drop them, and now they can just call one function. This mirrors functionality that already existed: sui::table::drop.
  • #12444
    Introduce new modules: clob_v2 and custodian_v2 and deprecate clob and custodian.
  • #12266
    Previously transactions in a Narwhal commit were ordered as the sub-dag is flattened in a depth-first traversal. Now we have added a round of ordering that orders the user transactions in the same commit by gas price, where a transaction with a higher gas price will be added for execution in the transaction manager first. Users can now prioritize the execution of their transaction within one round of consensus by setting their transaction’s gas price to be higher than the reference gas price.
  • #12363
    Revert behavior where log output was controlled by an env flag because when it was gated off, logs started showing up in command-line output. CLI now behaves as it did before: Producing a log file in the current working directory, but not displaying logs inline under normal operation.
  • #12233
    Introduce ReadApi::dev_inspect_transaction_block to the Sui Rust SDK. External contribution by @losman0s.
  • #12355 This changes the endpoint for suix_getNetworkMetrics. Before this change, the TPS was calculated over a time window of 10 seconds, which was not able to catch spikes of one checkpoint with many transactions. This PR changed this to be checkpoint-based, which catches a spike in a checkpoint and also the max consistent TPS achieved.
  • #12580 Fixes an issue that should reduce dips and variance in Narwhal header & certificate creation rates on some validators.

Full Changelog: https://github.com/MystenLabs/sui/commits/testnet-v1.4.0

testnet-v1.3.1

20 Jun 00:55
a2af559
Compare
Choose a tag to compare

What's Changed

  • Protocol version 14 upgrade
    • Reduce gas charges to align with the usage of PTBs. PTBs increase the amount of code that can be run within a single request with no significant impact on the execution time and use of resources. As such it did not seem consistent to penalize PTBs for a usage pattern that should be “rewarded” instead. Of course, there are still limits in execution in order to protect against DOS attacks.
      As a consequence, gas charges have been reduced across the following 2 axes:
      • “after execution” coarse buckets have been replaced by rounding (up by 1000 computation units). That makes the charges more linear than before and avoids the steep increase in medium size transactions.
      • Non-linear increases in computation and memory usage while executing have been reduced to a more gentle curve, particularly on the low and medium consumption. The increase in charges is still very steep on the higher end in order to avoid DOS attacks.

Full Changelog: https://github.com/MystenLabs/sui/commits/testnet-v1.3.1

devnet-v1.4.0

20 Jun 16:46
d816269
Compare
Choose a tag to compare
devnet-v1.4.0 Pre-release
Pre-release

HighLights

  • #12548
    This release updates the protocol version to 14.
  • #12504
    Add support to the keytool import command to allow for importing a private key (from the wallet) in addition to the existing support of importing an account via a mnemonic.
  • #12536
    Added drop function to table_vec.move. This function simplifies cleaning up TableVec<T>s where T has drop. Previously one would have to pop elements out of the data structure one by one and drop them, and now they can just call one function. This mirrors functionality that already existed: sui::table::drop.
  • #12444
    Introduce new modules: clob_v2 and custodian_v2 and deprecate clob and custodian.
  • #12266
    Previously transactions in a Narwhal commit were ordered as the sub-dag is flattened in a depth-first traversal. Now we have added a round of ordering that orders the user transactions in the same commit by gas price, where a transaction with a higher gas price will be added for execution in the transaction manager first. Users can now prioritize the execution of their transaction within one round of consensus by setting their transaction’s gas price to be higher than the reference gas price.
  • #12363
    Revert behavior where log output was controlled by an env flag because when it was gated off, logs started showing up in command-line output. CLI now behaves as it did before: Producing a log file in the current working directory, but not displaying logs inline under normal operation.
  • #12233
    Introduce ReadApi::dev_inspect_transaction_block to the Sui Rust SDK. External contribution by @losman0s.
  • #12355 This changes the endpoint for suix_getNetworkMetrics. Before this change, the TPS was calculated over a time window of 10 seconds, which was not able to catch spikes of one checkpoint with many transactions. This PR changed this to be checkpoint-based, which catches a spike in a checkpoint and also the max consistent TPS achieved.
  • #12580 Fixes an issue that should reduce dips and variance in Narwhal header & certificate creation rates on some validators.

Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-v1.4.0

mainnet-v1.3.0

14 Jun 22:08
Compare
Choose a tag to compare

Highlights

  • Updates the protocol version to 12

    • Start using BatchV2 in Narwhal, which introduces VersionedMetadata that allows for more granular tracking of Narwhal batch execution latency. #12178
    • #12290
  • Updates the protocol version to 13

    • Deprecation of 0xdee9::clob and 0xdee9::custodian in favour of 0xdee9::clob_v2 and 0xdee9::custodian_v2, #12359, #12466. These changes:
      • Add a concept of “client order id”, a static identifier for orders that simplifies off-chain order bookkeeping. This is a breaking change to the Order structure and several events, hence the deprecation of the old modules
      • Enable concurrent access to funds in a custodian by allowing the creation of multiple AccountCap's for a single custodian account.
  • Increases the size of UDP socket buffers for Sui, primary, and worker Anemo networks. This improves performance under high load. The buffer sizes requested after this change are larger than the default maximum buffer allowed by many operating systems. If the Sui node binary logs errors about failure to set UDP socket buffer size, you may need to increase the maximum allowed by your OS. #12230
    Use the following example commands for your OS to set the max buffer size to 100 MiB:

    • Linux: sudo sysctl -w net.core.rmem_max=104857600; sudo sysctl -w net.core.wmem_max=104857600
    • MacOS: sudo sysctl -w kern.ipc.maxsockbuf=104857600
  • Introduces two SuiNS RPC endpoints resolve_name_service_address and resolve_name_service_names, which resolve between SuiNS domain names and Sui addresses. Node operators do not have to do anything other than update the nodes to Sui version 1.3.0.

    • Node operators can choose alternative name service providers with compatible data specs by adding lines below to the end of node config files like /opt/sui/config/sui-node.yaml

      name-service-package-address: 0x7b0fcc0d8611ffbf5fb68d6a5a41bd395eeeb4875b90acccb6a8024cca42fb53
      name-service-registry-id: 0xb6eba8f159171e6afafd485da6c3ef4c90d010a35bf419c1843e5dad4a7f265a
      name-service-reverse-registry-id: 0x34a36dd204f8351a157d19b87bada9d448ec40229d56f22bff04fa23713a5c31
  • Updates the P2P discovery network to support the alternate server name (alternate_server_name) for Anemo. (#12171). In the next version upgrade release, will deprecate the server name sui and use sui-{chain-id} for network isolation.

  • #12231 Adds the checkpoint low watermark for state sync. This lets a node know which peers to query for checkpoint contents according to the watermarks when Sui enables checkpoint pruning at some point in the future.

  • #12092 Before we have a stake withdraw entry function that transfers the withdrawn SUI tokens back to the staker directly. This was not PTB-friendly in that users cannot compose stake withdrawal action with other actions using the withdrawn stake in one PTB. So, in addition to the existing function, we added a new stake withdraw function that returns the withdrawn SUI tokens, for better composability.

  • #12043 adds sui::kiosk::default() function for easy Kiosk setup.

  • #12287 [Kiosk SDK] Adds support for kiosk_lock_rule and environments (Testnet, Mainnet, Custom) for the purchase flows. Fixes withdrawFromKiosk and withdrawFromPolicy.

  • https://github.com/MystenLabs/sui/pull/12088Add query for market price (best bid and ask price).

  • #12251 Add indexer-exclusive transaction FromOrTo query, which returns transactions where the sender or recipient is the input address.

Full Changelog: https://github.com/MystenLabs/sui/commits/testnet-v1.3.0

testnet-v1.3.0

06 Jun 18:21
Compare
Choose a tag to compare

Highlights

  • Updates the protocol version to 12

    • Start using BatchV2 in Narwhal, which introduces VersionedMetadata that allows for more granular tracking of Narwhal batch execution latency. #12178
    • #12290
  • Updates the protocol version to 13

    • Deprecation of 0xdee9::clob and 0xdee9::custodian in favour of 0xdee9::clob_v2 and 0xdee9::custodian_v2, #12359, #12466. These changes:
      • Add a concept of “client order id”, a static identifier for orders that simplifies off-chain order bookkeeping. This is a breaking change to the Order structure and several events, hence the deprecation of the old modules
      • Enable concurrent access to funds in a custodian by allowing the creation of multiple AccountCap's for a single custodian account.
  • Increases the size of UDP socket buffers for Sui, primary, and worker Anemo networks. This improves performance under high load. The buffer sizes requested after this change are larger than the default maximum buffer allowed by many operating systems. If the Sui node binary logs errors about failure to set UDP socket buffer size, you may need to increase the maximum allowed by your OS. #12230
    Use the following example commands for your OS to set the max buffer size to 100 MiB:

    • Linux: sudo sysctl -w net.core.rmem_max=104857600; sudo sysctl -w net.core.wmem_max=104857600
    • MacOS: sudo sysctl -w kern.ipc.maxsockbuf=104857600
  • Introduces two SuiNS RPC endpoints resolve_name_service_address and resolve_name_service_names, which resolve between SuiNS domain names and Sui addresses. Node operators do not have to do anything other than update the nodes to Sui version 1.3.0.

    • Node operators can choose alternative name service providers with compatible data specs by adding lines below to the end of node config files like /opt/sui/config/sui-node.yaml

      name-service-package-address: 0x7b0fcc0d8611ffbf5fb68d6a5a41bd395eeeb4875b90acccb6a8024cca42fb53
      name-service-registry-id: 0xb6eba8f159171e6afafd485da6c3ef4c90d010a35bf419c1843e5dad4a7f265a
      name-service-reverse-registry-id: 0x34a36dd204f8351a157d19b87bada9d448ec40229d56f22bff04fa23713a5c31
  • Updates the P2P discovery network to support the alternate server name (alternate_server_name) for Anemo. (#12171). In the next version upgrade release, will deprecate the server name sui and use sui-{chain-id} for network isolation.

  • #12231 Adds the checkpoint low watermark for state sync. This lets a node know which peers to query for checkpoint contents according to the watermarks when Sui enables checkpoint pruning at some point in the future.

  • #12092 Before we have a stake withdraw entry function that transfers the withdrawn SUI tokens back to the staker directly. This was not PTB-friendly in that users cannot compose stake withdrawal action with other actions using the withdrawn stake in one PTB. So, in addition to the existing function, we added a new stake withdraw function that returns the withdrawn SUI tokens, for better composability.

  • #12043 adds sui::kiosk::default() function for easy Kiosk setup.

  • #12287 [Kiosk SDK] Adds support for kiosk_lock_rule and environments (Testnet, Mainnet, Custom) for the purchase flows. Fixes withdrawFromKiosk and withdrawFromPolicy.

  • https://github.com/MystenLabs/sui/pull/12088Add query for market price (best bid and ask price).

  • #12251 Add indexer-exclusive transaction FromOrTo query, which returns transactions where the sender or recipient is the input address.

Full Changelog: https://github.com/MystenLabs/sui/commits/testnet-v1.3.0

devnet-v1.3.0

05 Jun 21:00
Compare
Choose a tag to compare

Highlights

  • Protocol version upgrade to version 12
    • Start using BatchV2 in Narwhal which introduces VersionedMetadata that allows for more granular tracking of NW batch execution latency. #12178
    • #12290
  • Increases the size of UDP socket buffers for sui, primary, and worker Anemo networks. This improves performance under high load. The buffer sizes requested after this change are larger than the default maximum buffer allowed by many operating systems. If the sui node binary logs errors about failure to set UDP socket buffer size, you may need to increase the maximum allowed by your OS. #12230
    Some examples:
    • Linux: sudo sysctl -w net.core.rmem_max=104857600; sudo sysctl -w net.core.wmem_max=104857600
    • MacOS: sudo sysctl -w kern.ipc.maxsockbuf=104857600
  • Updates p2p discovery network, adding support for the alternate server name (#12171). In the next version upgrade release, will deprecate the server name sui and use `sui-{chain-id} for network isolation.
  • #12231 Adds the checkpoint low watermark for state sync. This lets a node know who to query checkpoint contents according to the watermarks, once checkpoint pruning is enabled.
  • #12092 Added a version of stake withdraw function that returns the withdrawn SUI tokens, for better composability.
  • #12249 • sui.js now has the correct response type definition for the RPC "withBcs" call
  • #12043 adds sui::kiosk::default() function for easy Kiosk setup
  • #12290 Adds Sui binary version to the explorer network dropdown menu
  • #12287 [Kiosk SDK] Adds support for kiosk_lock_rule and environments (testnet, mainnet, custom) for the purchase flows. Fixes withdrawFromKiosk and withdrawFromPolicy.
  • #12088 [Deepbook] Adds query for market price (best bid and ask price)

Full Changelog:
https://github.com/MystenLabs/sui/commits/devnet-v1.3.0