Skip to content

Releases: MystenLabs/sui

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

mainnet-v1.2.1

01 Jun 23:32
Compare
Choose a tag to compare

Highlights

  • [API behavioral changes] - rpc methods that result in errors of variant UserInputError, SuiRpcInputError, SuiError::TransactionNotFound or SuiError::TransactionsNotFound now return error code 32602 instead of 32000. #11833 #11928 Improve
  • Fixed a bug for get_coin_metadata which can return null when the fullnode is pruned #11971
  • sui::package::from_package<T>(self: &Publisher) and sui::package::from_module<T>(self: &Publisher) return true when T is a type introduced at any upgraded version of the package associated with self: &Publisher (rather than just the types initially present when that package was published).
  • Protocol version upgrade to version 11, including a framework upgrade:
    • std::type_name::get_with_original_ids is introduced as a new stdlib function to return a representation of the type where package IDs have all been normalized to "original" IDs (the ID of the first version of a package) in contrast to the default behavior of std::type_name::get which distinguishes types introduced at different versions of a package by assigning them the ID of the package that introduced them.
      #12026
      #12047
    • sui::package::from_package<T>(self: &Publisher) and sui::package::from_module<T>(self: &Publisher) return true when T is a type introduced at any upgraded version of the package associated with self: &Publisher (rather than just the types originally present when that package was published).
    • Bound maximal runtime depth of Move values within the Move VM.
  • The sui CLI logging to file is now off by default but can be enabled by setting the env variable SUI_CLI_LOG_FILE_ENABLE=1 #12095.
  • The default stake subsidy parameters have been changed to 10 distribution epoch periods with a decrease rate of 10%. This will affect rewards distribution on devnet. #11826
  • updated documentation on advice for fullnode pruning settings #11905
  • New Sui client CLI command (verify-bytecode-meter) which reports the bytecode verifier metering ticks for a package. This is useful when triaging why a package times-out during verification at signing. #11974. Example usage: sui client verify-bytecode-meter {package_source_path}
  • The --serialize_output option of the sui CLI command now becomes --serialize_unsigned_transaction; also added --serialize_signed_transaction option to serialize the transaction after applying the user signature.

Known Issues
Addresses or IDs with a zero 0 after the initial 0x will have that 0 missing and will be 1 char shorter. This can be used to identify such faulty responses, correct ones should be 66 chars in length. Addresses shown as being 65 chars in length are missing a 0 after the 0x.
Example: Address 0x0eb97bff42fcef320b5f148db69033b9f689555348b2e90f1da72b0644fa37d0 will be returned as 0xeb97bff42fcef320b5f148db69033b9f689555348b2e90f1da72b0644fa37d0

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

mainnet-v1.2.0

31 May 17:15
7ef210c
Compare
Choose a tag to compare

Highlights

  • [API behavioral changes] - rpc methods that result in errors of variant UserInputError, SuiRpcInputError, SuiError::TransactionNotFound or SuiError::TransactionsNotFound now return error code 32602 instead of 32000. #11833 #11928 Improve
  • Fixed a bug for get_coin_metadata which can return null when the fullnode is pruned #11971
  • sui::package::from_package<T>(self: &Publisher) and sui::package::from_module<T>(self: &Publisher) return true when T is a type introduced at any upgraded version of the package associated with self: &Publisher (rather than just the types initially present when that package was published).
  • Protocol version upgrade to version 11, including a framework upgrade:
    • std::type_name::get_with_original_ids is introduced as a new stdlib function to return a representation of the type where package IDs have all been normalized to "original" IDs (the ID of the first version of a package) in contrast to the default behavior of std::type_name::get which distinguishes types introduced at different versions of a package by assigning them the ID of the package that introduced them.
      #12026
      #12047
    • sui::package::from_package<T>(self: &Publisher) and sui::package::from_module<T>(self: &Publisher) return true when T is a type introduced at any upgraded version of the package associated with self: &Publisher (rather than just the types originally present when that package was published).
  • The sui CLI logging to file is now off by default but can be enabled by setting the env variable SUI_CLI_LOG_FILE_ENABLE=1 #12095.
  • The default stake subsidy parameters have been changed to 10 distribution epoch periods with a decrease rate of 10%. This will affect rewards distribution on devnet. #11826
  • updated documentation on advice for fullnode pruning settings #11905
  • New Sui client CLI command (verify-bytecode-meter) which reports the bytecode verifier metering ticks for a package. This is useful when triaging why a package times-out during verification at signing. #11974. Example usage: sui client verify-bytecode-meter {package_source_path}
  • The --serialize_output option of the sui CLI command now becomes --serialize_unsigned_transaction; also added --serialize_signed_transaction option to serialize the transaction after applying the user signature.

Known Issues
Addresses or IDs with a zero 0 after the initial 0x will have that 0 missing and will be 1 char shorter. This can be used to identify such faulty responses, correct ones should be 66 chars in length. Addresses shown as being 65 chars in length are missing a 0 after the 0x.
Example: Address 0x0eb97bff42fcef320b5f148db69033b9f689555348b2e90f1da72b0644fa37d0 will be returned as 0xeb97bff42fcef320b5f148db69033b9f689555348b2e90f1da72b0644fa37d0

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

testnet-v1.2.0

23 May 17:18
7ef210c
Compare
Choose a tag to compare

Highlights

  • [API behavioral changes] - rpc methods that result in errors of variant UserInputError, SuiRpcInputError, SuiError::TransactionNotFound or SuiError::TransactionsNotFound now return error code 32602 instead of 32000. #11833 #11928 Improve
  • Fixed a bug for get_coin_metadata which can return null when the fullnode is pruned #11971
  • sui::package::from_package<T>(self: &Publisher) and sui::package::from_module<T>(self: &Publisher) return true when T is a type introduced at any upgraded version of the package associated with self: &Publisher (rather than just the types initially present when that package was published).
  • Protocol version upgrade to version 11, including a framework upgrade:
    • std::type_name::get_with_original_ids is introduced as a new stdlib function to return a representation of the type where package IDs have all been normalized to "original" IDs (the ID of the first version of a package) in contrast to the default behavior of std::type_name::get which distinguishes types introduced at different versions of a package by assigning them the ID of the package that introduced them.
      #12026
      #12047
    • sui::package::from_package<T>(self: &Publisher) and sui::package::from_module<T>(self: &Publisher) return true when T is a type introduced at any upgraded version of the package associated with self: &Publisher (rather than just the types originally present when that package was published).
  • The sui CLI logging to file is now off by default but can be enabled by setting the env variable SUI_CLI_LOG_FILE_ENABLE=1 #12095.
  • The default stake subsidy parameters have been changed to 10 distribution epoch periods with a decrease rate of 10%. This will affect rewards distribution on devnet. #11826
  • updated documentation on advice for fullnode pruning settings #11905
  • New Sui client CLI command (verify-bytecode-meter) which reports the bytecode verifier metering ticks for a package. This is useful when triaging why a package times-out during verification at signing. #11974. Example usage: sui client verify-bytecode-meter {package_source_path}
  • The --serialize_output option of the sui CLI command now becomes --serialize_unsigned_transaction; also added --serialize_signed_transaction option to serialize the transaction after applying the user signature.

Known Issues
Addresses or IDs with a zero 0 after the initial 0x will have that 0 missing and will be 1 char shorter. This can be used to identify such faulty responses, correct ones should be 66 chars in length. Addresses shown as being 65 chars in length are missing a 0 after the 0x.
Example: Address 0x0eb97bff42fcef320b5f148db69033b9f689555348b2e90f1da72b0644fa37d0 will be returned as 0xeb97bff42fcef320b5f148db69033b9f689555348b2e90f1da72b0644fa37d0

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

devnet-v1.2.0

23 May 00:50
7ef210c
Compare
Choose a tag to compare

Highlights

  • [API behavioral changes] - rpc methods that result in errors of variant UserInputError, SuiRpcInputError, SuiError::TransactionNotFound or SuiError::TransactionsNotFound now return error code 32602 instead of 32000. #11833 #11928
  • Fixed a bug for get_coin_metadata which can return null when the fullnode is pruned #11971
  • sui::package::from_package<T>(self: &Publisher) and sui::package::from_module<T>(self: &Publisher) return true when T is a type introduced at any upgraded version of the package associated with self: &Publisher (rather than just the types initially present when that package was published).
  • Protocol version upgrade to version 11, including a framework upgrade:
    • std::type_name::get_with_original_ids is introduced as a new stdlib function to return a representation of the type where package IDs have all been normalized to "original" IDs (the ID of the first version of a package) in contrast to the default behavior of std::type_name::get which distinguishes types introduced at different versions of a package by assigning them the ID of the package that introduced them.
      #12026
      #12047
    • sui::package::from_package<T>(self: &Publisher) and sui::package::from_module<T>(self: &Publisher) return true when T is a type introduced at any upgraded version of the package associated with self: &Publisher (rather than just the types initially present when that package was published).
  • The sui CLI logging to file are now off by default but can be enabled by setting the env variable SUI_CLI_LOG_FILE_ENABLE=1 #12095.

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

mainnet-v1.1.1

19 May 03:59
536412e
Compare
Choose a tag to compare

Highlights

  • [Minor Breaking Change] RPC dev_inspect_transaction_block is now checking that the gas price provided is correctly in the range, between RGP and max gas price. gas_price is an optional argument to the API. None still works fine and it is the recommended usage if a specific gas price is not of interest. But if a value is provided it has to be in range, whereas any value used to work. That is in line with other transaction execution APIs (execute the transaction and dry run).
    If the result of the dev inspect RPC call is GasPriceUnderRGP **or **GasPriceTooHigh is an indication of an invalid gas price and that can be corrected either by passing None or a proper gas_price
  • [RPC] Added get_latest_address_metrics and get_checkpoint_address_metrics to extended_api, which are only available on the indexer.
  • [RPC bugfix] - fixed incorrect zero timing for addresses, also reverted changes to system addresses (e.g. 0x2) - #11887
  • [RPC bugfix] - remove outliers from APY calculation #11867

Full Changelog: devnet-v1.1.0...sui-v1.1.1

mainnet-v1.1.0

17 May 18:01
4c9993f
Compare
Choose a tag to compare

Hightlights

  • [API behavioral changes] - The suix_getDynamicFields cursor is now fixed. Note that although the cursor looks like an Object ID, it should be treated as an opaque handle. The cursor value has no relationship to the underlying data.
    For more details, see #11789
  • [New API method] - Added a sui_getProtocolConfig method that returns the protocol configs. If a valid protocol version is specified in the request, the protocol config at that version is returned, otherwise, the highest protocol config the node has synced to is returned. Note that a node might support a higher protocol config than what it has synced to. You can also see the highest (maxSupportedProtocolVersion) and lowest (minSupportedProtocolVersion) supported versions in all valid responses. #11510

Full Changelog: devnet-v1.1.0...mainnet-v1.1.0

devnet-v1.1.0

08 May 22:47
38c31cd
Compare
Choose a tag to compare

Highlights

  • [API behavioral changes] - The suix_getDynamicFields cursor is now fixed. Note that although the cursor looks like an Object ID, it should be treated as an opaque handle. The cursor value has no relationship to the underlying data.
    For more details, see #11789
  • [New API method] - Added a sui_getProtocolConfig method that returns the protocol configs. If a valid protocol version is specified in the request, the protocol config at that version is returned, otherwise, the highest protocol config the node has synced to is returned. Note that a node might support a higher protocol config than what it has synced to. You can also see the highest (maxSupportedProtocolVersion) and lowest (minSupportedProtocolVersion) supported versions in all valid responses. #11510

Full Changelog: testnet-1.0.0...devnet-v1.1.0

sui-v1.0.0

01 May 23:05
Compare
Choose a tag to compare

What's Changed

  • [API behavioural changes] - The sui_getTransactionBlock method now returns errors in the errors field instead of failing the request in the case where the objects needed to compute balance changes and object changes are pruned. For more details, see #11476
  • [API behavioural changes] - The sui_executeTransactionBlock method no longer attempts to compute balance changes or object changes if local execution timeout (isExecutedLocally = false). This previously returned an ObjectNotFound ObjectSequenceNumberTooHigh error, which masked the timeout. #11466
  • [New API method] - Added a suix_getValidatorsApy method that returns APY values for all active validators, which are calculated using the validator’s staking pool exchange rate. #11293
  • [New API method] - Added a suix_subscribeTransaction method that enables subscription to the transaction effects stream using TransactionFilter. #11432

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