-
Notifications
You must be signed in to change notification settings - Fork 11.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extend fixed-point numbers module #19336
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
3 Skipped Deployments
|
crates/sui-framework/packages/move-stdlib/sources/fixed_point32.move
Outdated
Show resolved
Hide resolved
crates/sui-framework/packages/move-stdlib/sources/fixed_point32.move
Outdated
Show resolved
Hide resolved
crates/sui-framework/packages/move-stdlib/sources/fixed_point32.move
Outdated
Show resolved
Hide resolved
crates/sui-framework/packages/move-stdlib/sources/fixed_point32.move
Outdated
Show resolved
Hide resolved
Draft is generally looking good, main thing is discussions within @MystenLabs/devx-move with regards to naming for the APIs/types |
7a3c48c
to
e5c59ee
Compare
## Description - Switching to `uqX_X` naming scheme - I cut out `one`, `zero`, and `is_zero` as they felt a bit superfluous - Renamed the `u64` based mul/div to `int_mul` and `int_div` so that the naming is consistent across all `uqX_X` and `qX_X` modules - We should consider `integer_mul` to match `from_integer` or similarly `from_int` to match `int_mul`. Although... the "int"s here have different sizes. - Reordered functions a bit to best match what I think current modules are doing in std - creation functions, followed by - core API, followed by - less-core... API. Not sure what to call these ## Test plan - Migrated tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API:
|
||
/// Multiply a `u64` integer by a fixed-point number, truncating any fractional part of the product. | ||
/// Aborts if the product overflows. | ||
public fun int_mul(val: u64, multiplier: UQ32_32): u64 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea behind int_mul
and int_div
is to have a common prefix for these integer leading operations that are agnostic to the actual bitsize here.
My main question is whether or not we should have:
from_integer
andint_mul
from_int
andint_mul
from_integer
andinteger_mul
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Of the options above, I prefer the second option (from_int
and int_mul
) for consistency while still being terse and easy to write.
Now, lets enter the land of pedantry (but I think it's useful pedantry):
I'm wondering if int
/integer
is what we should be using here for names since technically integers mathematically mean signed numbers. Thoughts on possibly from_nat
, and nat_mul
?
Similarly, from_rational
may be better named from_quotient
since rational
has a specific mathematical meaning (including negative numbers) and more importantly the "rational" you are supplying to the function need not be an actual expressible rational number (e.g., 1/0
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think having everything be "int" even while imprecise, will make everything line up nicely with the signed version
|
||
/// Accessor for the raw u64 value. Can be paired with `from_raw` to perform less common operations | ||
/// on the raw values directly. | ||
public fun to_raw(a: UQ32_32): u64 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe this is correctly to_raw
and not into_raw
since UQ32_32
has copy
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very much agree and like this naming convention.
|
||
/// Multiply a `u64` integer by a fixed-point number, truncating any fractional part of the product. | ||
/// Aborts if the product overflows. | ||
public fun int_mul(val: u64, multiplier: UQ32_32): u64 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Of the options above, I prefer the second option (from_int
and int_mul
) for consistency while still being terse and easy to write.
Now, lets enter the land of pedantry (but I think it's useful pedantry):
I'm wondering if int
/integer
is what we should be using here for names since technically integers mathematically mean signed numbers. Thoughts on possibly from_nat
, and nat_mul
?
Similarly, from_rational
may be better named from_quotient
since rational
has a specific mathematical meaning (including negative numbers) and more importantly the "rational" you are supplying to the function need not be an actual expressible rational number (e.g., 1/0
).
|
||
/// Accessor for the raw u64 value. Can be paired with `from_raw` to perform less common operations | ||
/// on the raw values directly. | ||
public fun to_raw(a: UQ32_32): u64 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very much agree and like this naming convention.
/// Subtract two fixed-point numbers, `a - b`. | ||
/// Aborts if `a < b`. | ||
public fun sub(a: UQ32_32, b: UQ32_32): UQ32_32 { | ||
assert!(a.0 >= b.0, EOverflow); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to label this as underflow? I went with Overflow for simplicity, but I definitely see the valid argument of calling this underflow
/// Aborts if the input is too large, e.g. larger than or equal to 2^32. | ||
public fun from_rational(numerator: u64, denominator: u64): UQ32_32 { | ||
public fun from_quotient(numerator: u64, denominator: u64): UQ32_32 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
#[random_test] | ||
fun test_int_roundtrip(c: u32) { | ||
assert_eq!(from_int(c).to_int(), c); | ||
} | ||
|
||
#[random_test] | ||
fun test_mul_rand(n: u16, d: u16, c: u16) { | ||
if (d == 0) return; | ||
let q = from_quotient(n as u64, d as u64); | ||
assert_eq!(int_mul(c as u64, q), q.mul(from_int(c as u32)).to_int() as u64); | ||
} | ||
|
||
#[random_test] | ||
fun test_div_rand(n: u16, d: u16, c: u16) { | ||
if (d == 0) return; | ||
let q = from_quotient(n as u64, d as u64); | ||
assert_eq!(int_div(c as u64, q), from_int(c as u32).div(q).to_int() as u64); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❤️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good to me. Thanks for changing the name on from_rational
!
commit 72994fe5ee4f4d12c31a8a888c4f7c384e765a4b Author: Carlos Baez <[email protected]> Date: Mon Oct 28 10:25:51 2024 +0100 Squashed commit of the following: commit 3ada97c109cc7ae1b451cb384a1f2cfae49c8d3e Author: Ashok Menon <[email protected]> Date: Fri Oct 25 23:58:47 2024 +0100 sui-system(v1.36): fix next epoch stake book-keeping (#20036) ## Description Update `next_epoch_stake` when redeeming a fungible staked sui. This value is used as a sanity check that everything matches up at the end of an epoch. ## Test plan ``` sui$ cargo nextest run -p sui-framework-tests ``` ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [x] Protocol: Protocol bumped to 67, introducing a framework change to fix next_epoch_stake book-keeping while redeeming fungible staked sui. - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: Arun Koshy <[email protected]> Co-authored-by: Sam Blackshear <[email protected]> Co-authored-by: Emma Zhong <[email protected]> commit 81da0c70ea1f862a8aed0cafad781a86b0bf65bb Author: Ge Gao <[email protected]> Date: Thu Oct 24 18:50:57 2024 -0400 pick: indexer: handle sui safe mode (#20015) (#20025) ## Description title ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 29ff3e3f53fc7aa590da97d1033265645be1ea1a Author: Mark Logan <[email protected]> Date: Wed Oct 23 09:12:40 2024 -0700 [cherrypick] Fix logic for end-of-epoch checkpoint when dkg has failed (#19976) If DKG has failed, we might accidentally construct two end of epoch checkpoints. commit 7a166ee0e58d036fbf626ba6bc21a3c2ec92225e Author: Mark Logan <[email protected]> Date: Tue Oct 22 17:24:48 2024 -0700 [cherrypick] Fix one more possible crash in execution_driver (#19870) Don't even try to execute certs from prior epochs commit a11f7b5d868396e0d23588d3713f6a70a43b293e Author: Mark Logan <[email protected]> Date: Tue Oct 22 11:05:16 2024 -0700 [cherrypick] Fix rare crash when a transaction executes after its shared object assignments have been deleted. (#19949) Fix rare crash when a transaction executes after its shared object assignments have been deleted. This is only possible if a second execution of the same tx starts concurrently, and the shared version assignments have been deleted as we are checking for object availability in TransactionManager commit bf79606ff4eb7c666629f14157715c1219504fed Author: Mark Logan <[email protected]> Date: Mon Oct 21 20:23:46 2024 -0700 [cherrypick] Must not wait on notify_read_effects after epoch ends, on a transaction that might be reverted (#19934) Found this crash after adding the delay failpoint seen in this PR. I don't quite understand why that exposed this crash. commit 8d34dfbb45414303cfd448c94bb04dcea0231369 Author: wlmyng <[email protected]> Date: Wed Oct 23 10:06:00 2024 -0700 [indexer] committers should read watermark hi directly from table (#1… (#19981) …9980) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 675ea8cf5437e6ade14d6c966ff8ff51a34b5357 Author: Mark Logan <[email protected]> Date: Tue Oct 22 14:47:53 2024 -0700 [cherrypick] Fix possible (but probably rare) race condition (#19951) (#19967) Fix crashes in execution_driver due to inability to execute transactions. -------- We must hold the lock for the object entry while inserting to the `object_by_id_cache`. Otherwise, a surprising bug can occur: 1. A thread executing TX1 can write object (O,1) to the dirty set and then pause. 2. TX2, which reads (O,1) can begin executing, because TransactionManager immediately schedules transactions if their inputs are available. It does not matter that TX1 hasn't finished executing yet. 3. TX2 can write (O,2) to both the dirty set and the object_by_id_cache. 4. The thread executing TX1 can resume and write (O,1) to the object_by_id_cache. Now, any subsequent attempt to get the latest version of O will return (O,1) instead of (O,2). This seems very unlikely, but it may be more likely under the following circumstances: - While a thread is unlikely to pause for so long, moka cache uses optimistic lock-free algorithms that have retry loops. Possibly, under high contention, this code might spin for a surprisingly long time. - Additionally, many concurrent re-executions of the same tx could happen due to the tx finalizer, plus checkpoint executor, consensus, and RPCs from fullnodes. Unfortunately I have not been able to reproduce this bug, so we cannot be sure that this fixes the crashes we've seen. But this is certainly a possible bug. ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit a85ea98b9982e1156fedd9bd149ee77483587cf5 Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 22 19:08:14 2024 +0000 Sui v1.36.2 Version Bump commit cf3fee71b907969b9308bfa83802c16b9b29bc70 Author: Brandon Williams <[email protected]> Date: Mon Oct 21 21:17:57 2024 -0500 Revert "rest: stabalize some checkpoint apis" (#19950) This reverts commit 13c1ec7b2a7a18e304444d63277c20f8f52a1bc2. ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: Co-authored-by: Eugene Boguslavsky <[email protected]> commit 032ac7d9ad2367b43be0ccd444d18d6d4f0ca001 Author: Brandon Williams <[email protected]> Date: Mon Oct 21 20:41:26 2024 -0500 1.36 index fix (#19947) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: Eugene Boguslavsky <[email protected]> commit f4695a93815a8e2ce43f558ef1b0ccf0e96ff51d Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 22 00:37:13 2024 +0000 Sui v1.36.1 Version Bump commit e3e5ac7113a7bff11982ef44492618e9ee133e61 Author: Brandon Williams <[email protected]> Date: Fri Oct 18 17:07:29 2024 -0500 jsonrpc_index: bump coin index version to 1 commit 0bf87c09f2d35a3567f3892ed648671adf656d75 Author: wlmyng <[email protected]> Date: Fri Oct 18 17:11:08 2024 -0700 [indexer] align watermarks table schema in live indexer to alt indexe… (#19922) …r (#19908) ## Description Since watermarks table isn't being written to yet, modify the db schema to match alt-indexer. The changes are to rename entity -> pipeline, tx_hi_inclusive -> tx_hi, and pruner_hi_inclusive -> pruner_hi and make it a non-null column. This works out nicely for graphql, since the transactions query implementations expect a half-open interval. Also simplifies pruner logic, since it can write the `reader_lo` as `pruner_hi` after delay, and table pruners will delete between `[table_data, pruner_hi)`. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 1c9e15645e107ec85bb933f9ee4d38f070b8db40 Author: wlmyng <[email protected]> Date: Fri Oct 18 15:39:20 2024 -0700 [indexer] quick fix for events in descending order without cursor (#1… (#19919) …9902) ## Description This PR fixes a bug where events queries in descending order without a cursor return no results ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 95dcb93d79d23bc32adc8fd05d70c92e6db82b49 Author: Ge Gao <[email protected]> Date: Fri Oct 18 17:21:21 2024 -0400 Pick: indexer handler: limit unprocessed buffer size #19913 (#19917) ## Description without this change, the unprocessed buffer will grow unboundedly until OOM it did not manifest on previous processor b/c it has sleep codes of ``` _ = tokio::time::sleep(std::time::Duration::from_secs(config.sleep_duration)) ``` and `sleep_duration` is 5 seconds. ## Test plan - correctness via the added objects_snapshot test - oom via experiment result on benchmark env with mem usage [link](https://app.datadoghq.com/metric/explorer?fromUser=false&start=1729280070529&end=1729283670529&paused=false#N4Ig7glgJg5gpgFxALlAGwIYE8D2BXJVEADxQEYAaELcqyKBAC1pEbghkcLIF8qo4AMwgA7CAgg4RKUAiwAHOChASAtnADOcAE4RNIKtrgBHPJoQaUAbVBGN8qVoD6gnNtUZCKiOq279VKY6epbINiAiGOrKQdpYZAYgUJ4YThr42gDGSsgg6gi6mZaBZnHKGABuMMiZUggYojoAdOqqblhNeBoY8MAA1ngARnBOkb7yGNnI2vKZALTDIpmMHtp9AAQU67Ui9Y3ao1FwyBp4EHOiAsQ6POuDWOvADlCH6jwgPAC6VK7ueJihcK-VT-DAxUrxD7fEAaORoHKgCbwhAIHJJHAwJyZAEaCCZRJoRpOOSKZTpQlQAlE+hMZQiNweNAffgQeyYLDEhRowkiJRfHh8GHyQkIADCUmEMBQIn+aB4QA) --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 775f2cb85e6113639f15877127ed66c1f8ad4671 Author: Eugene Boguslavsky <[email protected]> Date: Thu Oct 17 19:25:36 2024 -0700 Sui `v1.36.0` Framework Bytecode snapshot (#19904) ## Description Sui `v1.36.0` Framework Bytecode snapshot ## Test plan `cargo run --bin sui-framework-snapshot` commit 3e8d2312106e66e9b24e6acfcbdb721aa1a78651 Author: Mark Logan <[email protected]> Date: Thu Oct 17 18:44:08 2024 -0700 Revert congestion control change, use 3 txn per commit limit. (#19900) commit d239be81239619feefeb9fbc007f6d6c78335961 Author: wlmyng <[email protected]> Date: Thu Oct 17 15:51:31 2024 -0700 [indexer][watermarks][3/n] pruner updates watermarks lower bound (#19650) ## Description With the committer writing upper bounds, the pruner can now read from watermarks and determine whether the lower bounds need to be updated. Pruner does this by spawning a separate task, without touching the extant pruning logic (so all things are as is.) It will ignore any entries from watermarks that do not correspond to a `PrunableTable` variant. Part of a stack of PRs for watermarks simplify setting up test indexer: https://github.com/MystenLabs/sui/pull/19663 update pruner config: https://github.com/MystenLabs/sui/pull/19637 committer writes upper bounds https://github.com/MystenLabs/sui/pull/19649 pruner writes lower bounds: https://github.com/MystenLabs/sui/pull/19650 pruner prunes (wip) ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 446d7d5f111330bf915f9d5bf4e96ff4cf7aa857 Author: Bridgerz <[email protected]> Date: Thu Oct 17 21:57:20 2024 +0100 Fix ViewSuiBridge Bridge CLI command (#19869) ## Description Handle the case where a bridge committee member is no longer a validator. ## Test plan Tested locally. commit 67ac5c85a7df1c897336f987a7080f5887923f9a Author: sui-merge-bot[bot] <114704316+sui-merge-bot[bot]@users.noreply.github.com> Date: Thu Oct 17 13:27:15 2024 -0700 Version Packages (#19898) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/[email protected] ### Minor Changes - 477d2a4: Add new errors to ExecutionFailureStatus enum ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> commit 477d2a41ae8c6a2af6afe4a241cdce73cda6aef9 Author: hayes-mysten <[email protected]> Date: Thu Oct 17 13:12:59 2024 -0700 [ts sdk] Add new errors to ExecutionFailureStatus (#19897) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit c3562a362bc04802e7ae074ab9947fa9697e4488 Author: Andrew Schran <[email protected]> Date: Thu Oct 17 16:04:36 2024 -0400 Enable signed Discovery messages by default (#19895) ## Description Followup to PR #19587. ## Test plan As tested in first PR. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [x] Nodes (Validators and Full nodes): Adds authentication signatures to Discovery protocol messages. - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 491dcfe38a6d23e6771ebe1a33a674a0dbbe7d05 Author: Brandon Williams <[email protected]> Date: Thu Oct 17 14:30:02 2024 -0500 ci: set log level to error commit a762240611457bf262699713bf3db71004631139 Author: Jonas Lindstrøm <[email protected]> Date: Thu Oct 17 20:26:58 2024 +0200 Extend fixed-point numbers module (#19336) ## Description - Deprecated `fixed_point32` - Added `uq32_32` to replace it ## Test plan - New tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [X] CLI: Move `fixed_point32` has been deprecated for a new `uq32_32` module - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: Todd Nowacki <[email protected]> commit 0393579cd214511d5af61ba6fe052c42a34ff8a9 Author: sui-merge-bot[bot] <114704316+sui-merge-bot[bot]@users.noreply.github.com> Date: Thu Oct 17 12:03:38 2024 -0400 Version Packages (#19892) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/[email protected] ### Minor Changes - 60f96ee: New stablecoin pool params Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> commit 60f96ee37c2c7c251ab07f495190ef89ad479ed8 Author: Tony Lee <[email protected]> Date: Thu Oct 17 11:28:22 2024 -0400 New Deepbook Pool Params (#19891) ## Description New Deepbook Pool Params ## Test plan How did you test the new or updated feature? Mainnet ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit df56cb03c8c04653a43cc076b4450d2cecb32e8e Author: Patrick Kuo <[email protected]> Date: Thu Oct 17 12:59:38 2024 +0100 [Rosetta] - serialize total_coin_value to string instead of number to prevent precision lost (#19580) ## Description As titled ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: nikos.kitmeridis <[email protected]> commit 8adfe733b6977acb879583a1cba354d419d5c707 Author: jk jensen <[email protected]> Date: Wed Oct 16 16:29:58 2024 -0700 [suiop][image] enable q or esc to quit watching (#19881) ## Description Make it so the user can hit 'q' or 'esc' to exit the image watch interface ## Test plan https://github.com/user-attachments/assets/578ab67e-763e-4cd8-a4a7-1ac6006a4004 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 6d87bd24f2f5e88757d697a21cc13398f0f932a1 Author: Jort <[email protected]> Date: Wed Oct 16 16:01:58 2024 -0700 [move] add return locations to source map (#19885) ## Description store the return loc's in source maps ## Test plan --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 6f3ce94e08d727635236980d6332bd91d6d46c78 Author: Tim Zakian <[email protected]> Date: Wed Oct 16 14:18:48 2024 -0700 [move] Initial trace format and implementation (#18729) (#19858) This PR adds the initial trace format, and the implementation of this trace format in the VM. I've gone through the tracing format with most of you synchronously so won't write out all the details here (but I will take it on to write a spec for the trace format once this is done so other folks can use it when consuming this format). Happy to go through it at any point in real time. Other TODO: right now the `MoveValue`s only support serialize and not deserialize back into Rust so we can only push a trace out from Rust but not consume it. The next thing I'm working on right now is adding support for that, and it may be either an update to this PR, or an additional PR depending on how involved that is... Tests and integration of this into the Move CLI (not the Sui CLI yet) is in the PR above this one. This keeps the tracing largely feature-gated in the VM, and the only additional overhead/change at runtime with `gas-profiling` turned off is the additional argument, but this argument is unused and should be optimized away (and at worst only add essentially no overhead). I kept the `gas-profiling` feature flag and gated the new tracing under it. The plan being to eventually rename that flag at the same time that we update test coverage and gas profiling to use this new tracing format as well (but that's for a couple future PRs!). https://github.com/MystenLabs/sui/pull/19452 is stacked on top of this and cleans up the insertion points of the tracer into the VM. --- Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit cbffe5b8522ed7723371cf8fcfa802f47c1178ed Author: Eugene Boguslavsky <[email protected]> Date: Wed Oct 16 12:51:13 2024 -0700 Update mac os runner (#19883) ## Description `macos-latest-xl` is being depricated. ![Screenshot 2024-10-16 at 12 44 20 PM](https://github.com/user-attachments/assets/d0f49345-2538-4836-bdbf-9975d6df5299) ## Test plan 👀 commit b78eb1098ee2fcd08fb1576d049c354dd57fc8ca Author: Anastasios Kichidis <[email protected]> Date: Wed Oct 16 20:00:19 2024 +0100 [Consensus] fix amnesia recovery boot run (#19774) ## Description Currently if someone recovers their node within epoch `R` with a snapshot that's from epoch `< R-1` , consensus will not start in amnesia recovery mode in epoch R as the boot counter will have already been incremented as node is trying to catch up from earlier epochs. This is problematic as it defies the whole point of the automatic amnesia recovery. Instead on this PR we track consensus participation activity from earlier epochs/run and only then we increment the boot counter. Otherwise we keep the boot counter to `0` so we effectively enforce amnesia recovery until we get to an epoch where the node is able to participate. In this case participate means "able to have performed at least one commit". ## Test plan CI/PT --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 62f72cdea33c0782f3116dfd194ae81c562a0b43 Author: jk jensen <[email protected]> Date: Wed Oct 16 10:57:07 2024 -0700 [suiop][image] add --watch/-w to continuously query image build (#19872) ## Description Add new arg to continuously query image remote builds ## Test plan https://github.com/user-attachments/assets/a6b3ec5d-605d-48f2-a241-9ade8bfbfbf3 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 692f6c6a89b2e32659574fa20828222d289b102d Author: Tim Zakian <[email protected]> Date: Wed Oct 16 10:55:35 2024 -0700 [move][ir-to-bytecode] Add source locations to `Type` in the Move IR (#19875) ## Description Plumbs in source locations for `Type`s in the Move IR. This will be useful for adding return types to the Move source maps. ## Test plan Make sure existing types pass. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 31b15dde1758a6ba7d7029ecbd74804180f4800c Author: Lu Zhang <[email protected]> Date: Wed Oct 16 08:51:49 2024 -0700 [bridge] remove test-cluster's dependency on sui-bridge crate (#19840) ## Description as title. It also removes the transitive dependency of other crates on sui-bridge. ## Test plan tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 8fec5f8caeaf0d0d5a9d13c776fc8dd80219719e Author: Arun Koshy <[email protected]> Date: Wed Oct 16 01:48:58 2024 -0700 Add known peers for p2p network connection monitor (#19815) ## Description This will enable quinn stats for p2p network --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit f8e33f58104e6ed0d38e756beb0572e3bc263f10 Author: Arun Koshy <[email protected]> Date: Wed Oct 16 00:58:39 2024 -0700 [consensus] Migrate sui to Mysticeti connection monitor (#19814) ## Description Will follow up to ensure that known peers are set in sui via discovery so that metrics will be updated. Also will be adding TonicConnectionMonitor for Mysticeti to use. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 2224cf355dc25d6ded1d9a4b93c6f31939b80a01 Author: Brandon Williams <[email protected]> Date: Tue Oct 15 20:53:11 2024 -0500 rest: enable resolving of literals (#19857) Improve the format of `UnresolvedTransaction` as well as introduce the ability to resolve un-serialized pure argument literals. Example of JSON payload of an `UnresolvedTransaction`: ``` { "inputs": [ { "object_id": "0x2d7f57570815c43eb485be9018caabd11ac863e9d49b1d9e33b3f4ac40cadc72" }, { "value": 1 }, { "value": "0xc6fc0e38458632b1dd1d60b3a833865268a0faebe36864c71fb9805bd5a116cf" } ], "commands": [ { "command": "split_coins", "coin": { "input": 0 }, "amounts": [ { "input": 1 }, { "input": 1 } ] }, { "command": "transfer_objects", "objects": [ { "result": [ 0, 1 ] }, { "result": [ 0, 0 ] } ], "address": { "input": 2 } } ], "sender": "0xff69fdb72bfc6ff5a337ff01c650fb0ce72447105ff050c2039c6b5b267b04a7" } ``` which is resolved into the following `Transaction`: ``` { "version": "1", "kind": { "kind": "programmable_transaction", "inputs": [ { "type": "immutable_or_owned", "object_id": "0x03517c0699f36a1df2e93b6c18db815d8f247a853465aec9cc48f9ceae4561ca", "version": "1", "digest": "7WyoNoiZQmTj75viHKYhA48tCSJ5CFqA6HtzJ55hehxP" }, { "type": "pure", "value": "AQAAAAAAAAA=" }, { "type": "pure", "value": "JtcBTFgpW/n7HipqY6oz4bka0J8PyUPlSQbjR5lCq0Y=" } ], "commands": [ { "command": "split_coins", "coin": { "input": 0 }, "amounts": [ { "input": 1 }, { "input": 1 } ] }, { "command": "transfer_objects", "objects": [ { "result": [ 0, 1 ] }, { "result": [ 0, 0 ] } ], "address": { "input": 2 } } ] }, "sender": "0xb73663359e72a36122aaf3f08629fa684b667e0fe6e356b119c623c7c9459888", "gas_payment": { "objects": [ { "object_id": "0x94b1bef12a8db7b60fa89ad9bc2966d661a3a1002d921ada981e700648470304", "version": "1", "digest": "9kcUt38E4i8g5DartpUdBxW9m5n1u8AaJLyintWiddd6" }, { "object_id": "0xacc757731db589ef093130e0d6c839e809f9673a51be92667ecbcd486db73995", "version": "1", "digest": "2U3xxN1G9vf4raCGUHz6AejqVMWJCkEBmsbLgqwae5be" }, { "object_id": "0xd0891f6c419f3dd1a531e70779979f3c7aa91d13ae9125ffbae05f3960ee4249", "version": "1", "digest": "DkJRVUKfwV9pZ1NYEydvKwGpJei7YDDRemfRahruBDsQ" }, { "object_id": "0xde8bdc786f18e7d1b9d2ac975acd640952fd3c75303e4f35d0657f90ab7e947e", "version": "1", "digest": "8RJuNzFawuVbFz6zSH1GMeJuwiHfT2ZzfHKHdr6LrJrU" } ], "owner": "0xb73663359e72a36122aaf3f08629fa684b667e0fe6e356b119c623c7c9459888", "price": "1000", "budget": "5952000" }, "expiration": null } ``` commit 6cc663c639ca3fa1421db7021e0af33b0466e1be Author: wlmyng <[email protected]> Date: Tue Oct 15 18:42:57 2024 -0700 [indexer][writer] Add first_tx_sequence_number to epochs table to decouple from checkpoints table (#19773) ## Description The `epoch_total_transactions` field on `epochs` table is calculated today from `checkpoints.network_total_transactions`, which is not ideal since the latter is prunable and `epochs` will not be pruned for the foreseeable future. To remove this dependency, we add `first_tx_sequence_number` to the `epochs` table at epoch boundary. That is, the network total transaction count from the final checkpoint of the epoch becomes the first tx sequence number of the new epoch. This also means that at epoch boundary, the current-to-be-previous epoch's `epoch_total_transactions` is derived from the checkpoint's network total transactions - the epoch's `first_tx_sequence_number`. Consequently, this will also help in the pruner implementation, as given an epoch we'd like to know the corresponding cp and tx. This encompasses just the writer change. Before updating the read path, we will need to backfill the instance. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 71f9203abbf9bf0a3a887e1f2157a7caed7bcef2 Author: Brandon Williams <[email protected]> Date: Tue Oct 15 10:19:36 2024 -0500 jsonrpc: introduce a meta column family for tracking index initialization Introduce a meta column family that is used to track initialization of the Index DB itself as well as the status of the various column families themsevles. commit 814af2a99e0e66bda4fec1748082ce4af7fd3137 Author: Brandon Williams <[email protected]> Date: Tue Oct 15 10:18:02 2024 -0500 jsonrpc, rest: reduce batch size to 128MB before writting Reduce the minimum batch size to write out during indexing the live object set from 256MB to 128MB, these smaller batch sizes resulted in a small improvement to index initialization. commit d7e977a0ac58b885a98c4967e3e82cce43e720ff Author: Brandon Williams <[email protected]> Date: Fri Oct 11 15:24:26 2024 -0500 jsonrpc: add test for sorted coin balances commit c3371a28c783ff1e54b71c873b98f80b394f30a3 Author: Brandon Williams <[email protected]> Date: Fri Oct 11 14:07:40 2024 -0500 jsonrpc: initialize new coin_index_2 Initialize the new coin_index_2 index and clear the old coin_index column family. commit 47ba7e4684147b91cbf0fa628ce83f4a4b80d3bc Author: Brandon Williams <[email protected]> Date: Fri Oct 11 12:47:08 2024 -0500 jsonrpc: introduce coin_index_2 with coins sorted by balance Introduce a new coin_index_2 index with coins sorted by balance in decreasing value (sorted high to low). commit 6159973ae01f7b74505271d5ae76681f6594fe59 Author: Brandon Williams <[email protected]> Date: Fri Oct 11 10:25:19 2024 -0500 core: factor out parallel live object indexing Factor out the parallel live object indexing, used for initializing the rest indexes, into more general purpose and reusable logic. commit 4ad76b5679ec0e11b635537074b552cc96d584ba Author: Brandon Williams <[email protected]> Date: Fri Oct 11 09:07:27 2024 -0500 jsonrpc: move indexes from sui-storage to sui-core commit 99cebd9469dea1c2bbbd73d4cd6fb8284203a93a Author: Brandon Williams <[email protected]> Date: Fri Oct 11 08:45:29 2024 -0500 db_tool: remove loaded_child_object_versions search match arm commit 455e6c981e2af4da7bcd91e1e6642b3f8a10cb5a Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 15 16:00:17 2024 -0700 Fix node operator doc quote (#19874) ## Description Fix node operator doc quote ## Test plan Before: ![Screenshot 2024-10-15 at 3 31 55 PM](https://github.com/user-attachments/assets/c6aabc7b-328c-4404-be4a-b8b5c124e111) After: ![Screenshot 2024-10-15 at 3 32 00 PM](https://github.com/user-attachments/assets/3ef6d6dc-516a-4771-9a2f-a898610893bb) commit 3be7841e208731a69b8dd7ad5b39fa94f92fe59f Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 15 15:28:22 2024 -0700 Add release info for sui-full-node doc (#19808) ## Description Add release info for sui-full-node doc ## Test plan @ronny-mysten ! --------- Co-authored-by: ronny-mysten <[email protected]> commit ee100a7ed7e4cc6503fb5e7b94349151f24597e0 Author: techdebt-99 <[email protected]> Date: Tue Oct 15 16:21:56 2024 -0600 Update sponsor-txn.mdx (#19873) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 8fa9f571a26f3e3faeec78afca706c8eedb2b283 Author: Zhe Wu <[email protected]> Date: Tue Oct 15 14:31:16 2024 -0700 Use more realistic cap factor in simtest (#19862) ## Description So that we can exercise cap factor is higher and lower than the gas budget. ## Test plan Updating tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit e2c7aa1f4e3d0facbff0af78aad5bda283bc145e Author: ronny-mysten <[email protected]> Date: Tue Oct 15 15:31:04 2024 -0600 [docs] Update dbv3 content (#19867) ## Description DBv3 is now on Mainnet. Makes the sentence removed somewhat pointless. ## Test plan 👀 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 25c52c659ff00c0c54834de73760b38b6dbca938 Author: hayes-mysten <[email protected]> Date: Tue Oct 15 13:57:16 2024 -0700 [gql-transport] fix rawInput for transaction queries (#19866) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit aa2ca1d79fc3de862e398716f044337b6757acc1 Author: Tom Cat <[email protected]> Date: Wed Oct 16 03:31:17 2024 +0700 [Linter] Redundant ref deref (#16491) ## Description This lint rule detects and reports unnecessary temporary borrow operations followed by a dereference and a local borrow in Move code. It aims to improve code efficiency by suggesting direct usage of expressions without redundant operations. Implementation The lint rule is implemented as follows: A temporary borrow (TempBorrow) Followed by a dereference (Dereference) Where the dereferenced expression is either a BorrowLocal, Borrow, or another TempBorrow ## Test plan Added more use case including false positive, false negative case ## Release notes - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: --------- Co-authored-by: jamedzung <[email protected]> Co-authored-by: Lu Zhang <[email protected]> Co-authored-by: Cameron Swords <[email protected]> commit 6b231597e707bae887ca038d670ba3aa02775d37 Author: pei-mysten <[email protected]> Date: Tue Oct 15 11:59:35 2024 -0700 [docker] fix dockerfile for kaniko (#19865) ## Description kaniko doesn't like `*` wildcard, so have to be a little bit smarter. ## Test plan had a successfully built from kaniko. I pulled it down and inspected manually, binaries are ther --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 8aac6c2cfcbc48efd1ccb34ea8cfd28eae99b701 Author: Tony Lee <[email protected]> Date: Tue Oct 15 14:44:56 2024 -0400 Faucet Routes (#19692) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit e510867bd334fdd7b95bf0dab2ea7ce6b49f2409 Author: nikos-terzo <[email protected]> Date: Tue Oct 15 21:17:19 2024 +0300 Update typescript sdk examples (#19816) ## Description Update Typescript SDK examples in README to work ## Test plan Copy-pasted changed code to a new project depending on '@mysten/sui' and checked for no relevant typescript errors. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 4241c352fff0d71b40ec3148e62b558877c82d13 Author: Tim Zakian <[email protected]> Date: Tue Oct 15 11:06:54 2024 -0700 [move][docgen] Render string constants for error constants (#19823) ## Description This updates how constants annotated with `#[error]` are rendered in docgen. This also adds the `#[error]` annotation on them in the generated documentation. Note that we don't try to render all bytearrays as strings, but only constants with the `#[error]` annotation to avoid rendering normal bytearrays strings. ## Test plan Added a test to make sure we render error-annotated consts as we expect. commit 4357bfa20c4a4eb1675f2f31e32a34b8f5956db2 Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 15 10:35:55 2024 -0700 Remove mysten-tap sui.rb update (#19861) ## Description Remove mysten-tap sui.rb update ## Test plan 👀 commit 1e72cfbe5a269b880245c4de777a8126c4d3557f Author: mwtian <[email protected]> Date: Tue Oct 15 10:07:29 2024 -0700 [db] allow putting larger layer in higher levels (#19854) ## Description A followup to #19770. For cfs larger than 250GB, they need to be able to shard the files. ## Test plan Applied the new setting to other large cfs (transactions, effects) on fullnodes. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 34416bfce4f949c7ba07e08a47535f15f59dbf4a Author: Anastasios Kichidis <[email protected]> Date: Tue Oct 15 13:26:52 2024 +0100 [Consensus] DagState to evict blocks based on GC round (#19465) ## Description Currently we evict the cached ref entries in DagState whenever we `flush`. At this point we evict the entries for each authority by dropping all the blocks which are `<= evict_round`, where `evict_round = authority_latest_commit_round - CACHED_ROUNDS` . The `CACHED_ROUNDS` here allow us to keep around for a little longer committed blocks. Of course all the blocks that are `> evict_round` are kept. This can work fine so far where we don't use GC , as we expect eventually to include blocks from other peers as weak links - no matter how far back they are - and that will move the `authority_latest_commit_round` and trigger the eviction of their blocks from our memory. Now with GC we don't have those guarantees. It is possible to get to a scenario where even a group of slow nodes that are constantly behind `gc_round`, they keep proposing but their blocks never get committed. Although their blocks should not end up in others DAGs , they will remain in their own and fill up their memory. Overall, the current approach will provide weaker guarantees. This PR is changing the eviction strategy so it's driven by the `gc_round`. Doing though the eviction purely on the `gc_round` will change a lot the semantics of the `DagState` as one of the intentions was to keep recent cached data from each authority. That would also be particularly visible for authorities for which we do not have frequent block proposals, as we could end up always evicting all their blocks if they are behind the `gc_round`. Then this would not allow us to do certain operations we used to do before with cached data(ex get latest cached block per authority). For that reason this PR is changing a bit the semantics of the `CACHED_ROUNDS` and from now on it will be the minimum/desired amount of rounds we want to keep in cache for each of authority. The eviction algorithm will still attempt to clean up records that are `<= gc_round`, but it will also make sure that `CACHED_ROUNDS` worth of data are kept around. Especially for more edge case situation where a node has not produced blocks `> gc_round`, we guarantee to keep `CACHED_ROUNDS` even when all of them are `<= gc_round`, but we'll eventually evict anything before - practically like a moving window. ## Test plan CI/PT --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: …
commit 3ada97c109cc7ae1b451cb384a1f2cfae49c8d3e Author: Ashok Menon <[email protected]> Date: Fri Oct 25 23:58:47 2024 +0100 sui-system(v1.36): fix next epoch stake book-keeping (#20036) ## Description Update `next_epoch_stake` when redeeming a fungible staked sui. This value is used as a sanity check that everything matches up at the end of an epoch. ## Test plan ``` sui$ cargo nextest run -p sui-framework-tests ``` ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [x] Protocol: Protocol bumped to 67, introducing a framework change to fix next_epoch_stake book-keeping while redeeming fungible staked sui. - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: Arun Koshy <[email protected]> Co-authored-by: Sam Blackshear <[email protected]> Co-authored-by: Emma Zhong <[email protected]> commit 81da0c70ea1f862a8aed0cafad781a86b0bf65bb Author: Ge Gao <[email protected]> Date: Thu Oct 24 18:50:57 2024 -0400 pick: indexer: handle sui safe mode (#20015) (#20025) ## Description title ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 29ff3e3f53fc7aa590da97d1033265645be1ea1a Author: Mark Logan <[email protected]> Date: Wed Oct 23 09:12:40 2024 -0700 [cherrypick] Fix logic for end-of-epoch checkpoint when dkg has failed (#19976) If DKG has failed, we might accidentally construct two end of epoch checkpoints. commit 7a166ee0e58d036fbf626ba6bc21a3c2ec92225e Author: Mark Logan <[email protected]> Date: Tue Oct 22 17:24:48 2024 -0700 [cherrypick] Fix one more possible crash in execution_driver (#19870) Don't even try to execute certs from prior epochs commit a11f7b5d868396e0d23588d3713f6a70a43b293e Author: Mark Logan <[email protected]> Date: Tue Oct 22 11:05:16 2024 -0700 [cherrypick] Fix rare crash when a transaction executes after its shared object assignments have been deleted. (#19949) Fix rare crash when a transaction executes after its shared object assignments have been deleted. This is only possible if a second execution of the same tx starts concurrently, and the shared version assignments have been deleted as we are checking for object availability in TransactionManager commit bf79606ff4eb7c666629f14157715c1219504fed Author: Mark Logan <[email protected]> Date: Mon Oct 21 20:23:46 2024 -0700 [cherrypick] Must not wait on notify_read_effects after epoch ends, on a transaction that might be reverted (#19934) Found this crash after adding the delay failpoint seen in this PR. I don't quite understand why that exposed this crash. commit 8d34dfbb45414303cfd448c94bb04dcea0231369 Author: wlmyng <[email protected]> Date: Wed Oct 23 10:06:00 2024 -0700 [indexer] committers should read watermark hi directly from table (#1… (#19981) …9980) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 675ea8cf5437e6ade14d6c966ff8ff51a34b5357 Author: Mark Logan <[email protected]> Date: Tue Oct 22 14:47:53 2024 -0700 [cherrypick] Fix possible (but probably rare) race condition (#19951) (#19967) Fix crashes in execution_driver due to inability to execute transactions. -------- We must hold the lock for the object entry while inserting to the `object_by_id_cache`. Otherwise, a surprising bug can occur: 1. A thread executing TX1 can write object (O,1) to the dirty set and then pause. 2. TX2, which reads (O,1) can begin executing, because TransactionManager immediately schedules transactions if their inputs are available. It does not matter that TX1 hasn't finished executing yet. 3. TX2 can write (O,2) to both the dirty set and the object_by_id_cache. 4. The thread executing TX1 can resume and write (O,1) to the object_by_id_cache. Now, any subsequent attempt to get the latest version of O will return (O,1) instead of (O,2). This seems very unlikely, but it may be more likely under the following circumstances: - While a thread is unlikely to pause for so long, moka cache uses optimistic lock-free algorithms that have retry loops. Possibly, under high contention, this code might spin for a surprisingly long time. - Additionally, many concurrent re-executions of the same tx could happen due to the tx finalizer, plus checkpoint executor, consensus, and RPCs from fullnodes. Unfortunately I have not been able to reproduce this bug, so we cannot be sure that this fixes the crashes we've seen. But this is certainly a possible bug. ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit a85ea98b9982e1156fedd9bd149ee77483587cf5 Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 22 19:08:14 2024 +0000 Sui v1.36.2 Version Bump commit cf3fee71b907969b9308bfa83802c16b9b29bc70 Author: Brandon Williams <[email protected]> Date: Mon Oct 21 21:17:57 2024 -0500 Revert "rest: stabalize some checkpoint apis" (#19950) This reverts commit 13c1ec7b2a7a18e304444d63277c20f8f52a1bc2. ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: Co-authored-by: Eugene Boguslavsky <[email protected]> commit 032ac7d9ad2367b43be0ccd444d18d6d4f0ca001 Author: Brandon Williams <[email protected]> Date: Mon Oct 21 20:41:26 2024 -0500 1.36 index fix (#19947) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: Eugene Boguslavsky <[email protected]> commit f4695a93815a8e2ce43f558ef1b0ccf0e96ff51d Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 22 00:37:13 2024 +0000 Sui v1.36.1 Version Bump commit e3e5ac7113a7bff11982ef44492618e9ee133e61 Author: Brandon Williams <[email protected]> Date: Fri Oct 18 17:07:29 2024 -0500 jsonrpc_index: bump coin index version to 1 commit 0bf87c09f2d35a3567f3892ed648671adf656d75 Author: wlmyng <[email protected]> Date: Fri Oct 18 17:11:08 2024 -0700 [indexer] align watermarks table schema in live indexer to alt indexe… (#19922) …r (#19908) ## Description Since watermarks table isn't being written to yet, modify the db schema to match alt-indexer. The changes are to rename entity -> pipeline, tx_hi_inclusive -> tx_hi, and pruner_hi_inclusive -> pruner_hi and make it a non-null column. This works out nicely for graphql, since the transactions query implementations expect a half-open interval. Also simplifies pruner logic, since it can write the `reader_lo` as `pruner_hi` after delay, and table pruners will delete between `[table_data, pruner_hi)`. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 1c9e15645e107ec85bb933f9ee4d38f070b8db40 Author: wlmyng <[email protected]> Date: Fri Oct 18 15:39:20 2024 -0700 [indexer] quick fix for events in descending order without cursor (#1… (#19919) …9902) ## Description This PR fixes a bug where events queries in descending order without a cursor return no results ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 95dcb93d79d23bc32adc8fd05d70c92e6db82b49 Author: Ge Gao <[email protected]> Date: Fri Oct 18 17:21:21 2024 -0400 Pick: indexer handler: limit unprocessed buffer size #19913 (#19917) ## Description without this change, the unprocessed buffer will grow unboundedly until OOM it did not manifest on previous processor b/c it has sleep codes of ``` _ = tokio::time::sleep(std::time::Duration::from_secs(config.sleep_duration)) ``` and `sleep_duration` is 5 seconds. ## Test plan - correctness via the added objects_snapshot test - oom via experiment result on benchmark env with mem usage [link](https://app.datadoghq.com/metric/explorer?fromUser=false&start=1729280070529&end=1729283670529&paused=false#N4Ig7glgJg5gpgFxALlAGwIYE8D2BXJVEADxQEYAaELcqyKBAC1pEbghkcLIF8qo4AMwgA7CAgg4RKUAiwAHOChASAtnADOcAE4RNIKtrgBHPJoQaUAbVBGN8qVoD6gnNtUZCKiOq279VKY6epbINiAiGOrKQdpYZAYgUJ4YThr42gDGSsgg6gi6mZaBZnHKGABuMMiZUggYojoAdOqqblhNeBoY8MAA1ngARnBOkb7yGNnI2vKZALTDIpmMHtp9AAQU67Ui9Y3ao1FwyBp4EHOiAsQ6POuDWOvADlCH6jwgPAC6VK7ueJihcK-VT-DAxUrxD7fEAaORoHKgCbwhAIHJJHAwJyZAEaCCZRJoRpOOSKZTpQlQAlE+hMZQiNweNAffgQeyYLDEhRowkiJRfHh8GHyQkIADCUmEMBQIn+aB4QA) --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 775f2cb85e6113639f15877127ed66c1f8ad4671 Author: Eugene Boguslavsky <[email protected]> Date: Thu Oct 17 19:25:36 2024 -0700 Sui `v1.36.0` Framework Bytecode snapshot (#19904) ## Description Sui `v1.36.0` Framework Bytecode snapshot ## Test plan `cargo run --bin sui-framework-snapshot` commit 3e8d2312106e66e9b24e6acfcbdb721aa1a78651 Author: Mark Logan <[email protected]> Date: Thu Oct 17 18:44:08 2024 -0700 Revert congestion control change, use 3 txn per commit limit. (#19900) commit d239be81239619feefeb9fbc007f6d6c78335961 Author: wlmyng <[email protected]> Date: Thu Oct 17 15:51:31 2024 -0700 [indexer][watermarks][3/n] pruner updates watermarks lower bound (#19650) ## Description With the committer writing upper bounds, the pruner can now read from watermarks and determine whether the lower bounds need to be updated. Pruner does this by spawning a separate task, without touching the extant pruning logic (so all things are as is.) It will ignore any entries from watermarks that do not correspond to a `PrunableTable` variant. Part of a stack of PRs for watermarks simplify setting up test indexer: https://github.com/MystenLabs/sui/pull/19663 update pruner config: https://github.com/MystenLabs/sui/pull/19637 committer writes upper bounds https://github.com/MystenLabs/sui/pull/19649 pruner writes lower bounds: https://github.com/MystenLabs/sui/pull/19650 pruner prunes (wip) ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 446d7d5f111330bf915f9d5bf4e96ff4cf7aa857 Author: Bridgerz <[email protected]> Date: Thu Oct 17 21:57:20 2024 +0100 Fix ViewSuiBridge Bridge CLI command (#19869) ## Description Handle the case where a bridge committee member is no longer a validator. ## Test plan Tested locally. commit 67ac5c85a7df1c897336f987a7080f5887923f9a Author: sui-merge-bot[bot] <114704316+sui-merge-bot[bot]@users.noreply.github.com> Date: Thu Oct 17 13:27:15 2024 -0700 Version Packages (#19898) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/[email protected] ### Minor Changes - 477d2a4: Add new errors to ExecutionFailureStatus enum ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> commit 477d2a41ae8c6a2af6afe4a241cdce73cda6aef9 Author: hayes-mysten <[email protected]> Date: Thu Oct 17 13:12:59 2024 -0700 [ts sdk] Add new errors to ExecutionFailureStatus (#19897) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit c3562a362bc04802e7ae074ab9947fa9697e4488 Author: Andrew Schran <[email protected]> Date: Thu Oct 17 16:04:36 2024 -0400 Enable signed Discovery messages by default (#19895) ## Description Followup to PR #19587. ## Test plan As tested in first PR. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [x] Nodes (Validators and Full nodes): Adds authentication signatures to Discovery protocol messages. - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 491dcfe38a6d23e6771ebe1a33a674a0dbbe7d05 Author: Brandon Williams <[email protected]> Date: Thu Oct 17 14:30:02 2024 -0500 ci: set log level to error commit a762240611457bf262699713bf3db71004631139 Author: Jonas Lindstrøm <[email protected]> Date: Thu Oct 17 20:26:58 2024 +0200 Extend fixed-point numbers module (#19336) ## Description - Deprecated `fixed_point32` - Added `uq32_32` to replace it ## Test plan - New tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [X] CLI: Move `fixed_point32` has been deprecated for a new `uq32_32` module - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: Todd Nowacki <[email protected]> commit 0393579cd214511d5af61ba6fe052c42a34ff8a9 Author: sui-merge-bot[bot] <114704316+sui-merge-bot[bot]@users.noreply.github.com> Date: Thu Oct 17 12:03:38 2024 -0400 Version Packages (#19892) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/[email protected] ### Minor Changes - 60f96ee: New stablecoin pool params Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> commit 60f96ee37c2c7c251ab07f495190ef89ad479ed8 Author: Tony Lee <[email protected]> Date: Thu Oct 17 11:28:22 2024 -0400 New Deepbook Pool Params (#19891) ## Description New Deepbook Pool Params ## Test plan How did you test the new or updated feature? Mainnet ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit df56cb03c8c04653a43cc076b4450d2cecb32e8e Author: Patrick Kuo <[email protected]> Date: Thu Oct 17 12:59:38 2024 +0100 [Rosetta] - serialize total_coin_value to string instead of number to prevent precision lost (#19580) ## Description As titled ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: nikos.kitmeridis <[email protected]> commit 8adfe733b6977acb879583a1cba354d419d5c707 Author: jk jensen <[email protected]> Date: Wed Oct 16 16:29:58 2024 -0700 [suiop][image] enable q or esc to quit watching (#19881) ## Description Make it so the user can hit 'q' or 'esc' to exit the image watch interface ## Test plan https://github.com/user-attachments/assets/578ab67e-763e-4cd8-a4a7-1ac6006a4004 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 6d87bd24f2f5e88757d697a21cc13398f0f932a1 Author: Jort <[email protected]> Date: Wed Oct 16 16:01:58 2024 -0700 [move] add return locations to source map (#19885) ## Description store the return loc's in source maps ## Test plan --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 6f3ce94e08d727635236980d6332bd91d6d46c78 Author: Tim Zakian <[email protected]> Date: Wed Oct 16 14:18:48 2024 -0700 [move] Initial trace format and implementation (#18729) (#19858) This PR adds the initial trace format, and the implementation of this trace format in the VM. I've gone through the tracing format with most of you synchronously so won't write out all the details here (but I will take it on to write a spec for the trace format once this is done so other folks can use it when consuming this format). Happy to go through it at any point in real time. Other TODO: right now the `MoveValue`s only support serialize and not deserialize back into Rust so we can only push a trace out from Rust but not consume it. The next thing I'm working on right now is adding support for that, and it may be either an update to this PR, or an additional PR depending on how involved that is... Tests and integration of this into the Move CLI (not the Sui CLI yet) is in the PR above this one. This keeps the tracing largely feature-gated in the VM, and the only additional overhead/change at runtime with `gas-profiling` turned off is the additional argument, but this argument is unused and should be optimized away (and at worst only add essentially no overhead). I kept the `gas-profiling` feature flag and gated the new tracing under it. The plan being to eventually rename that flag at the same time that we update test coverage and gas profiling to use this new tracing format as well (but that's for a couple future PRs!). https://github.com/MystenLabs/sui/pull/19452 is stacked on top of this and cleans up the insertion points of the tracer into the VM. --- Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit cbffe5b8522ed7723371cf8fcfa802f47c1178ed Author: Eugene Boguslavsky <[email protected]> Date: Wed Oct 16 12:51:13 2024 -0700 Update mac os runner (#19883) ## Description `macos-latest-xl` is being depricated. ![Screenshot 2024-10-16 at 12 44 20 PM](https://github.com/user-attachments/assets/d0f49345-2538-4836-bdbf-9975d6df5299) ## Test plan 👀 commit b78eb1098ee2fcd08fb1576d049c354dd57fc8ca Author: Anastasios Kichidis <[email protected]> Date: Wed Oct 16 20:00:19 2024 +0100 [Consensus] fix amnesia recovery boot run (#19774) ## Description Currently if someone recovers their node within epoch `R` with a snapshot that's from epoch `< R-1` , consensus will not start in amnesia recovery mode in epoch R as the boot counter will have already been incremented as node is trying to catch up from earlier epochs. This is problematic as it defies the whole point of the automatic amnesia recovery. Instead on this PR we track consensus participation activity from earlier epochs/run and only then we increment the boot counter. Otherwise we keep the boot counter to `0` so we effectively enforce amnesia recovery until we get to an epoch where the node is able to participate. In this case participate means "able to have performed at least one commit". ## Test plan CI/PT --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 62f72cdea33c0782f3116dfd194ae81c562a0b43 Author: jk jensen <[email protected]> Date: Wed Oct 16 10:57:07 2024 -0700 [suiop][image] add --watch/-w to continuously query image build (#19872) ## Description Add new arg to continuously query image remote builds ## Test plan https://github.com/user-attachments/assets/a6b3ec5d-605d-48f2-a241-9ade8bfbfbf3 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 692f6c6a89b2e32659574fa20828222d289b102d Author: Tim Zakian <[email protected]> Date: Wed Oct 16 10:55:35 2024 -0700 [move][ir-to-bytecode] Add source locations to `Type` in the Move IR (#19875) ## Description Plumbs in source locations for `Type`s in the Move IR. This will be useful for adding return types to the Move source maps. ## Test plan Make sure existing types pass. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 31b15dde1758a6ba7d7029ecbd74804180f4800c Author: Lu Zhang <[email protected]> Date: Wed Oct 16 08:51:49 2024 -0700 [bridge] remove test-cluster's dependency on sui-bridge crate (#19840) ## Description as title. It also removes the transitive dependency of other crates on sui-bridge. ## Test plan tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 8fec5f8caeaf0d0d5a9d13c776fc8dd80219719e Author: Arun Koshy <[email protected]> Date: Wed Oct 16 01:48:58 2024 -0700 Add known peers for p2p network connection monitor (#19815) ## Description This will enable quinn stats for p2p network --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit f8e33f58104e6ed0d38e756beb0572e3bc263f10 Author: Arun Koshy <[email protected]> Date: Wed Oct 16 00:58:39 2024 -0700 [consensus] Migrate sui to Mysticeti connection monitor (#19814) ## Description Will follow up to ensure that known peers are set in sui via discovery so that metrics will be updated. Also will be adding TonicConnectionMonitor for Mysticeti to use. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 2224cf355dc25d6ded1d9a4b93c6f31939b80a01 Author: Brandon Williams <[email protected]> Date: Tue Oct 15 20:53:11 2024 -0500 rest: enable resolving of literals (#19857) Improve the format of `UnresolvedTransaction` as well as introduce the ability to resolve un-serialized pure argument literals. Example of JSON payload of an `UnresolvedTransaction`: ``` { "inputs": [ { "object_id": "0x2d7f57570815c43eb485be9018caabd11ac863e9d49b1d9e33b3f4ac40cadc72" }, { "value": 1 }, { "value": "0xc6fc0e38458632b1dd1d60b3a833865268a0faebe36864c71fb9805bd5a116cf" } ], "commands": [ { "command": "split_coins", "coin": { "input": 0 }, "amounts": [ { "input": 1 }, { "input": 1 } ] }, { "command": "transfer_objects", "objects": [ { "result": [ 0, 1 ] }, { "result": [ 0, 0 ] } ], "address": { "input": 2 } } ], "sender": "0xff69fdb72bfc6ff5a337ff01c650fb0ce72447105ff050c2039c6b5b267b04a7" } ``` which is resolved into the following `Transaction`: ``` { "version": "1", "kind": { "kind": "programmable_transaction", "inputs": [ { "type": "immutable_or_owned", "object_id": "0x03517c0699f36a1df2e93b6c18db815d8f247a853465aec9cc48f9ceae4561ca", "version": "1", "digest": "7WyoNoiZQmTj75viHKYhA48tCSJ5CFqA6HtzJ55hehxP" }, { "type": "pure", "value": "AQAAAAAAAAA=" }, { "type": "pure", "value": "JtcBTFgpW/n7HipqY6oz4bka0J8PyUPlSQbjR5lCq0Y=" } ], "commands": [ { "command": "split_coins", "coin": { "input": 0 }, "amounts": [ { "input": 1 }, { "input": 1 } ] }, { "command": "transfer_objects", "objects": [ { "result": [ 0, 1 ] }, { "result": [ 0, 0 ] } ], "address": { "input": 2 } } ] }, "sender": "0xb73663359e72a36122aaf3f08629fa684b667e0fe6e356b119c623c7c9459888", "gas_payment": { "objects": [ { "object_id": "0x94b1bef12a8db7b60fa89ad9bc2966d661a3a1002d921ada981e700648470304", "version": "1", "digest": "9kcUt38E4i8g5DartpUdBxW9m5n1u8AaJLyintWiddd6" }, { "object_id": "0xacc757731db589ef093130e0d6c839e809f9673a51be92667ecbcd486db73995", "version": "1", "digest": "2U3xxN1G9vf4raCGUHz6AejqVMWJCkEBmsbLgqwae5be" }, { "object_id": "0xd0891f6c419f3dd1a531e70779979f3c7aa91d13ae9125ffbae05f3960ee4249", "version": "1", "digest": "DkJRVUKfwV9pZ1NYEydvKwGpJei7YDDRemfRahruBDsQ" }, { "object_id": "0xde8bdc786f18e7d1b9d2ac975acd640952fd3c75303e4f35d0657f90ab7e947e", "version": "1", "digest": "8RJuNzFawuVbFz6zSH1GMeJuwiHfT2ZzfHKHdr6LrJrU" } ], "owner": "0xb73663359e72a36122aaf3f08629fa684b667e0fe6e356b119c623c7c9459888", "price": "1000", "budget": "5952000" }, "expiration": null } ``` commit 6cc663c639ca3fa1421db7021e0af33b0466e1be Author: wlmyng <[email protected]> Date: Tue Oct 15 18:42:57 2024 -0700 [indexer][writer] Add first_tx_sequence_number to epochs table to decouple from checkpoints table (#19773) ## Description The `epoch_total_transactions` field on `epochs` table is calculated today from `checkpoints.network_total_transactions`, which is not ideal since the latter is prunable and `epochs` will not be pruned for the foreseeable future. To remove this dependency, we add `first_tx_sequence_number` to the `epochs` table at epoch boundary. That is, the network total transaction count from the final checkpoint of the epoch becomes the first tx sequence number of the new epoch. This also means that at epoch boundary, the current-to-be-previous epoch's `epoch_total_transactions` is derived from the checkpoint's network total transactions - the epoch's `first_tx_sequence_number`. Consequently, this will also help in the pruner implementation, as given an epoch we'd like to know the corresponding cp and tx. This encompasses just the writer change. Before updating the read path, we will need to backfill the instance. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 71f9203abbf9bf0a3a887e1f2157a7caed7bcef2 Author: Brandon Williams <[email protected]> Date: Tue Oct 15 10:19:36 2024 -0500 jsonrpc: introduce a meta column family for tracking index initialization Introduce a meta column family that is used to track initialization of the Index DB itself as well as the status of the various column families themsevles. commit 814af2a99e0e66bda4fec1748082ce4af7fd3137 Author: Brandon Williams <[email protected]> Date: Tue Oct 15 10:18:02 2024 -0500 jsonrpc, rest: reduce batch size to 128MB before writting Reduce the minimum batch size to write out during indexing the live object set from 256MB to 128MB, these smaller batch sizes resulted in a small improvement to index initialization. commit d7e977a0ac58b885a98c4967e3e82cce43e720ff Author: Brandon Williams <[email protected]> Date: Fri Oct 11 15:24:26 2024 -0500 jsonrpc: add test for sorted coin balances commit c3371a28c783ff1e54b71c873b98f80b394f30a3 Author: Brandon Williams <[email protected]> Date: Fri Oct 11 14:07:40 2024 -0500 jsonrpc: initialize new coin_index_2 Initialize the new coin_index_2 index and clear the old coin_index column family. commit 47ba7e4684147b91cbf0fa628ce83f4a4b80d3bc Author: Brandon Williams <[email protected]> Date: Fri Oct 11 12:47:08 2024 -0500 jsonrpc: introduce coin_index_2 with coins sorted by balance Introduce a new coin_index_2 index with coins sorted by balance in decreasing value (sorted high to low). commit 6159973ae01f7b74505271d5ae76681f6594fe59 Author: Brandon Williams <[email protected]> Date: Fri Oct 11 10:25:19 2024 -0500 core: factor out parallel live object indexing Factor out the parallel live object indexing, used for initializing the rest indexes, into more general purpose and reusable logic. commit 4ad76b5679ec0e11b635537074b552cc96d584ba Author: Brandon Williams <[email protected]> Date: Fri Oct 11 09:07:27 2024 -0500 jsonrpc: move indexes from sui-storage to sui-core commit 99cebd9469dea1c2bbbd73d4cd6fb8284203a93a Author: Brandon Williams <[email protected]> Date: Fri Oct 11 08:45:29 2024 -0500 db_tool: remove loaded_child_object_versions search match arm commit 455e6c981e2af4da7bcd91e1e6642b3f8a10cb5a Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 15 16:00:17 2024 -0700 Fix node operator doc quote (#19874) ## Description Fix node operator doc quote ## Test plan Before: ![Screenshot 2024-10-15 at 3 31 55 PM](https://github.com/user-attachments/assets/c6aabc7b-328c-4404-be4a-b8b5c124e111) After: ![Screenshot 2024-10-15 at 3 32 00 PM](https://github.com/user-attachments/assets/3ef6d6dc-516a-4771-9a2f-a898610893bb) commit 3be7841e208731a69b8dd7ad5b39fa94f92fe59f Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 15 15:28:22 2024 -0700 Add release info for sui-full-node doc (#19808) ## Description Add release info for sui-full-node doc ## Test plan @ronny-mysten ! --------- Co-authored-by: ronny-mysten <[email protected]> commit ee100a7ed7e4cc6503fb5e7b94349151f24597e0 Author: techdebt-99 <[email protected]> Date: Tue Oct 15 16:21:56 2024 -0600 Update sponsor-txn.mdx (#19873) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 8fa9f571a26f3e3faeec78afca706c8eedb2b283 Author: Zhe Wu <[email protected]> Date: Tue Oct 15 14:31:16 2024 -0700 Use more realistic cap factor in simtest (#19862) ## Description So that we can exercise cap factor is higher and lower than the gas budget. ## Test plan Updating tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit e2c7aa1f4e3d0facbff0af78aad5bda283bc145e Author: ronny-mysten <[email protected]> Date: Tue Oct 15 15:31:04 2024 -0600 [docs] Update dbv3 content (#19867) ## Description DBv3 is now on Mainnet. Makes the sentence removed somewhat pointless. ## Test plan 👀 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 25c52c659ff00c0c54834de73760b38b6dbca938 Author: hayes-mysten <[email protected]> Date: Tue Oct 15 13:57:16 2024 -0700 [gql-transport] fix rawInput for transaction queries (#19866) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit aa2ca1d79fc3de862e398716f044337b6757acc1 Author: Tom Cat <[email protected]> Date: Wed Oct 16 03:31:17 2024 +0700 [Linter] Redundant ref deref (#16491) ## Description This lint rule detects and reports unnecessary temporary borrow operations followed by a dereference and a local borrow in Move code. It aims to improve code efficiency by suggesting direct usage of expressions without redundant operations. Implementation The lint rule is implemented as follows: A temporary borrow (TempBorrow) Followed by a dereference (Dereference) Where the dereferenced expression is either a BorrowLocal, Borrow, or another TempBorrow ## Test plan Added more use case including false positive, false negative case ## Release notes - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: --------- Co-authored-by: jamedzung <[email protected]> Co-authored-by: Lu Zhang <[email protected]> Co-authored-by: Cameron Swords <[email protected]> commit 6b231597e707bae887ca038d670ba3aa02775d37 Author: pei-mysten <[email protected]> Date: Tue Oct 15 11:59:35 2024 -0700 [docker] fix dockerfile for kaniko (#19865) ## Description kaniko doesn't like `*` wildcard, so have to be a little bit smarter. ## Test plan had a successfully built from kaniko. I pulled it down and inspected manually, binaries are ther --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 8aac6c2cfcbc48efd1ccb34ea8cfd28eae99b701 Author: Tony Lee <[email protected]> Date: Tue Oct 15 14:44:56 2024 -0400 Faucet Routes (#19692) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit e510867bd334fdd7b95bf0dab2ea7ce6b49f2409 Author: nikos-terzo <[email protected]> Date: Tue Oct 15 21:17:19 2024 +0300 Update typescript sdk examples (#19816) ## Description Update Typescript SDK examples in README to work ## Test plan Copy-pasted changed code to a new project depending on '@mysten/sui' and checked for no relevant typescript errors. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 4241c352fff0d71b40ec3148e62b558877c82d13 Author: Tim Zakian <[email protected]> Date: Tue Oct 15 11:06:54 2024 -0700 [move][docgen] Render string constants for error constants (#19823) ## Description This updates how constants annotated with `#[error]` are rendered in docgen. This also adds the `#[error]` annotation on them in the generated documentation. Note that we don't try to render all bytearrays as strings, but only constants with the `#[error]` annotation to avoid rendering normal bytearrays strings. ## Test plan Added a test to make sure we render error-annotated consts as we expect. commit 4357bfa20c4a4eb1675f2f31e32a34b8f5956db2 Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 15 10:35:55 2024 -0700 Remove mysten-tap sui.rb update (#19861) ## Description Remove mysten-tap sui.rb update ## Test plan 👀 commit 1e72cfbe5a269b880245c4de777a8126c4d3557f Author: mwtian <[email protected]> Date: Tue Oct 15 10:07:29 2024 -0700 [db] allow putting larger layer in higher levels (#19854) ## Description A followup to #19770. For cfs larger than 250GB, they need to be able to shard the files. ## Test plan Applied the new setting to other large cfs (transactions, effects) on fullnodes. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 34416bfce4f949c7ba07e08a47535f15f59dbf4a Author: Anastasios Kichidis <[email protected]> Date: Tue Oct 15 13:26:52 2024 +0100 [Consensus] DagState to evict blocks based on GC round (#19465) ## Description Currently we evict the cached ref entries in DagState whenever we `flush`. At this point we evict the entries for each authority by dropping all the blocks which are `<= evict_round`, where `evict_round = authority_latest_commit_round - CACHED_ROUNDS` . The `CACHED_ROUNDS` here allow us to keep around for a little longer committed blocks. Of course all the blocks that are `> evict_round` are kept. This can work fine so far where we don't use GC , as we expect eventually to include blocks from other peers as weak links - no matter how far back they are - and that will move the `authority_latest_commit_round` and trigger the eviction of their blocks from our memory. Now with GC we don't have those guarantees. It is possible to get to a scenario where even a group of slow nodes that are constantly behind `gc_round`, they keep proposing but their blocks never get committed. Although their blocks should not end up in others DAGs , they will remain in their own and fill up their memory. Overall, the current approach will provide weaker guarantees. This PR is changing the eviction strategy so it's driven by the `gc_round`. Doing though the eviction purely on the `gc_round` will change a lot the semantics of the `DagState` as one of the intentions was to keep recent cached data from each authority. That would also be particularly visible for authorities for which we do not have frequent block proposals, as we could end up always evicting all their blocks if they are behind the `gc_round`. Then this would not allow us to do certain operations we used to do before with cached data(ex get latest cached block per authority). For that reason this PR is changing a bit the semantics of the `CACHED_ROUNDS` and from now on it will be the minimum/desired amount of rounds we want to keep in cache for each of authority. The eviction algorithm will still attempt to clean up records that are `<= gc_round`, but it will also make sure that `CACHED_ROUNDS` worth of data are kept around. Especially for more edge case situation where a node has not produced blocks `> gc_round`, we guarantee to keep `CACHED_ROUNDS` even when all of them are `<= gc_round`, but we'll eventually evict anything before - practically like a moving window. ## Test plan CI/PT --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 72e54057fc8fe651334772d5918c687a28d21a78 Author: Zhe Wu <[email protected]> Date: Mon Oct 14 23:33:00 2024 -0700 Implement gas budget based congestion control with PTB/Obj cap (#19853) ## Description Introducing a new congestion control mechanism using gas budget as estimate but cap transaction cost based on transaction shape. ## Test plan Unit test Integration test --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 2e681a0063cecb4c31ff7aa3c42f1821d8237799 Author: Arun Koshy <[email protected]> Date: Mon Oct 14 21:56:42 2024 -0700 [consensus] Enable distributed vote scoring in mainnet v63 (#19799) ## Description Bump to protocol version 63 ## Test plan How did you test the new or updated feature? Has been running nightly in private-testnet and also running successfully in testnet https://metrics.sui.io/goto/KDyf-3kHR?orgId=1 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [X] Protocol: Enable distributed vote scoring in mainnet v63 - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit e920c3e0cfc8673e0858c69a94d8bbc261b0fa27 Author: mwtian <[email protected]> Date: Mon Oct 14 21:36:13 2024 -0700 Lower per object queue age and length thresholds (#19851) ## Description The original limits on the object queue are set with 1s checkpoint interval. Having the oldest transaction on an object queued for 1s is almost tolerable. In hindsight it should be lower than the checkpoint interval to ensure healthy system. Now checkpoint interval is targeting 0.2s - 0.25s, so lowering the limits further to 0.2s, to ensure smooth checkpoint constructions. ## Test plan CI PT Reading `num_rejected_cert_during_overload` metric from validators. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 6592989f0985347985f20b5ea4f037575c031d7b Author: sui-merge-bot[bot] <114704316+sui-merge-bot[bot]@users.noreply.github.com> Date: Mon Oct 14 14:00:28 2024 -0400 Version Packages (#19846) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/[email protected] ### Minor Changes - 7b8e8ad: Mainnet pool packages ## @mysten/[email protected] ### Patch Changes - 5299c18: Update the GraphQL transport to account for the removal of recvAddress and the introduction of affectedAddress. Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> commit 7b8e8ad552eb3c1e13b7554d2d6ed251a6e0c141 Author: Tony Lee <[email protected]> Date: Mon Oct 14 13:48:31 2024 -0400 Mainnet Pools (#19850) ## Description Mainnet Pools Deploy ## Test plan How did you test the new or updated feature? Mainnet ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 7227a4f59da9e46a9a7cde281ca8c6873561fbfe Author: ronny-mysten <[email protected]> Date: Mon Oct 14 09:13:17 2024 -0600 [docs][ci] Update parameters (#19829) Updating parameters. ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. …
commit c663b6325e0c2688e3e474165a6c8e7693b6fd11 Author: Carlos Baez <[email protected]> Date: Tue Oct 29 17:07:01 2024 +0100 Fixed extend calltraces commit 72994fe5ee4f4d12c31a8a888c4f7c384e765a4b Author: Carlos Baez <[email protected]> Date: Mon Oct 28 10:25:51 2024 +0100 Squashed commit of the following: commit 3ada97c109cc7ae1b451cb384a1f2cfae49c8d3e Author: Ashok Menon <[email protected]> Date: Fri Oct 25 23:58:47 2024 +0100 sui-system(v1.36): fix next epoch stake book-keeping (#20036) ## Description Update `next_epoch_stake` when redeeming a fungible staked sui. This value is used as a sanity check that everything matches up at the end of an epoch. ## Test plan ``` sui$ cargo nextest run -p sui-framework-tests ``` ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [x] Protocol: Protocol bumped to 67, introducing a framework change to fix next_epoch_stake book-keeping while redeeming fungible staked sui. - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: Arun Koshy <[email protected]> Co-authored-by: Sam Blackshear <[email protected]> Co-authored-by: Emma Zhong <[email protected]> commit 81da0c70ea1f862a8aed0cafad781a86b0bf65bb Author: Ge Gao <[email protected]> Date: Thu Oct 24 18:50:57 2024 -0400 pick: indexer: handle sui safe mode (#20015) (#20025) ## Description title ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 29ff3e3f53fc7aa590da97d1033265645be1ea1a Author: Mark Logan <[email protected]> Date: Wed Oct 23 09:12:40 2024 -0700 [cherrypick] Fix logic for end-of-epoch checkpoint when dkg has failed (#19976) If DKG has failed, we might accidentally construct two end of epoch checkpoints. commit 7a166ee0e58d036fbf626ba6bc21a3c2ec92225e Author: Mark Logan <[email protected]> Date: Tue Oct 22 17:24:48 2024 -0700 [cherrypick] Fix one more possible crash in execution_driver (#19870) Don't even try to execute certs from prior epochs commit a11f7b5d868396e0d23588d3713f6a70a43b293e Author: Mark Logan <[email protected]> Date: Tue Oct 22 11:05:16 2024 -0700 [cherrypick] Fix rare crash when a transaction executes after its shared object assignments have been deleted. (#19949) Fix rare crash when a transaction executes after its shared object assignments have been deleted. This is only possible if a second execution of the same tx starts concurrently, and the shared version assignments have been deleted as we are checking for object availability in TransactionManager commit bf79606ff4eb7c666629f14157715c1219504fed Author: Mark Logan <[email protected]> Date: Mon Oct 21 20:23:46 2024 -0700 [cherrypick] Must not wait on notify_read_effects after epoch ends, on a transaction that might be reverted (#19934) Found this crash after adding the delay failpoint seen in this PR. I don't quite understand why that exposed this crash. commit 8d34dfbb45414303cfd448c94bb04dcea0231369 Author: wlmyng <[email protected]> Date: Wed Oct 23 10:06:00 2024 -0700 [indexer] committers should read watermark hi directly from table (#1… (#19981) …9980) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 675ea8cf5437e6ade14d6c966ff8ff51a34b5357 Author: Mark Logan <[email protected]> Date: Tue Oct 22 14:47:53 2024 -0700 [cherrypick] Fix possible (but probably rare) race condition (#19951) (#19967) Fix crashes in execution_driver due to inability to execute transactions. -------- We must hold the lock for the object entry while inserting to the `object_by_id_cache`. Otherwise, a surprising bug can occur: 1. A thread executing TX1 can write object (O,1) to the dirty set and then pause. 2. TX2, which reads (O,1) can begin executing, because TransactionManager immediately schedules transactions if their inputs are available. It does not matter that TX1 hasn't finished executing yet. 3. TX2 can write (O,2) to both the dirty set and the object_by_id_cache. 4. The thread executing TX1 can resume and write (O,1) to the object_by_id_cache. Now, any subsequent attempt to get the latest version of O will return (O,1) instead of (O,2). This seems very unlikely, but it may be more likely under the following circumstances: - While a thread is unlikely to pause for so long, moka cache uses optimistic lock-free algorithms that have retry loops. Possibly, under high contention, this code might spin for a surprisingly long time. - Additionally, many concurrent re-executions of the same tx could happen due to the tx finalizer, plus checkpoint executor, consensus, and RPCs from fullnodes. Unfortunately I have not been able to reproduce this bug, so we cannot be sure that this fixes the crashes we've seen. But this is certainly a possible bug. ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit a85ea98b9982e1156fedd9bd149ee77483587cf5 Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 22 19:08:14 2024 +0000 Sui v1.36.2 Version Bump commit cf3fee71b907969b9308bfa83802c16b9b29bc70 Author: Brandon Williams <[email protected]> Date: Mon Oct 21 21:17:57 2024 -0500 Revert "rest: stabalize some checkpoint apis" (#19950) This reverts commit 13c1ec7b2a7a18e304444d63277c20f8f52a1bc2. ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: Co-authored-by: Eugene Boguslavsky <[email protected]> commit 032ac7d9ad2367b43be0ccd444d18d6d4f0ca001 Author: Brandon Williams <[email protected]> Date: Mon Oct 21 20:41:26 2024 -0500 1.36 index fix (#19947) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: Eugene Boguslavsky <[email protected]> commit f4695a93815a8e2ce43f558ef1b0ccf0e96ff51d Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 22 00:37:13 2024 +0000 Sui v1.36.1 Version Bump commit e3e5ac7113a7bff11982ef44492618e9ee133e61 Author: Brandon Williams <[email protected]> Date: Fri Oct 18 17:07:29 2024 -0500 jsonrpc_index: bump coin index version to 1 commit 0bf87c09f2d35a3567f3892ed648671adf656d75 Author: wlmyng <[email protected]> Date: Fri Oct 18 17:11:08 2024 -0700 [indexer] align watermarks table schema in live indexer to alt indexe… (#19922) …r (#19908) ## Description Since watermarks table isn't being written to yet, modify the db schema to match alt-indexer. The changes are to rename entity -> pipeline, tx_hi_inclusive -> tx_hi, and pruner_hi_inclusive -> pruner_hi and make it a non-null column. This works out nicely for graphql, since the transactions query implementations expect a half-open interval. Also simplifies pruner logic, since it can write the `reader_lo` as `pruner_hi` after delay, and table pruners will delete between `[table_data, pruner_hi)`. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 1c9e15645e107ec85bb933f9ee4d38f070b8db40 Author: wlmyng <[email protected]> Date: Fri Oct 18 15:39:20 2024 -0700 [indexer] quick fix for events in descending order without cursor (#1… (#19919) …9902) ## Description This PR fixes a bug where events queries in descending order without a cursor return no results ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 95dcb93d79d23bc32adc8fd05d70c92e6db82b49 Author: Ge Gao <[email protected]> Date: Fri Oct 18 17:21:21 2024 -0400 Pick: indexer handler: limit unprocessed buffer size #19913 (#19917) ## Description without this change, the unprocessed buffer will grow unboundedly until OOM it did not manifest on previous processor b/c it has sleep codes of ``` _ = tokio::time::sleep(std::time::Duration::from_secs(config.sleep_duration)) ``` and `sleep_duration` is 5 seconds. ## Test plan - correctness via the added objects_snapshot test - oom via experiment result on benchmark env with mem usage [link](https://app.datadoghq.com/metric/explorer?fromUser=false&start=1729280070529&end=1729283670529&paused=false#N4Ig7glgJg5gpgFxALlAGwIYE8D2BXJVEADxQEYAaELcqyKBAC1pEbghkcLIF8qo4AMwgA7CAgg4RKUAiwAHOChASAtnADOcAE4RNIKtrgBHPJoQaUAbVBGN8qVoD6gnNtUZCKiOq279VKY6epbINiAiGOrKQdpYZAYgUJ4YThr42gDGSsgg6gi6mZaBZnHKGABuMMiZUggYojoAdOqqblhNeBoY8MAA1ngARnBOkb7yGNnI2vKZALTDIpmMHtp9AAQU67Ui9Y3ao1FwyBp4EHOiAsQ6POuDWOvADlCH6jwgPAC6VK7ueJihcK-VT-DAxUrxD7fEAaORoHKgCbwhAIHJJHAwJyZAEaCCZRJoRpOOSKZTpQlQAlE+hMZQiNweNAffgQeyYLDEhRowkiJRfHh8GHyQkIADCUmEMBQIn+aB4QA) --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 775f2cb85e6113639f15877127ed66c1f8ad4671 Author: Eugene Boguslavsky <[email protected]> Date: Thu Oct 17 19:25:36 2024 -0700 Sui `v1.36.0` Framework Bytecode snapshot (#19904) ## Description Sui `v1.36.0` Framework Bytecode snapshot ## Test plan `cargo run --bin sui-framework-snapshot` commit 3e8d2312106e66e9b24e6acfcbdb721aa1a78651 Author: Mark Logan <[email protected]> Date: Thu Oct 17 18:44:08 2024 -0700 Revert congestion control change, use 3 txn per commit limit. (#19900) commit d239be81239619feefeb9fbc007f6d6c78335961 Author: wlmyng <[email protected]> Date: Thu Oct 17 15:51:31 2024 -0700 [indexer][watermarks][3/n] pruner updates watermarks lower bound (#19650) ## Description With the committer writing upper bounds, the pruner can now read from watermarks and determine whether the lower bounds need to be updated. Pruner does this by spawning a separate task, without touching the extant pruning logic (so all things are as is.) It will ignore any entries from watermarks that do not correspond to a `PrunableTable` variant. Part of a stack of PRs for watermarks simplify setting up test indexer: https://github.com/MystenLabs/sui/pull/19663 update pruner config: https://github.com/MystenLabs/sui/pull/19637 committer writes upper bounds https://github.com/MystenLabs/sui/pull/19649 pruner writes lower bounds: https://github.com/MystenLabs/sui/pull/19650 pruner prunes (wip) ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 446d7d5f111330bf915f9d5bf4e96ff4cf7aa857 Author: Bridgerz <[email protected]> Date: Thu Oct 17 21:57:20 2024 +0100 Fix ViewSuiBridge Bridge CLI command (#19869) ## Description Handle the case where a bridge committee member is no longer a validator. ## Test plan Tested locally. commit 67ac5c85a7df1c897336f987a7080f5887923f9a Author: sui-merge-bot[bot] <114704316+sui-merge-bot[bot]@users.noreply.github.com> Date: Thu Oct 17 13:27:15 2024 -0700 Version Packages (#19898) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/[email protected] ### Minor Changes - 477d2a4: Add new errors to ExecutionFailureStatus enum ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] ## @mysten/[email protected] ### Patch Changes - Updated dependencies [477d2a4] - @mysten/[email protected] - @mysten/[email protected] Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> commit 477d2a41ae8c6a2af6afe4a241cdce73cda6aef9 Author: hayes-mysten <[email protected]> Date: Thu Oct 17 13:12:59 2024 -0700 [ts sdk] Add new errors to ExecutionFailureStatus (#19897) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit c3562a362bc04802e7ae074ab9947fa9697e4488 Author: Andrew Schran <[email protected]> Date: Thu Oct 17 16:04:36 2024 -0400 Enable signed Discovery messages by default (#19895) ## Description Followup to PR #19587. ## Test plan As tested in first PR. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [x] Nodes (Validators and Full nodes): Adds authentication signatures to Discovery protocol messages. - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 491dcfe38a6d23e6771ebe1a33a674a0dbbe7d05 Author: Brandon Williams <[email protected]> Date: Thu Oct 17 14:30:02 2024 -0500 ci: set log level to error commit a762240611457bf262699713bf3db71004631139 Author: Jonas Lindstrøm <[email protected]> Date: Thu Oct 17 20:26:58 2024 +0200 Extend fixed-point numbers module (#19336) ## Description - Deprecated `fixed_point32` - Added `uq32_32` to replace it ## Test plan - New tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [X] CLI: Move `fixed_point32` has been deprecated for a new `uq32_32` module - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: Todd Nowacki <[email protected]> commit 0393579cd214511d5af61ba6fe052c42a34ff8a9 Author: sui-merge-bot[bot] <114704316+sui-merge-bot[bot]@users.noreply.github.com> Date: Thu Oct 17 12:03:38 2024 -0400 Version Packages (#19892) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @mysten/[email protected] ### Minor Changes - 60f96ee: New stablecoin pool params Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> commit 60f96ee37c2c7c251ab07f495190ef89ad479ed8 Author: Tony Lee <[email protected]> Date: Thu Oct 17 11:28:22 2024 -0400 New Deepbook Pool Params (#19891) ## Description New Deepbook Pool Params ## Test plan How did you test the new or updated feature? Mainnet ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit df56cb03c8c04653a43cc076b4450d2cecb32e8e Author: Patrick Kuo <[email protected]> Date: Thu Oct 17 12:59:38 2024 +0100 [Rosetta] - serialize total_coin_value to string instead of number to prevent precision lost (#19580) ## Description As titled ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: --------- Co-authored-by: nikos.kitmeridis <[email protected]> commit 8adfe733b6977acb879583a1cba354d419d5c707 Author: jk jensen <[email protected]> Date: Wed Oct 16 16:29:58 2024 -0700 [suiop][image] enable q or esc to quit watching (#19881) ## Description Make it so the user can hit 'q' or 'esc' to exit the image watch interface ## Test plan https://github.com/user-attachments/assets/578ab67e-763e-4cd8-a4a7-1ac6006a4004 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 6d87bd24f2f5e88757d697a21cc13398f0f932a1 Author: Jort <[email protected]> Date: Wed Oct 16 16:01:58 2024 -0700 [move] add return locations to source map (#19885) ## Description store the return loc's in source maps ## Test plan --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 6f3ce94e08d727635236980d6332bd91d6d46c78 Author: Tim Zakian <[email protected]> Date: Wed Oct 16 14:18:48 2024 -0700 [move] Initial trace format and implementation (#18729) (#19858) This PR adds the initial trace format, and the implementation of this trace format in the VM. I've gone through the tracing format with most of you synchronously so won't write out all the details here (but I will take it on to write a spec for the trace format once this is done so other folks can use it when consuming this format). Happy to go through it at any point in real time. Other TODO: right now the `MoveValue`s only support serialize and not deserialize back into Rust so we can only push a trace out from Rust but not consume it. The next thing I'm working on right now is adding support for that, and it may be either an update to this PR, or an additional PR depending on how involved that is... Tests and integration of this into the Move CLI (not the Sui CLI yet) is in the PR above this one. This keeps the tracing largely feature-gated in the VM, and the only additional overhead/change at runtime with `gas-profiling` turned off is the additional argument, but this argument is unused and should be optimized away (and at worst only add essentially no overhead). I kept the `gas-profiling` feature flag and gated the new tracing under it. The plan being to eventually rename that flag at the same time that we update test coverage and gas profiling to use this new tracing format as well (but that's for a couple future PRs!). https://github.com/MystenLabs/sui/pull/19452 is stacked on top of this and cleans up the insertion points of the tracer into the VM. --- Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit cbffe5b8522ed7723371cf8fcfa802f47c1178ed Author: Eugene Boguslavsky <[email protected]> Date: Wed Oct 16 12:51:13 2024 -0700 Update mac os runner (#19883) ## Description `macos-latest-xl` is being depricated. ![Screenshot 2024-10-16 at 12 44 20 PM](https://github.com/user-attachments/assets/d0f49345-2538-4836-bdbf-9975d6df5299) ## Test plan 👀 commit b78eb1098ee2fcd08fb1576d049c354dd57fc8ca Author: Anastasios Kichidis <[email protected]> Date: Wed Oct 16 20:00:19 2024 +0100 [Consensus] fix amnesia recovery boot run (#19774) ## Description Currently if someone recovers their node within epoch `R` with a snapshot that's from epoch `< R-1` , consensus will not start in amnesia recovery mode in epoch R as the boot counter will have already been incremented as node is trying to catch up from earlier epochs. This is problematic as it defies the whole point of the automatic amnesia recovery. Instead on this PR we track consensus participation activity from earlier epochs/run and only then we increment the boot counter. Otherwise we keep the boot counter to `0` so we effectively enforce amnesia recovery until we get to an epoch where the node is able to participate. In this case participate means "able to have performed at least one commit". ## Test plan CI/PT --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 62f72cdea33c0782f3116dfd194ae81c562a0b43 Author: jk jensen <[email protected]> Date: Wed Oct 16 10:57:07 2024 -0700 [suiop][image] add --watch/-w to continuously query image build (#19872) ## Description Add new arg to continuously query image remote builds ## Test plan https://github.com/user-attachments/assets/a6b3ec5d-605d-48f2-a241-9ade8bfbfbf3 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 692f6c6a89b2e32659574fa20828222d289b102d Author: Tim Zakian <[email protected]> Date: Wed Oct 16 10:55:35 2024 -0700 [move][ir-to-bytecode] Add source locations to `Type` in the Move IR (#19875) ## Description Plumbs in source locations for `Type`s in the Move IR. This will be useful for adding return types to the Move source maps. ## Test plan Make sure existing types pass. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 31b15dde1758a6ba7d7029ecbd74804180f4800c Author: Lu Zhang <[email protected]> Date: Wed Oct 16 08:51:49 2024 -0700 [bridge] remove test-cluster's dependency on sui-bridge crate (#19840) ## Description as title. It also removes the transitive dependency of other crates on sui-bridge. ## Test plan tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 8fec5f8caeaf0d0d5a9d13c776fc8dd80219719e Author: Arun Koshy <[email protected]> Date: Wed Oct 16 01:48:58 2024 -0700 Add known peers for p2p network connection monitor (#19815) ## Description This will enable quinn stats for p2p network --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit f8e33f58104e6ed0d38e756beb0572e3bc263f10 Author: Arun Koshy <[email protected]> Date: Wed Oct 16 00:58:39 2024 -0700 [consensus] Migrate sui to Mysticeti connection monitor (#19814) ## Description Will follow up to ensure that known peers are set in sui via discovery so that metrics will be updated. Also will be adding TonicConnectionMonitor for Mysticeti to use. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 2224cf355dc25d6ded1d9a4b93c6f31939b80a01 Author: Brandon Williams <[email protected]> Date: Tue Oct 15 20:53:11 2024 -0500 rest: enable resolving of literals (#19857) Improve the format of `UnresolvedTransaction` as well as introduce the ability to resolve un-serialized pure argument literals. Example of JSON payload of an `UnresolvedTransaction`: ``` { "inputs": [ { "object_id": "0x2d7f57570815c43eb485be9018caabd11ac863e9d49b1d9e33b3f4ac40cadc72" }, { "value": 1 }, { "value": "0xc6fc0e38458632b1dd1d60b3a833865268a0faebe36864c71fb9805bd5a116cf" } ], "commands": [ { "command": "split_coins", "coin": { "input": 0 }, "amounts": [ { "input": 1 }, { "input": 1 } ] }, { "command": "transfer_objects", "objects": [ { "result": [ 0, 1 ] }, { "result": [ 0, 0 ] } ], "address": { "input": 2 } } ], "sender": "0xff69fdb72bfc6ff5a337ff01c650fb0ce72447105ff050c2039c6b5b267b04a7" } ``` which is resolved into the following `Transaction`: ``` { "version": "1", "kind": { "kind": "programmable_transaction", "inputs": [ { "type": "immutable_or_owned", "object_id": "0x03517c0699f36a1df2e93b6c18db815d8f247a853465aec9cc48f9ceae4561ca", "version": "1", "digest": "7WyoNoiZQmTj75viHKYhA48tCSJ5CFqA6HtzJ55hehxP" }, { "type": "pure", "value": "AQAAAAAAAAA=" }, { "type": "pure", "value": "JtcBTFgpW/n7HipqY6oz4bka0J8PyUPlSQbjR5lCq0Y=" } ], "commands": [ { "command": "split_coins", "coin": { "input": 0 }, "amounts": [ { "input": 1 }, { "input": 1 } ] }, { "command": "transfer_objects", "objects": [ { "result": [ 0, 1 ] }, { "result": [ 0, 0 ] } ], "address": { "input": 2 } } ] }, "sender": "0xb73663359e72a36122aaf3f08629fa684b667e0fe6e356b119c623c7c9459888", "gas_payment": { "objects": [ { "object_id": "0x94b1bef12a8db7b60fa89ad9bc2966d661a3a1002d921ada981e700648470304", "version": "1", "digest": "9kcUt38E4i8g5DartpUdBxW9m5n1u8AaJLyintWiddd6" }, { "object_id": "0xacc757731db589ef093130e0d6c839e809f9673a51be92667ecbcd486db73995", "version": "1", "digest": "2U3xxN1G9vf4raCGUHz6AejqVMWJCkEBmsbLgqwae5be" }, { "object_id": "0xd0891f6c419f3dd1a531e70779979f3c7aa91d13ae9125ffbae05f3960ee4249", "version": "1", "digest": "DkJRVUKfwV9pZ1NYEydvKwGpJei7YDDRemfRahruBDsQ" }, { "object_id": "0xde8bdc786f18e7d1b9d2ac975acd640952fd3c75303e4f35d0657f90ab7e947e", "version": "1", "digest": "8RJuNzFawuVbFz6zSH1GMeJuwiHfT2ZzfHKHdr6LrJrU" } ], "owner": "0xb73663359e72a36122aaf3f08629fa684b667e0fe6e356b119c623c7c9459888", "price": "1000", "budget": "5952000" }, "expiration": null } ``` commit 6cc663c639ca3fa1421db7021e0af33b0466e1be Author: wlmyng <[email protected]> Date: Tue Oct 15 18:42:57 2024 -0700 [indexer][writer] Add first_tx_sequence_number to epochs table to decouple from checkpoints table (#19773) ## Description The `epoch_total_transactions` field on `epochs` table is calculated today from `checkpoints.network_total_transactions`, which is not ideal since the latter is prunable and `epochs` will not be pruned for the foreseeable future. To remove this dependency, we add `first_tx_sequence_number` to the `epochs` table at epoch boundary. That is, the network total transaction count from the final checkpoint of the epoch becomes the first tx sequence number of the new epoch. This also means that at epoch boundary, the current-to-be-previous epoch's `epoch_total_transactions` is derived from the checkpoint's network total transactions - the epoch's `first_tx_sequence_number`. Consequently, this will also help in the pruner implementation, as given an epoch we'd like to know the corresponding cp and tx. This encompasses just the writer change. Before updating the read path, we will need to backfill the instance. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 71f9203abbf9bf0a3a887e1f2157a7caed7bcef2 Author: Brandon Williams <[email protected]> Date: Tue Oct 15 10:19:36 2024 -0500 jsonrpc: introduce a meta column family for tracking index initialization Introduce a meta column family that is used to track initialization of the Index DB itself as well as the status of the various column families themsevles. commit 814af2a99e0e66bda4fec1748082ce4af7fd3137 Author: Brandon Williams <[email protected]> Date: Tue Oct 15 10:18:02 2024 -0500 jsonrpc, rest: reduce batch size to 128MB before writting Reduce the minimum batch size to write out during indexing the live object set from 256MB to 128MB, these smaller batch sizes resulted in a small improvement to index initialization. commit d7e977a0ac58b885a98c4967e3e82cce43e720ff Author: Brandon Williams <[email protected]> Date: Fri Oct 11 15:24:26 2024 -0500 jsonrpc: add test for sorted coin balances commit c3371a28c783ff1e54b71c873b98f80b394f30a3 Author: Brandon Williams <[email protected]> Date: Fri Oct 11 14:07:40 2024 -0500 jsonrpc: initialize new coin_index_2 Initialize the new coin_index_2 index and clear the old coin_index column family. commit 47ba7e4684147b91cbf0fa628ce83f4a4b80d3bc Author: Brandon Williams <[email protected]> Date: Fri Oct 11 12:47:08 2024 -0500 jsonrpc: introduce coin_index_2 with coins sorted by balance Introduce a new coin_index_2 index with coins sorted by balance in decreasing value (sorted high to low). commit 6159973ae01f7b74505271d5ae76681f6594fe59 Author: Brandon Williams <[email protected]> Date: Fri Oct 11 10:25:19 2024 -0500 core: factor out parallel live object indexing Factor out the parallel live object indexing, used for initializing the rest indexes, into more general purpose and reusable logic. commit 4ad76b5679ec0e11b635537074b552cc96d584ba Author: Brandon Williams <[email protected]> Date: Fri Oct 11 09:07:27 2024 -0500 jsonrpc: move indexes from sui-storage to sui-core commit 99cebd9469dea1c2bbbd73d4cd6fb8284203a93a Author: Brandon Williams <[email protected]> Date: Fri Oct 11 08:45:29 2024 -0500 db_tool: remove loaded_child_object_versions search match arm commit 455e6c981e2af4da7bcd91e1e6642b3f8a10cb5a Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 15 16:00:17 2024 -0700 Fix node operator doc quote (#19874) ## Description Fix node operator doc quote ## Test plan Before: ![Screenshot 2024-10-15 at 3 31 55 PM](https://github.com/user-attachments/assets/c6aabc7b-328c-4404-be4a-b8b5c124e111) After: ![Screenshot 2024-10-15 at 3 32 00 PM](https://github.com/user-attachments/assets/3ef6d6dc-516a-4771-9a2f-a898610893bb) commit 3be7841e208731a69b8dd7ad5b39fa94f92fe59f Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 15 15:28:22 2024 -0700 Add release info for sui-full-node doc (#19808) ## Description Add release info for sui-full-node doc ## Test plan @ronny-mysten ! --------- Co-authored-by: ronny-mysten <[email protected]> commit ee100a7ed7e4cc6503fb5e7b94349151f24597e0 Author: techdebt-99 <[email protected]> Date: Tue Oct 15 16:21:56 2024 -0600 Update sponsor-txn.mdx (#19873) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 8fa9f571a26f3e3faeec78afca706c8eedb2b283 Author: Zhe Wu <[email protected]> Date: Tue Oct 15 14:31:16 2024 -0700 Use more realistic cap factor in simtest (#19862) ## Description So that we can exercise cap factor is higher and lower than the gas budget. ## Test plan Updating tests --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit e2c7aa1f4e3d0facbff0af78aad5bda283bc145e Author: ronny-mysten <[email protected]> Date: Tue Oct 15 15:31:04 2024 -0600 [docs] Update dbv3 content (#19867) ## Description DBv3 is now on Mainnet. Makes the sentence removed somewhat pointless. ## Test plan 👀 --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 25c52c659ff00c0c54834de73760b38b6dbca938 Author: hayes-mysten <[email protected]> Date: Tue Oct 15 13:57:16 2024 -0700 [gql-transport] fix rawInput for transaction queries (#19866) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit aa2ca1d79fc3de862e398716f044337b6757acc1 Author: Tom Cat <[email protected]> Date: Wed Oct 16 03:31:17 2024 +0700 [Linter] Redundant ref deref (#16491) ## Description This lint rule detects and reports unnecessary temporary borrow operations followed by a dereference and a local borrow in Move code. It aims to improve code efficiency by suggesting direct usage of expressions without redundant operations. Implementation The lint rule is implemented as follows: A temporary borrow (TempBorrow) Followed by a dereference (Dereference) Where the dereferenced expression is either a BorrowLocal, Borrow, or another TempBorrow ## Test plan Added more use case including false positive, false negative case ## Release notes - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: --------- Co-authored-by: jamedzung <[email protected]> Co-authored-by: Lu Zhang <[email protected]> Co-authored-by: Cameron Swords <[email protected]> commit 6b231597e707bae887ca038d670ba3aa02775d37 Author: pei-mysten <[email protected]> Date: Tue Oct 15 11:59:35 2024 -0700 [docker] fix dockerfile for kaniko (#19865) ## Description kaniko doesn't like `*` wildcard, so have to be a little bit smarter. ## Test plan had a successfully built from kaniko. I pulled it down and inspected manually, binaries are ther --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 8aac6c2cfcbc48efd1ccb34ea8cfd28eae99b701 Author: Tony Lee <[email protected]> Date: Tue Oct 15 14:44:56 2024 -0400 Faucet Routes (#19692) ## Description Describe the changes or additions included in this PR. ## Test plan How did you test the new or updated feature? --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit e510867bd334fdd7b95bf0dab2ea7ce6b49f2409 Author: nikos-terzo <[email protected]> Date: Tue Oct 15 21:17:19 2024 +0300 Update typescript sdk examples (#19816) ## Description Update Typescript SDK examples in README to work ## Test plan Copy-pasted changed code to a new project depending on '@mysten/sui' and checked for no relevant typescript errors. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 4241c352fff0d71b40ec3148e62b558877c82d13 Author: Tim Zakian <[email protected]> Date: Tue Oct 15 11:06:54 2024 -0700 [move][docgen] Render string constants for error constants (#19823) ## Description This updates how constants annotated with `#[error]` are rendered in docgen. This also adds the `#[error]` annotation on them in the generated documentation. Note that we don't try to render all bytearrays as strings, but only constants with the `#[error]` annotation to avoid rendering normal bytearrays strings. ## Test plan Added a test to make sure we render error-annotated consts as we expect. commit 4357bfa20c4a4eb1675f2f31e32a34b8f5956db2 Author: Eugene Boguslavsky <[email protected]> Date: Tue Oct 15 10:35:55 2024 -0700 Remove mysten-tap sui.rb update (#19861) ## Description Remove mysten-tap sui.rb update ## Test plan 👀 commit 1e72cfbe5a269b880245c4de777a8126c4d3557f Author: mwtian <[email protected]> Date: Tue Oct 15 10:07:29 2024 -0700 [db] allow putting larger layer in higher levels (#19854) ## Description A followup to #19770. For cfs larger than 250GB, they need to be able to shard the files. ## Test plan Applied the new setting to other large cfs (transactions, effects) on fullnodes. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] Indexer: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] REST API: commit 34416bfce4f949c7ba07e08a47535f15f59dbf4a Author: Anastasios Kichidis <[email protected]> Date: Tue Oct 15 13:26:52 2024 +0100 [Consensus] DagState to evict blocks based on GC round (#19465) ## Description Currently we evict the cached ref entries in DagState whenever we `flush`. At this point we evict the entries for each authority by dropping all the blocks which are `<= evict_round`, where `evict_round = authority_latest_commit_round - CACHED_ROUNDS` . The `CACHED_ROUNDS` here allow us to keep around for a little longer committed blocks. Of course all the blocks that are `> evict_round` are kept. This can work fine so far where we don't use GC , as we expect eventually to include blocks from other peers as weak links - no matter how far back they are - and that will move the `authority_latest_commit_round` and trigger the eviction of their blocks from our memory. Now with GC we don't have those guarantees. It is possible to get to a scenario where even a group of slow nodes that are constantly behind `gc_round`, they keep proposing but their blocks never get committed. Although their blocks should not end up in others DAGs , they will remain in their own and fill up their memory. Overall, the current approach will provide weaker guarantees. This PR is changing the eviction strategy so it's driven by the `gc_round`. Doing though the eviction purely on the `gc_round` will change a lot the semantics of the `DagState` as one of the intentions was to keep recent cached data from each authority. That would also be particularly visible for authorities for which we do not have frequent block proposals, as we could end up always evicting all their blocks if they are behind the `gc_round`. Then this would not allow us to do certain operations we used to do before with cached data(ex get latest cached block per authority). For that reason this PR is changing a bit the semantics of the `CACHED_ROUNDS` and from now on it will be the minimum/desired amount of rounds we want to keep in cache for each of authority. The eviction algorithm will still attempt to clean up records that are `<= gc_round`, but it will also make sure that `CACHED_ROUNDS` worth of data are kept around. Especially for more edge case situation where a node has not produced blocks `> gc_round`, we guarantee to keep `CACHED_ROUNDS` even when all of them are `<= gc_round`, but we'll eventually evict anything before - practically like a moving window. ## Test plan CI/PT --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Node…
Description
Extend the fixed-point numbers library to make it more usable.
Test plan
Unit tests.
Release notes
Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.
For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.