Tags: fuzzland/sui
Tags
[move-ide] Fixed crash when module extension extends user module (Mys… …tenLabs#25154) ## Description While working on a full module extension fix we at least want to prevent `move-analyzer` from crashing when someone tries to work on a module extension in the IDE. One such problem was addressed in MystenLabs#25078 and another one (and hopefully the last one) in this PR. The following is also included as a (TODO) comment in the code. When both the extended module and extension are in user space, extension members get inlined into the extended module during expansion. If only the extension file is modified, the extended module's definition location (checked above) appears unchanged. Without checking member locations, we'd use stale cached data with incorrect file hashes. This is NOT a problem when the extended module is a dependency (pre-compiled lib) because extensions cannot be applied to pre-compiled modules - they lack the expansion-level AST needed for inlining. ## Test plan Added an extra test that was crashing before this PR and now runs to completion. The result is still incorrect of course as we do not have full support for module extensions.
[jsonrpc-alt] port coins to consistent store (MystenLabs#24558) ## Description Update existing reads against `coin_balance_buckets` to instead read from the Consistent Store using the consistent reader. This has several benefits: 1. We can deprecate the `coin_balance_buckets` pipeline. 2. Coins returned are fully ordered by descending balance order, rather than inconsistent balances within the same magnitude. 3. Enables forking tool to read from forked data in consistent-store: DelegationCoin apis don't need to delegate to fullnode anymore, as the Consistent Store can answer balance-related questions. We'll need to provide consistent reader args and redeploy our jsonrpc-alt service. ## Test plan - Update existing test snapshots - replace existing fullnode delegation tests with balance-specific tests, notably around transfer and delete (merge) --- ## 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): - [ ] gRPC: - [] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] Indexing Framework:
Fix crypto instalation (MystenLabs#25105) ## Description I am still hitting this error in the kvstore indexer when the http client (which is created inside the gcloud sdk) tries to do the Service Account oath2 flow: ``` 2026-01-28T00:48:29.069125Z INFO sui_kvstore_alt: Starting sui-kvstore-alt indexer 2026-01-28T00:48:29.069142Z INFO sui_kvstore_alt: instance_id=kv-load-test-tn-15c12f8 2026-01-28T00:48:29.069189Z DEBUG provider: gcp_auth: initializing gcp_auth 2026-01-28T00:48:29.069200Z DEBUG provider: gcp_auth::custom_service_account: check for GOOGLE_APPLICATION_CREDENTIALS env var 2026-01-28T00:48:29.069208Z DEBUG provider: gcp_auth::types: reading credentials file from GOOGLE_APPLICATION_CREDENTIALS env var path="/secrets/bigtable/bigtable-sa.json" thread 'main' (1) panicked at /usr/local/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustls-0.23.31/src/crypto/mod.rs:249:14: Could not automatically determine the process-level CryptoProvider from Rustls crate features. Call CryptoProvider::install_default() before this point to select a provider manually, or make sure exactly one of the 'aws-lc-rs' and 'ring' features is enabled. See the documentation of the CryptoProvider type for more information. stack backtrace: 2026-01-28T00:48:29.071933Z ERROR provider: telemetry_subscribers: panicked at /usr/local/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustls-0.23.31/src/crypto/mod.rs:249:14: Could not automatically determine the process-level CryptoProvider from Rustls crate features. Call CryptoProvider::install_default() before this point to select a provider manually, or make sure exactly one of the 'aws-lc-rs' and 'ring' features is enabled. See the documentation of the CryptoProvider type for more information. panic.file="/usr/local/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustls-0.23.31/src/crypto/mod.rs" panic.line=249 panic.column=14 0: 0x593514e249d2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h718e2d17a1928e63 1: 0x593514e37e2f - core::fmt::write::h1d2246b072ea91eb 2: 0x593514dee433 - std::io::Write::write_fmt::haf55272405c09d9b 3: 0x593514dfc052 - std::sys::backtrace::BacktraceLock::print::h61c3bd81a9458a03 4: 0x593514e01a4c - std::panicking::default_hook::{{closure}}::haf1ffb5d1e33a97f 5: 0x593514e018a6 - std::panicking::default_hook::hc32245deb6eaa988 6: 0x5935142440d9 - telemetry_subscribers::set_panic_hook::{{closure}}::ha05f15ea0276e5f5 7: 0x593514e0210f - std::panicking::panic_with_hook::h43adc00fd0e494cb 8: 0x593514e01eba - std::panicking::panic_handler::{{closure}}::h44391079756da3e7 9: 0x593514dfc199 - std::sys::backtrace::__rust_end_short_backtrace::h934e1568393e5b8f 10: 0x593514de18bd - __rustc[d9b87f19e823c0ef]::rust_begin_unwind 11: 0x593514e42e70 - core::panicking::panic_fmt::h62031895f6e012da 12: 0x593514e41f2b - core::option::expect_failed::h40dde8b63ee0f843 13: 0x593514bb8ca2 - rustls::client::client_conn::ClientConfig::builder_with_protocol_versions::h60f9ded0f3cae764 14: 0x593514bb8d16 - rustls::client::client_conn::ClientConfig::builder::h7811672c3eb7955a 15: 0x5935149721bd - hyper_rustls::connector::builder::ConnectorBuilder<hyper_rustls::connector::builder::WantsTlsConfig>::with_native_roots::hed85eeb9ba0d71bb 16: 0x59351446ce92 - gcp_auth::types::HttpClient::new::h6990ae7b90c1141c 17: 0x59351447f56d - gcp_auth::custom_service_account::CustomServiceAccount::from_env::h7fe855f92174b3ce 18: 0x5935141de1f7 - <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll::he5a60383e11f9830 19: 0x5935141870e7 - sui_kvstore_alt::main::{{closure}}::h1dc6d93a588f0095 20: 0x59351419a179 - tokio::runtime::park::CachedParkThread::block_on::h97f30430cd7e806a 21: 0x593514129423 - tokio::runtime::context::runtime::enter_runtime::hd90b73dfe83d7f73 22: 0x593514231755 - tokio::runtime::runtime::Runtime::block_on::h1aa9ae7b26e0cf20 23: 0x593514185d67 - sui_kvstore_alt::main::h38ced8ef6f224aa0 24: 0x5935141f08d3 - std::sys::backtrace::__rust_begin_short_backtrace::h04a5150d6b89a5f3 25: 0x5935141b7bbd - std::rt::lang_start::{{closure}}::h4a59f6a0be951b3b 26: 0x593514df0310 - std::rt::lang_start_internal::h00c7908c7c2f92b8 27: 0x5935141a77dc - main 28: 0x7a61acbd624a - <unknown> 29: 0x7a61acbd6305 - __libc_start_main 30: 0x593513fc3c2a - _start 31: 0x0 - <unknown> ``` This feature configuration is working and should fix this problem workspace wide. I think the only other options would be fixing it with the install_default() call in the main method (for binary crates where we don't control http client construction), or somehow working around the gcloud SDK and writing our own auth flow. As far as I can tell there is no way to pass your own tls provider into the sdk.
[Consensus] some comments on the commit finaliser (MystenLabs#25123) ## Description Adding a few more comments regarding the calculation of the `vote_gc_round` . @mwtian please check if that accurately describes the logic. ## 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): - [ ] gRPC: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] Indexing Framework:
docs: update graphql data-access retention docs (MystenLabs#25122) ## Description I think this [PR](MystenLabs#24784) got lost in the shuffle, reopening to get the changes back into docs. ## 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): - [ ] gRPC: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] Indexing Framework: --------- Co-authored-by: Jessie Mongeon <133128541+jessiemongeon1@users.noreply.github.com>
[consensus] test equivocations with randomized dag (MystenLabs#25113) ## Description Test commit logic with equivocating blocks. ## Test plan `python ./scripts/simtest/seed-search.py test_randomized_dag_with_4_authorities_1_equivocator --test consensus_dag_tests --num-seeds 1000`
[graphql-alt] Update ServiceConfig return types for partial error sup… …port [6/n] (MystenLabs#25108) ## Description Updates ServiceConfig return types from Result<Option<T>, E> to Option<Result<T, E>> for partial error support. Files changed: - crates/sui-indexer-alt-graphql/src/api/types/service_config.rs ## Test plan ``` cargo nextest run -p sui-indexer-alt-e2e-tests ``` --- ## Stack - MystenLabs#24595 - MystenLabs#24681 - MystenLabs#24682 - MystenLabs#24683 - MystenLabs#24684 - MystenLabs#25108 ⬅️ ## 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): - [ ] gRPC: - [ ] JSON-RPC: - [x] GraphQL: Partial error will be properly supported in GraphQL. Invalid fields will have error messages and valid fields will still be displayed normally - [ ] CLI: - [ ] Rust SDK: - [ ] Indexing Framework:
fix(sui-http): use explicit rustls::CryptoProvider (MystenLabs#25106) (… …MystenLabs#25147) If multiple crypto-provider related features are enabled on `rustls`, it will panic because it doesn't know how to pick a default one. We should not rely on the default, choosing instead fo pick an explicit provider. CI --- 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): - [ ] gRPC: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] Indexing Framework: ## 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): - [ ] gRPC: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] Indexing Framework:
Properly map user sigs to alias versions in checkpoint contents (Myst… …enLabs#25093) --- ## 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): - [ ] gRPC: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] Indexing Framework:
PreviousNext