Releases: MystenLabs/sui
testnet-v1.4.0
Highlights
- #12548
This release updates the protocol version to 14. - #12504
Add support to thekeytool 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 upTableVec<T>
s whereT
hasdrop
. 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
andcustodian_v2
and deprecateclob
andcustodian
. - #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
IntroduceReadApi::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
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.
- 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.
Full Changelog: https://github.com/MystenLabs/sui/commits/testnet-v1.3.1
devnet-v1.4.0
HighLights
- #12548
This release updates the protocol version to 14. - #12504
Add support to thekeytool 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 upTableVec<T>
s whereT
hasdrop
. 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
andcustodian_v2
and deprecateclob
andcustodian
. - #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
IntroduceReadApi::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
Highlights
-
Updates the protocol version to
12
-
Updates the protocol version to
13
- Deprecation of
0xdee9::clob
and0xdee9::custodian
in favour of0xdee9::clob_v2
and0xdee9::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 multipleAccountCap
's for a single custodian account.
- 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
- Deprecation of
-
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
- Linux:
-
Introduces two SuiNS RPC endpoints
resolve_name_service_address
andresolve_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 namesui
and usesui-{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. FixeswithdrawFromKiosk
andwithdrawFromPolicy
. -
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 thesender
orrecipient
is the input address.
Full Changelog: https://github.com/MystenLabs/sui/commits/testnet-v1.3.0
testnet-v1.3.0
Highlights
-
Updates the protocol version to
12
-
Updates the protocol version to
13
- Deprecation of
0xdee9::clob
and0xdee9::custodian
in favour of0xdee9::clob_v2
and0xdee9::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 multipleAccountCap
's for a single custodian account.
- 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
- Deprecation of
-
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
- Linux:
-
Introduces two SuiNS RPC endpoints
resolve_name_service_address
andresolve_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 namesui
and usesui-{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. FixeswithdrawFromKiosk
andwithdrawFromPolicy
. -
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 thesender
orrecipient
is the input address.
Full Changelog: https://github.com/MystenLabs/sui/commits/testnet-v1.3.0
devnet-v1.3.0
Highlights
- Protocol version upgrade to version
12
- 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
- Linux:
- 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. FixeswithdrawFromKiosk
andwithdrawFromPolicy
. - #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
Highlights
- [API behavioral changes] - rpc methods that result in errors of variant
UserInputError
,SuiRpcInputError
,SuiError::TransactionNotFound
orSuiError::TransactionsNotFound
now return error code32602
instead of32000
. #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)
andsui::package::from_module<T>(self: &Publisher)
returntrue
whenT
is a type introduced at any upgraded version of the package associated withself: &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 newstdlib
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 ofstd::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
#12047sui::package::from_package<T>(self: &Publisher)
andsui::package::from_module<T>(self: &Publisher)
returntrue
whenT
is a type introduced at any upgraded version of the package associated withself: &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 variableSUI_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 thesui
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
Highlights
- [API behavioral changes] - rpc methods that result in errors of variant
UserInputError
,SuiRpcInputError
,SuiError::TransactionNotFound
orSuiError::TransactionsNotFound
now return error code32602
instead of32000
. #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)
andsui::package::from_module<T>(self: &Publisher)
returntrue
whenT
is a type introduced at any upgraded version of the package associated withself: &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 newstdlib
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 ofstd::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
#12047sui::package::from_package<T>(self: &Publisher)
andsui::package::from_module<T>(self: &Publisher)
returntrue
whenT
is a type introduced at any upgraded version of the package associated withself: &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 variableSUI_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 thesui
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
Highlights
- [API behavioral changes] - rpc methods that result in errors of variant
UserInputError
,SuiRpcInputError
,SuiError::TransactionNotFound
orSuiError::TransactionsNotFound
now return error code32602
instead of32000
. #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)
andsui::package::from_module<T>(self: &Publisher)
returntrue
whenT
is a type introduced at any upgraded version of the package associated withself: &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 newstdlib
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 ofstd::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
#12047sui::package::from_package<T>(self: &Publisher)
andsui::package::from_module<T>(self: &Publisher)
returntrue
whenT
is a type introduced at any upgraded version of the package associated withself: &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 variableSUI_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 thesui
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
Highlights
- [API behavioral changes] - rpc methods that result in errors of variant
UserInputError
,SuiRpcInputError
,SuiError::TransactionNotFound
orSuiError::TransactionsNotFound
now return error code32602
instead of32000
. #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)
andsui::package::from_module<T>(self: &Publisher)
returntrue
whenT
is a type introduced at any upgraded version of the package associated withself: &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 newstdlib
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 ofstd::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
#12047sui::package::from_package<T>(self: &Publisher)
andsui::package::from_module<T>(self: &Publisher)
returntrue
whenT
is a type introduced at any upgraded version of the package associated withself: &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 variableSUI_CLI_LOG_FILE_ENABLE=1
#12095.
Full Changelog: https://github.com/MystenLabs/sui/commits/devnet-v1.2.0