Skip to content

Commit

Permalink
Execute sequenced certs serially in execution driver (#5788)
Browse files Browse the repository at this point in the history
* Execute sequenced certs serially in execution driver

* Just use a bool to indicate whether sequenced

* PR comments

* Prioritize sequenced over unsequenced when there are duplicates
  • Loading branch information
mystenmark authored Nov 3, 2022
1 parent 842fbd9 commit 264bc42
Show file tree
Hide file tree
Showing 4 changed files with 146 additions and 32 deletions.
28 changes: 21 additions & 7 deletions crates/sui-core/src/authority.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ use tracing::{debug, error, instrument, warn};
use typed_store::Map;

pub use authority_store::{
AuthorityStore, GatewayStore, ResolverWrapper, SuiDataStore, UpdateType,
AuthorityStore, GatewayStore, PendingDigest, ResolverWrapper, SuiDataStore, UpdateType,
};
use narwhal_config::{
Committee as ConsensusCommittee, WorkerCache as ConsensusWorkerCache,
Expand Down Expand Up @@ -1614,6 +1614,10 @@ impl AuthorityState {
.await
}

pub fn add_pending_sequenced_certificate(&self, cert: VerifiedCertificate) -> SuiResult {
self.add_pending_impl(vec![(*cert.digest(), Some(cert))], true)
}

/// Add a number of certificates to the pending transactions as well as the
/// certificates structure if they are not already executed.
/// Certificates are optional, and if not provided, they will be eventually
Expand All @@ -1622,11 +1626,24 @@ impl AuthorityState {
&self,
certs: Vec<(TransactionDigest, Option<VerifiedCertificate>)>,
) -> SuiResult<()> {
self.add_pending_impl(certs, false)
}

fn add_pending_impl(
&self,
certs: Vec<(TransactionDigest, Option<VerifiedCertificate>)>,
is_sequenced: bool,
) -> SuiResult {
self.node_sync_store
.batch_store_certs(certs.iter().filter_map(|(_, cert_opt)| cert_opt.clone()))?;

self.database
.add_pending_digests(certs.iter().map(|(digest, _)| *digest).collect())
self.database.add_pending_digests(
certs
.iter()
.map(|(seq_and_digest, _)| *seq_and_digest)
.collect(),
is_sequenced,
)
}

// Continually pop in-progress txes from the WAL and try to drive them to completion.
Expand Down Expand Up @@ -2314,10 +2331,7 @@ impl AuthorityState {
);

// Schedule the certificate for execution
self.add_pending_certificates(vec![(
*certificate.digest(),
Some(certificate.clone()),
)])?;
self.add_pending_sequenced_certificate(certificate.clone())?;

if certificate.contains_shared_object() {
self.database
Expand Down
13 changes: 8 additions & 5 deletions crates/sui-core/src/authority/authority_store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ pub type AuthorityStore = SuiDataStore<AuthoritySignInfo>;
pub type GatewayStore = SuiDataStore<EmptySignInfo>;

pub type InternalSequenceNumber = u64;
pub type PendingDigest = (bool /* is sequenced */, TransactionDigest);

pub struct CertLockGuard(LockGuard);

Expand Down Expand Up @@ -223,7 +224,11 @@ impl<S: Eq + Debug + Serialize + for<'de> Deserialize<'de>> SuiDataStore<S> {
/// index. If two instanced run concurrently, the indexes are guaranteed to not overlap
/// although some certificates may be included twice in the `pending_execution`, and
/// the same certificate may be written twice (but that is OK since it is valid.)
pub fn add_pending_digests(&self, digests: Vec<TransactionDigest>) -> SuiResult<()> {
pub fn add_pending_digests(
&self,
digests: Vec<TransactionDigest>,
is_sequenced: bool,
) -> SuiResult<()> {
let first_index = self
.next_pending_seq
.fetch_add(digests.len() as u64, Ordering::Relaxed);
Expand All @@ -234,7 +239,7 @@ impl<S: Eq + Debug + Serialize + for<'de> Deserialize<'de>> SuiDataStore<S> {
digests
.iter()
.enumerate()
.map(|(num, digest)| ((num as u64) + first_index, digest)),
.map(|(num, digest)| ((num as u64) + first_index, (is_sequenced, *digest))),
)?;
batch.write()?;

Expand All @@ -245,9 +250,7 @@ impl<S: Eq + Debug + Serialize + for<'de> Deserialize<'de>> SuiDataStore<S> {
}

/// Get all stored certificate digests
pub fn get_pending_digests(
&self,
) -> SuiResult<Vec<(InternalSequenceNumber, TransactionDigest)>> {
pub fn get_pending_digests(&self) -> SuiResult<Vec<(InternalSequenceNumber, PendingDigest)>> {
Ok(self.epoch_tables().pending_execution.iter().collect())
}

Expand Down
4 changes: 2 additions & 2 deletions crates/sui-core/src/authority/authority_store_tables.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// SPDX-License-Identifier: Apache-2.0

use super::{
authority_store::{InternalSequenceNumber, ObjectKey},
authority_store::{InternalSequenceNumber, ObjectKey, PendingDigest},
*,
};
use narwhal_executor::ExecutionIndices;
Expand Down Expand Up @@ -32,7 +32,7 @@ pub struct AuthorityEpochTables<S> {
/// reads this table and executes the certificates. The order is a hint as to their
/// causal dependencies. Note that there is no guarantee digests are unique. Once executed, and
/// effects are written the entry should be deleted.
pub(crate) pending_execution: DBMap<InternalSequenceNumber, TransactionDigest>,
pub(crate) pending_execution: DBMap<InternalSequenceNumber, PendingDigest>,

/// Hold the lock for shared objects. These locks are written by a single task: upon receiving a valid
/// certified transaction from consensus, the authority assigns a lock to each shared objects of the
Expand Down
133 changes: 115 additions & 18 deletions crates/sui-core/src/authority_active/execution_driver/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

use std::{collections::HashSet, sync::Arc};
use sui_types::{base_types::TransactionDigest, error::SuiResult, messages::VerifiedCertificate};
use tracing::{debug, info};
use tracing::{debug, error, info};

use crate::authority::AuthorityState;
use crate::authority::{AuthorityState, PendingDigest};
use crate::authority_client::AuthorityAPI;

use futures::{stream, StreamExt};
Expand Down Expand Up @@ -89,21 +89,33 @@ where
}
}

/// Reads all pending transactions as a block and executes them.
/// Returns whether all pending transactions succeeded.
async fn execute_pending<A>(active_authority: Arc<ActiveAuthority<A>>) -> SuiResult<bool>
where
A: AuthorityAPI + Send + Sync + 'static + Clone,
{
// Get the pending transactions
let pending_transactions = active_authority.state.database.get_pending_digests()?;
type PendingVec = Vec<(u64, PendingDigest)>;

fn sort_and_partition_pending_certs(
mut pending_transactions: PendingVec,
) -> (
PendingVec, // sequenced
PendingVec, // unsequenced
Vec<u64>, // duplicated indices, to be deleted
) {
// sort sequenced digests before unsequenced so that the deduplication below favors
// sequenced digests.
pending_transactions.sort_by(|(idx_a, (is_seq_a, _)), (idx_b, (is_seq_b, _))| {
match is_seq_b.cmp(is_seq_a) {
// when both are sequenced or unsequenced, sort by idx.
std::cmp::Ordering::Equal => idx_a.cmp(idx_b),
// otherwise sort sequenced before unsequenced
res => res,
}
});

// Before executing de-duplicate the list of pending trasnactions
let mut seen = HashSet::new();
let mut indexes_to_delete = Vec::new();
let pending_transactions: Vec<_> = pending_transactions

let (pending_sequenced, pending_transactions): (Vec<_>, Vec<_>) = pending_transactions
.into_iter()
.filter(|(idx, digest)| {
.filter(|(idx, (_, digest))| {
if seen.contains(digest) {
indexes_to_delete.push(*idx);
false
Expand All @@ -112,7 +124,63 @@ where
true
}
})
.collect();
.partition(|(_, (is_sequenced, _))| *is_sequenced);

debug!(
num_sequenced = ?pending_sequenced.len(),
num_unsequenced = ?pending_transactions.len()
);

(pending_sequenced, pending_transactions, indexes_to_delete)
}

#[test]
fn test_sort_and_partition_pending_certs() {
let tx1 = TransactionDigest::random();
let tx2 = TransactionDigest::random();
let tx3 = TransactionDigest::random();
let tx4 = TransactionDigest::random();

// partitioning works correctly.
assert_eq!(
sort_and_partition_pending_certs(vec![(0, (false, tx1)), (1, (true, tx2))]),
(vec![(1, (true, tx2))], vec![(0, (false, tx1))], vec![],)
);

// if certs are duplicated, but some are sequenced, the sequenced certs take priority.
assert_eq!(
sort_and_partition_pending_certs(vec![(0, (false, tx1)), (1, (true, tx1))]),
(vec![(1, (true, tx1))], vec![], vec![0],)
);

// sorting works correctly for both sequenced and unsequenced.
assert_eq!(
sort_and_partition_pending_certs(vec![
(2, (false, tx3)),
(0, (false, tx2)),
(4, (true, tx4)),
(1, (true, tx1))
]),
(
vec![(1, (true, tx1)), (4, (true, tx4))],
vec![(0, (false, tx2)), (2, (false, tx3))],
vec![],
)
);
}

/// Reads all pending transactions as a block and executes them.
/// Returns whether all pending transactions succeeded.
async fn execute_pending<A>(active_authority: Arc<ActiveAuthority<A>>) -> SuiResult<bool>
where
A: AuthorityAPI + Send + Sync + 'static + Clone,
{
// Get the pending transactions
let pending_transactions = active_authority.state.database.get_pending_digests()?;

let (pending_sequenced, pending_transactions, indexes_to_delete) =
sort_and_partition_pending_certs(pending_transactions);

active_authority
.state
.database
Expand All @@ -121,22 +189,51 @@ where
// Send them for execution
let epoch = active_authority.state.committee.load().epoch;
let sync_handle = active_authority.clone().node_sync_handle();

// Execute certs that have a sequencing index associated with them serially.
for (seq, (_, digest)) in pending_sequenced.iter() {
let mut result_stream = sync_handle
.handle_execution_request(epoch, std::iter::once(*digest))
.await?;

match result_stream.next().await.unwrap() {
Ok(_) => {
debug!(?seq, ?digest, "serial certificate execution complete");
active_authority
.state
.database
.remove_pending_digests(vec![*seq])
.tap_err(|err| {
error!(?seq, ?digest, "pending digest deletion failed: {}", err)
})?;
}
Err(err) => {
info!(
?seq,
?digest,
"serial certificate execution failed: {}",
err
);
}
}
}

let executed: Vec<_> = sync_handle
// map to extract digest
.handle_execution_request(
epoch,
pending_transactions.iter().map(|(_, digest)| *digest),
pending_transactions.iter().map(|(_, (_, digest))| *digest),
)
.await?
// zip results back together with seq
.zip(stream::iter(pending_transactions.iter()))
// filter out errors
.filter_map(|(result, (seq, digest))| async move {
.filter_map(|(result, (idx, digest))| async move {
result
.tap_err(|e| info!(?seq, ?digest, "certificate execution failed: {}", e))
.tap_ok(|_| debug!(?seq, ?digest, "certificate execution complete"))
.tap_err(|e| info!(?idx, ?digest, "certificate execution failed: {}", e))
.tap_ok(|_| debug!(?idx, ?digest, "certificate execution complete"))
.ok()
.map(|_| seq)
.map(|_| idx)
})
.collect()
.await;
Expand Down

1 comment on commit 264bc42

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark Reports:

  • Owned # Bench results �[0m�[0m�[1m�[32m Compiling�[0m proc-macro2 v1.0.47 �[0m�[0m�[1m�[32m Compiling�[0m unicode-ident v1.0.5 �[0m�[0m�[1m�[32m Compiling�[0m cfg-if v1.0.0 �[0m�[0m�[1m�[32m Compiling�[0m ppv-lite86 v0.2.16 �[0m�[0m�[1m�[32m Compiling�[0m regex-syntax v0.6.27 �[0m�[0m�[1m�[32m Compiling�[0m pin-project-lite v0.2.9 �[0m�[0m�[1m�[32m Compiling�[0m rustc-demangle v0.1.21 �[0m�[0m�[1m�[32m Compiling�[0m futures-core v0.3.24 �[0m�[0m�[1m�[32m Compiling�[0m crossbeam-utils v0.8.8 �[0m�[0m�[1m�[32m Compiling�[0m futures-sink v0.3.24 �[0m�[0m�[1m�[32m Compiling�[0m futures-channel v0.3.24 �[0m�[0m�[1m�[32m Compiling�[0m futures-task v0.3.24 �[0m�[0m�[1m�[32m Compiling�[0m futures-io v0.3.24 �[0m�[0m�[1m�[32m Compiling�[0m futures-util v0.3.24 �[0m�[0m�[1m�[32m Compiling�[0m pin-utils v0.1.0 �[0m�[0m�[1m�[32m Compiling�[0m opaque-debug v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m unicode-xid v0.2.4 �[0m�[0m�[1m�[32m Compiling�[0m unicode-segmentation v1.10.0 �[0m�[0m�[1m�[32m Compiling�[0m block-padding v0.2.1 �[0m�[0m�[1m�[32m Compiling�[0m unicode-width v0.1.10 �[0m�[0m�[1m�[32m Compiling�[0m byte-slice-cast v1.2.2 �[0m�[0m�[1m�[32m Compiling�[0m rustc-hex v2.1.0 �[0m�[0m�[1m�[32m Compiling�[0m ref-cast v1.0.12 �[0m�[0m�[1m�[32m Compiling�[0m async-trait v0.1.57 �[0m�[0m�[1m�[32m Compiling�[0m same-file v1.0.6 �[0m�[0m�[1m�[32m Compiling�[0m percent-encoding v2.2.0 �[0m�[0m�[1m�[32m Compiling�[0m ucd-trie v0.1.5 �[0m�[0m�[1m�[32m Compiling�[0m minimal-lexical v0.2.1 �[0m�[0m�[1m�[32m Compiling�[0m tower-service v0.3.2 �[0m�[0m�[1m�[32m Compiling�[0m pkg-config v0.3.25 �[0m�[0m�[1m�[32m Compiling�[0m rayon-core v1.9.3 �[0m�[0m�[1m�[32m Compiling�[0m try-lock v0.2.3 �[0m�[0m�[1m�[32m Compiling�[0m move-borrow-graph v0.0.1 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m wasm-bindgen-shared v0.2.83 �[0m�[0m�[1m�[32m Compiling�[0m time-macros v0.2.4 �[0m�[0m�[1m�[32m Compiling�[0m const-oid v0.9.0 �[0m�[0m�[1m�[32m Compiling�[0m wasm-bindgen v0.2.83 �[0m�[0m�[1m�[32m Compiling�[0m rustc-hash v1.1.0 �[0m�[0m�[1m�[32m Compiling�[0m openssl-probe v0.1.5 �[0m�[0m�[1m�[32m Compiling�[0m signal-hook v0.3.14 �[0m�[0m�[1m�[32m Compiling�[0m tower-layer v0.3.2 �[0m�[0m�[1m�[32m Compiling�[0m event-listener v2.5.3 �[0m�[0m�[1m�[32m Compiling�[0m iana-time-zone v0.1.51 �[0m�[0m�[1m�[32m Compiling�[0m unicode-bidi v0.3.8 �[0m�[0m�[1m�[32m Compiling�[0m unic-char-range v0.9.0 �[0m�[0m�[1m�[32m Compiling�[0m lexical-core v0.7.6 �[0m�[0m�[1m�[32m Compiling�[0m unic-common v0.9.0 �[0m�[0m�[1m�[32m Compiling�[0m foreign-types-shared v0.1.1 �[0m�[0m�[1m�[32m Compiling�[0m target-lexicon v0.12.4 �[0m�[0m�[1m�[32m Compiling�[0m crossbeam-queue v0.3.6 �[0m�[0m�[1m�[32m Compiling�[0m guppy-workspace-hack v0.1.0 �[0m�[0m�[1m�[32m Compiling�[0m data-encoding v2.3.2 �[0m�[0m�[1m�[32m Compiling�[0m http-range-header v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m native-tls v0.2.10 �[0m�[0m�[1m�[32m Compiling�[0m linked-hash-map v0.5.6 �[0m�[0m�[1m�[32m Compiling�[0m fiat-crypto v0.1.14 �[0m�[0m�[1m�[32m Compiling�[0m typed-arena v2.0.1 �[0m�[0m�[1m�[32m Compiling�[0m target-spec v1.2.0 �[0m�[0m�[1m�[32m Compiling�[0m integer-encoding v3.0.4 �[0m�[0m�[1m�[32m Compiling�[0m test-fuzz-internal v3.0.4 �[0m�[0m�[1m�[32m Compiling�[0m io-lifetimes v0.7.3 �[0m�[0m�[1m�[32m Compiling�[0m rust-ini v0.13.0 �[0m�[0m�[1m�[32m Compiling�[0m subtle-ng v2.5.0 �[0m�[0m�[1m�[32m Compiling�[0m oid-registry v0.6.0 �[0m�[0m�[1m�[32m Compiling�[0m debug-ignore v1.0.3 �[0m�[0m�[1m�[32m Compiling�[0m proc-macro2 v0.4.30 �[0m�[0m�[1m�[32m Compiling�[0m crc-catalog v2.1.0 �[0m�[0m�[1m�[32m Compiling�[0m unicode-xid v0.1.0 �[0m�[0m�[1m�[32m Compiling�[0m plotters-backend v0.3.4 �[0m�[0m�[1m�[32m Compiling�[0m test-fuzz-macro v3.0.4 �[0m�[0m�[1m�[32m Compiling�[0m test-fuzz-runtime v3.0.4 �[0m�[0m�[1m�[32m Compiling�[0m dyn-clone v1.0.9 �[0m�[0m�[1m�[32m Compiling�[0m predicates-core v1.0.3 �[0m�[0m�[1m�[32m Compiling�[0m symbolic-demangle v9.2.1 �[0m�[0m�[1m�[32m Compiling�[0m unsigned-varint v0.7.1 �[0m�[0m�[1m�[32m Compiling�[0m owo-colors v3.5.0 �[0m�[0m�[1m�[32m Compiling�[0m base-x v0.2.11 �[0m�[0m�[1m�[32m Compiling�[0m linux-raw-sys v0.0.46 �[0m�[0m�[1m�[32m Compiling�[0m normalize-line-endings v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m endian-type v0.1.2 �[0m�[0m�[1m�[32m Compiling�[0m bit-vec v0.6.3 �[0m�[0m�[1m�[32m Compiling�[0m test-fuzz v3.0.4 �[0m�[0m�[1m�[32m Compiling�[0m quick-error v1.2.3 �[0m�[0m�[1m�[32m Compiling�[0m quick-error v2.0.1 �[0m�[0m�[1m�[32m Compiling�[0m hmac-sha512 v0.1.9 �[0m�[0m�[1m�[32m Compiling�[0m hex-literal v0.3.4 �[0m�[0m�[1m�[32m Compiling�[0m shell-words v1.1.0 �[0m�[0m�[1m�[32m Compiling�[0m sharded-slab v0.1.4 �[0m�[0m�[1m�[32m Compiling�[0m tracing-core v0.1.30 �[0m�[0m�[1m�[32m Compiling�[0m twox-hash v1.6.3 �[0m�[0m�[1m�[32m Compiling�[0m num-format v0.4.3 �[0m�[0m�[1m�[32m Compiling�[0m rustls-pemfile v1.0.1 �[0m�[0m�[1m�[32m Compiling�[0m rustls-pemfile v0.2.1 �[0m�[0m�[1m�[32m Compiling�[0m generic-array v0.14.6 �[0m�[0m�[1m�[32m Compiling�[0m proc-macro-error-attr v1.0.4 �[0m�[0m�[1m�[32m Compiling�[0m proc-macro-error v1.0.4 �[0m�[0m�[1m�[32m Compiling�[0m foreign-types v0.3.2 �[0m�[0m�[1m�[32m Compiling�[0m unic-char-property v0.9.0 �[0m�[0m�[1m�[32m Compiling�[0m unic-ucd-version v0.9.0 �[0m�[0m�[1m�[32m Compiling�[0m async-lock v2.5.0 �[0m�[0m�[1m�[32m Compiling�[0m num-traits v0.2.15 �[0m�[0m�[1m�[32m Compiling�[0m num-integer v0.1.45 �[0m�[0m�[1m�[32m Compiling�[0m num-bigint v0.4.3 �[0m�[0m�[1m�[32m Compiling�[0m num-rational v0.4.1 �[0m�[0m�[1m�[32m Compiling�[0m num-iter v0.1.43 �[0m�[0m�[1m�[32m Compiling�[0m crossbeam-epoch v0.9.8 �[0m�[0m�[1m�[32m Compiling�[0m yaml-rust v0.4.5 �[0m�[0m�[1m�[32m Compiling�[0m nu-ansi-term v0.46.0 �[0m�[0m�[1m�[32m Compiling�[0m plotters-svg v0.3.3 �[0m�[0m�[1m�[32m Compiling�[0m predicates-tree v1.0.5 �[0m�[0m�[1m�[32m Compiling�[0m bit-set v0.5.3 �[0m�[0m�[1m�[32m Compiling�[0m clang-sys v1.4.0 �[0m�[0m�[1m�[32m Compiling�[0m rustls-native-certs v0.6.2 �[0m�[0m�[1m�[32m Compiling�[0m unic-ucd-segment v0.9.0 �[0m�[0m�[1m�[32m Compiling�[0m tracing-subscriber v0.2.25 �[0m�[0m�[1m�[32m Compiling�[0m regex-automata v0.1.10 �[0m�[0m�[1m�[32m Compiling�[0m crossbeam-channel v0.5.6 �[0m�[0m�[1m�[32m Compiling�[0m unicode-normalization v0.1.22 �[0m�[0m�[1m�[32m Compiling�[0m aho-corasick v0.7.19 �[0m�[0m�[1m�[32m Compiling�[0m csv-core v0.1.10 �[0m�[0m�[1m�[32m Compiling�[0m quick-xml v0.23.1 �[0m�[0m�[1m�[32m Compiling�[0m unic-segment v0.9.0 �[0m�[0m�[1m�[32m Compiling�[0m cfg-expr v0.11.0 �[0m�[0m�[1m�[32m Compiling�[0m crossbeam-deque v0.8.2 �[0m�[0m�[1m�[32m Compiling�[0m criterion-plot v0.4.5 �[0m�[0m�[1m�[32m Compiling�[0m colored-diff v0.2.3 �[0m�[0m�[1m�[32m Compiling�[0m signal-hook-registry v1.4.0 �[0m�[0m�[1m�[32m Compiling�[0m dirs-sys-next v0.1.2 �[0m�[0m�[1m�[32m Compiling�[0m dirs-sys v0.3.7 �[0m�[0m�[1m�[32m Compiling�[0m wait-timeout v0.2.0 �[0m�[0m�[1m�[32m Compiling�[0m sized-chunks v0.6.5 �[0m�[0m�[1m�[32m Compiling�[0m dirs-next v2.0.0 �[0m�[0m�[1m�[32m Compiling�[0m rusty-fork v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m num-complex v0.4.2 �[0m�[0m�[1m�[32m Compiling�[0m num-traits v0.1.43 �[0m�[0m�[1m�[32m Compiling�[0m ordered-float v1.1.1 �[0m�[0m�[1m�[32m Compiling�[0m ordered-float v2.10.0 �[0m�[0m�[1m�[32m Compiling�[0m float-cmp v0.9.0 �[0m�[0m�[1m�[32m Compiling�[0m futures-intrusive v0.4.0 �[0m�[0m�[1m�[32m Compiling�[0m strip-ansi-escapes v0.1.1 �[0m�[0m�[1m�[32m Compiling�[0m parse-zoneinfo v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m serde-hjson v0.9.1 �[0m�[0m�[1m�[32m Compiling�[0m rusticata-macros v4.1.0 �[0m�[0m�[1m�[32m Compiling�[0m openssl-sys v0.9.76 �[0m�[0m�[1m�[32m Compiling�[0m bzip2-sys v0.1.11+1.0.8 �[0m�[0m�[1m�[32m Compiling�[0m libz-sys v1.1.8 �[0m�[0m�[1m�[32m Compiling�[0m zstd-sys v2.0.1+zstd.1.5.2 �[0m�[0m�[1m�[32m Compiling�[0m secp256k1-sys v0.6.1 �[0m�[0m�[1m�[32m Compiling�[0m libsqlite3-sys v0.25.1 �[0m�[0m�[1m�[32m Compiling�[0m protobuf-src v1.1.0+21.5 �[0m�[0m�[1m�[32m Compiling�[0m jemalloc-sys v0.5.2+5.3.0-patched �[0m�[0m�[1m�[32m Compiling�[0m fixed-hash v0.7.0 �[0m�[0m�[1m�[32m Compiling�[0m fd-lock v3.0.6 �[0m�[0m�[1m�[32m Compiling�[0m chrono-tz-build v0.0.3 �[0m�[0m�[1m�[32m Compiling�[0m unicode-linebreak v0.1.4 �[0m�[0m�[1m�[32m Compiling�[0m symbolic-common v9.2.1 �[0m�[0m�[1m�[32m Compiling�[0m chrono-tz v0.6.3 �[0m�[0m�[1m�[32m Compiling�[0m ark-std v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m anemo-build v0.0.0 (https://github.com/mystenlabs/anemo.git?rev=87d60b249a9954775a95790e3bc9ca1a0df7969f#87d60b24) �[0m�[0m�[1m�[32m Compiling�[0m proptest-derive v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m webpki-roots v0.22.5 �[0m�[0m�[1m�[32m Compiling�[0m thiserror-impl v1.0.37 �[0m�[0m�[1m�[32m Compiling�[0m tracing-attributes v0.1.23 �[0m�[0m�[1m�[32m Compiling�[0m tokio-macros v1.8.0 �[0m�[0m�[1m�[32m Compiling�[0m futures-macro v0.3.24 �[0m�[0m�[1m�[32m Compiling�[0m impl-trait-for-tuples v0.2.2 �[0m�[0m�[1m�[32m Compiling�[0m ref-cast-impl v1.0.12 �[0m�[0m�[1m�[32m Compiling�[0m pin-project-internal v1.0.12 �[0m�[0m�[1m�[32m Compiling�[0m prost-derive v0.11.0 �[0m�[0m�[1m�[32m Compiling�[0m ark-serialize-derive v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m ark-ff-asm v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m ark-ff-macros v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m openssl-macros v0.1.0 �[0m�[0m�[1m�[32m Compiling�[0m async-stream-impl v0.3.3 �[0m�[0m�[1m�[32m Compiling�[0m asn1-rs-impl v0.1.0 �[0m�[0m�[1m�[32m Compiling�[0m asn1-rs-derive v0.4.0 �[0m�[0m�[1m�[32m Compiling�[0m data-encoding-macro-internal v0.1.10 �[0m�[0m�[1m�[32m Compiling�[0m unzip-n v0.1.2 �[0m�[0m�[1m�[32m Compiling�[0m fastcrypto-derive v0.1.2 (https://github.com/MystenLabs/fastcrypto?rev=bbb2d02a7a64c27314721748cc4d015b00490dbe#bbb2d02a) �[0m�[0m�[1m�[32m Compiling�[0m structopt-derive v0.4.18 �[0m�[0m�[1m�[32m Compiling�[0m mysten-util-mem-derive v0.1.0 (https://github.com/MystenLabs/mysten-infra/?rev=87c2cf04f4d9c7ef1f157ddbe68af15269ae9424#87c2cf04) �[0m�[0m�[1m�[32m Compiling�[0m tracing-test-macro v0.2.3 �[0m�[0m�[1m�[32m Compiling�[0m prost-derive v0.10.1 �[0m�[0m�[1m�[32m Compiling�[0m async-recursion v1.0.0 �[0m�[0m�[1m�[32m Compiling�[0m name-variant v0.1.0 �[0m�[0m�[1m�[32m Compiling�[0m rustyline-derive v0.7.0 �[0m�[0m�[1m�[32m Compiling�[0m derive-syn-parse v0.1.5 �[0m�[0m�[1m�[32m Compiling�[0m librocksdb-sys v0.8.0+7.4.4 �[0m�[0m�[1m�[32m Compiling�[0m data-encoding-macro v0.1.12 �[0m�[0m�[1m�[32m Compiling�[0m async-stream v0.3.3 �[0m�[0m�[1m�[32m Compiling�[0m pin-project v1.0.12 �[0m�[0m�[1m�[32m Compiling�[0m asn1-rs v0.5.1 �[0m�[0m�[1m�[32m Compiling�[0m named-lock v0.2.0 �[0m�[0m�[1m�[32m Compiling�[0m semver-parser v0.10.2 �[0m�[0m�[1m�[32m Compiling�[0m der-parser v8.1.0 �[0m�[0m�[1m�[32m Compiling�[0m x509-parser v0.14.0 �[0m�[0m�[1m�[32m Compiling�[0m ark-ff v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m futures-executor v0.3.24 �[0m�[0m�[1m�[32m Compiling�[0m impl-serde v0.3.2 �[0m�[0m�[1m�[32m Compiling�[0m move-symbol-pool v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m codespan-reporting v0.11.1 �[0m�[0m�[1m�[32m Compiling�[0m cargo-platform v0.1.2 �[0m�[0m�[1m�[32m Compiling�[0m serde-reflection v0.3.6 �[0m�[0m�[1m�[32m Compiling�[0m serde-value v0.7.0 �[0m�[0m�[1m�[32m Compiling�[0m arc-swap v1.5.1 �[0m�[0m�[1m�[32m Compiling�[0m duration-str v0.4.0 �[0m�[0m�[1m�[32m Compiling�[0m serde-name v0.2.1 �[0m�[0m�[1m�[32m Compiling�[0m wasm-bindgen-backend v0.2.83 �[0m�[0m�[1m�[32m Compiling�[0m tracing-log v0.1.3 �[0m�[0m�[1m�[32m Compiling�[0m tracing-futures v0.2.5 �[0m�[0m�[1m�[32m Compiling�[0m ying-profiler v0.1.0 (https://github.com/velvia/ying-profiler#d1763c71) �[0m�[0m�[1m�[32m Compiling�[0m tracing-subscriber v0.3.15 �[0m�[0m�[1m�[32m Compiling�[0m block-buffer v0.9.0 �[0m�[0m�[1m�[32m Compiling�[0m crypto-common v0.1.6 �[0m�[0m�[1m�[32m Compiling�[0m block-buffer v0.10.3 �[0m�[0m�[1m�[32m Compiling�[0m block-padding v0.3.2 �[0m�[0m�[1m�[32m Compiling�[0m crypto-mac v0.8.0 �[0m�[0m�[1m�[32m Compiling�[0m crypto-bigint v0.4.9 �[0m�[0m�[1m�[32m Compiling�[0m signal-hook-mio v0.2.3 �[0m�[0m�[1m�[32m Compiling�[0m ark-serialize v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m curve25519-dalek-fiat v0.1.0 �[0m�[0m�[1m�[32m Compiling�[0m curve25519-dalek-ng v4.1.1 �[0m�[0m�[1m�[32m Compiling�[0m curve25519-dalek v3.2.0 �[0m�[0m�[1m�[32m Compiling�[0m sha-1 v0.9.8 �[0m�[0m�[1m�[32m Compiling�[0m universal-hash v0.5.0 �[0m�[0m�[1m�[32m Compiling�[0m prost-types v0.11.1 �[0m�[0m�[1m�[32m Compiling�[0m sha-1 v0.10.0 �[0m�[0m�[1m�[32m Compiling�[0m wasm-bindgen-macro-support v0.2.83 �[0m�[0m�[1m�[32m Compiling�[0m ed25519-dalek-fiat v0.1.0 �[0m�[0m�[1m�[32m Compiling�[0m http-body v0.4.5 �[0m�[0m�[1m�[32m Compiling�[0m tiny-bip39 v1.0.0 �[0m�[0m�[1m�[32m Compiling�[0m elliptic-curve v0.12.3 �[0m�[0m�[1m�[32m Compiling�[0m ed25519-consensus v2.0.1 �[0m�[0m�[1m�[32m Compiling�[0m jsonrpsee-types v0.15.1 �[0m�[0m�[1m�[32m Compiling�[0m proc-macro-crate v1.2.1 �[0m�[0m�[1m�[32m Compiling�[0m guppy-summaries v0.7.1 �[0m�[0m�[1m�[32m Compiling�[0m comfy-table v6.1.0 �[0m�[0m�[1m�[32m Compiling�[0m bytecode-interpreter-crypto v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m axum-core v0.2.8 �[0m�[0m�[1m�[32m Compiling�[0m aes-gcm v0.10.1 �[0m�[0m�[1m�[32m Compiling�[0m tracing-appender v0.2.2 �[0m�[0m�[1m�[32m Compiling�[0m tracing-bunyan-formatter v0.3.3 �[0m�[0m�[1m�[32m Compiling�[0m tracing-chrome v0.6.0 �[0m�[0m�[1m�[32m Compiling�[0m tracing-test v0.2.3 �[0m�[0m�[1m�[32m Compiling�[0m parity-scale-codec-derive v2.3.1 �[0m�[0m�[1m�[32m Compiling�[0m multihash-derive v0.8.0 �[0m�[0m�[1m�[32m Compiling�[0m jsonrpsee-proc-macros v0.15.1 �[0m�[0m�[1m�[32m Compiling�[0m prost-build v0.11.1 �[0m�[0m�[1m�[32m Compiling�[0m wasm-bindgen-macro v0.2.83 �[0m�[0m�[1m�[32m Compiling�[0m quinn-proto v0.8.4 �[0m�[0m�[1m�[32m Compiling�[0m tonic-build v0.8.2 �[0m�[0m�[1m�[32m Compiling�[0m libtest-mimic v0.5.2 �[0m�[0m�[1m�[32m Compiling�[0m datatest-stable v0.1.3 �[0m�[0m�[1m�[32m Compiling�[0m sui-network v0.0.0 (/home/runner/work/sui/sui/crates/sui-network) �[0m�[0m�[1m�[32m Compiling�[0m js-sys v0.3.60 �[0m�[0m�[1m�[32m Compiling�[0m parity-scale-codec v2.3.1 �[0m�[0m�[1m�[32m Compiling�[0m tokio-util v0.7.4 �[0m�[0m�[1m�[32m Compiling�[0m tokio-rustls v0.23.4 �[0m�[0m�[1m�[32m Compiling�[0m tokio-io-timeout v1.2.0 �[0m�[0m�[1m�[32m Compiling�[0m tokio-native-tls v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m tokio-retry v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m sqlx-rt v0.6.2 (https://github.com/huitseeker/sqlx?branch=update_libsqlite3#fa4613e7) �[0m�[0m�[1m�[32m Compiling�[0m tokio-stream v0.1.11 �[0m�[0m�[1m�[32m Compiling�[0m quinn-udp v0.1.3 �[0m�[0m�[1m�[32m Compiling�[0m impl-codec v0.5.1 �[0m�[0m�[1m�[32m Compiling�[0m primitive-types v0.10.1 �[0m�[0m�[1m�[32m Compiling�[0m sqlx-core v0.6.2 (https://github.com/huitseeker/sqlx?branch=update_libsqlite3#fa4613e7) �[0m�[0m�[1m�[32m Compiling�[0m typed-store-derive v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m move-core-types v0.0.4 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m opentelemetry-semantic-conventions v0.9.0 �[0m�[0m�[1m�[32m Compiling�[0m tracing-opentelemetry v0.17.4 �[0m�[0m�[1m�[32m Compiling�[0m gloo-timers v0.2.4 �[0m�[0m�[1m�[32m Compiling�[0m wasm-bindgen-futures v0.4.33 �[0m�[0m�[1m�[32m Compiling�[0m web-sys v0.3.60 �[0m�[0m�[1m�[32m Compiling�[0m tower-http v0.3.4 �[0m�[0m�[1m�[32m Compiling�[0m opentelemetry-jaeger v0.16.0 �[0m�[0m�[1m�[32m Compiling�[0m opentelemetry-semantic-conventions v0.10.0 �[0m�[0m�[1m�[32m Compiling�[0m tracing-opentelemetry v0.18.0 �[0m�[0m�[1m�[32m Compiling�[0m futures-timer v3.0.2 �[0m�[0m�[1m�[32m Compiling�[0m move-binary-format v0.0.3 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-command-line-common v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m opentelemetry-jaeger v0.17.0 �[0m�[0m�[1m�[32m Compiling�[0m telemetry-subscribers v0.1.0 �[0m�[0m�[1m�[32m Compiling�[0m move-ir-types v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m anemo-tower v0.0.0 (https://github.com/mystenlabs/anemo.git?rev=87d60b249a9954775a95790e3bc9ca1a0df7969f#87d60b24) �[0m�[0m�[1m�[32m Compiling�[0m move-ir-to-bytecode-syntax v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m ark-ec v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m ark-relations v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m move-bytecode-verifier v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-bytecode-source-map v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-read-write-set-types v0.0.3 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-vm-types v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-bytecode-utils v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m ark-snark v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m move-ir-to-bytecode v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-coverage v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-resource-viewer v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m read-write-set-dynamic v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m ark-bls12-377 v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m ark-crypto-primitives v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m move-vm-runtime v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-vm-test-utils v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m ark-ed-on-cp6-782 v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m gloo-utils v0.1.5 �[0m�[0m�[1m�[32m Compiling�[0m ark-ed-on-bw6-761 v0.3.0 �[0m�[0m�[1m�[32m Compiling�[0m move-compiler v0.0.1 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-ir-compiler v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m gloo-net v0.2.4 �[0m�[0m�[1m�[32m Compiling�[0m bls-crypto v0.2.0 (https://github.com/huitseeker/celo-bls-snark-rs?branch=updates-2-with-parallelism-toggle#78f379fe) �[0m�[0m�[1m�[32m Compiling�[0m move-table-extension v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m jsonrpsee-core v0.15.1 �[0m�[0m�[1m�[32m Compiling�[0m hyper-timeout v0.4.1 �[0m�[0m�[1m�[32m Compiling�[0m hyper-tls v0.5.0 �[0m�[0m�[1m�[32m Compiling�[0m hyper-rustls v0.23.0 �[0m�[0m�[1m�[32m Compiling�[0m axum-server v0.4.2 �[0m�[0m�[1m�[32m Compiling�[0m sqlx-macros v0.6.2 (https://github.com/huitseeker/sqlx?branch=update_libsqlite3#fa4613e7) �[0m�[0m�[1m�[32m Compiling�[0m mysten-util-mem v0.11.0 (https://github.com/MystenLabs/mysten-infra/?rev=87c2cf04f4d9c7ef1f157ddbe68af15269ae9424#87c2cf04) �[0m�[0m�[1m�[32m Compiling�[0m jsonrpsee-client-transport v0.15.1 �[0m�[0m�[1m�[32m Compiling�[0m jsonrpsee-http-client v0.15.1 �[0m�[0m�[1m�[32m Compiling�[0m jsonrpsee-http-server v0.15.1 �[0m�[0m�[1m�[32m Compiling�[0m jsonrpsee-ws-server v0.15.1 �[0m�[0m�[1m�[32m Compiling�[0m jsonrpsee-ws-client v0.15.1 �[0m�[0m�[1m�[32m Compiling�[0m jsonrpsee-wasm-client v0.15.1 �[0m�[0m�[1m�[32m Compiling�[0m nexlint v0.1.0 (https://github.com/nextest-rs/nexlint.git?rev=5926141c20414814290bb1b04bd3b2238bbbc90e#5926141c) �[0m�[0m�[1m�[32m Compiling�[0m nexlint-lints v0.1.0 (https://github.com/nextest-rs/nexlint.git?rev=5926141c20414814290bb1b04bd3b2238bbbc90e#5926141c) �[0m�[0m�[1m�[32m Compiling�[0m console-api v0.4.0 �[0m�[0m�[1m�[32m Compiling�[0m tonic-health v0.7.1 �[0m�[0m�[1m�[32m Compiling�[0m move-disassembler v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m mysten-network v0.2.0 (https://github.com/MystenLabs/mysten-infra.git?rev=62dd8c9c4aa0f5ed2c243546d159d9cf2816f3d9#62dd8c9c) �[0m�[0m�[1m�[32m Compiling�[0m move-model v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-bytecode-viewer v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m console-subscriber v0.1.8 �[0m�[0m�[1m�[32m Compiling�[0m telemetry-subscribers v0.2.0 �[0m�[0m�[1m�[32m Compiling�[0m move-stackless-bytecode v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-docgen v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-abigen v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-errmapgen v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-package v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m jemalloc-ctl v0.5.0 �[0m�[0m�[1m�[32m Compiling�[0m move-prover-boogie-backend v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-stackless-bytecode-interpreter v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m read-write-set v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-prover v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-stdlib v0.1.1 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-unit-test v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-types v0.1.0 (/home/runner/work/sui/sui/narwhal/types) �[0m�[0m�[1m�[32m Compiling�[0m move-cli v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m move-transactional-test-runner v0.1.0 (https://github.com/move-language/move?rev=be52c7118aeb94fbbfa12590e420a75e8ddfec93#be52c711) �[0m�[0m�[1m�[32m Compiling�[0m typed-store v0.4.0 �[0m�[0m�[1m�[32m Compiling�[0m workspace-hack v0.1.0 (/home/runner/work/sui/sui/crates/workspace-hack) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-crypto v0.1.0 (/home/runner/work/sui/sui/narwhal/crypto) �[0m�[0m�[1m�[32m Compiling�[0m sui-metrics v0.7.0 (/home/runner/work/sui/sui/crates/sui-metrics) �[0m�[0m�[1m�[32m Compiling�[0m sui-cost-tables v0.1.0 (/home/runner/work/sui/sui/crates/sui-cost-tables) �[0m�[0m�[1m�[32m Compiling�[0m sui-open-rpc v0.0.0 (/home/runner/work/sui/sui/crates/sui-open-rpc) �[0m�[0m�[1m�[32m Compiling�[0m sui-telemetry v0.1.0 (/home/runner/work/sui/sui/crates/sui-telemetry) �[0m�[0m�[1m�[32m Compiling�[0m sui-macros v0.7.0 (/home/runner/work/sui/sui/crates/sui-macros) �[0m�[0m�[1m�[32m Compiling�[0m sui-open-rpc-macros v0.1.0 (/home/runner/work/sui/sui/crates/sui-open-rpc-macros) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-dag v0.1.0 (/home/runner/work/sui/sui/narwhal/dag) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-config v0.1.0 (/home/runner/work/sui/sui/narwhal/config) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-storage v0.1.0 (/home/runner/work/sui/sui/narwhal/storage) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-network v0.1.0 (/home/runner/work/sui/sui/narwhal/network) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-consensus v0.1.0 (/home/runner/work/sui/sui/narwhal/consensus) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-primary v0.1.0 (/home/runner/work/sui/sui/narwhal/primary) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-executor v0.1.0 (/home/runner/work/sui/sui/narwhal/executor) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-worker v0.1.0 (/home/runner/work/sui/sui/narwhal/worker) �[0m�[0m�[1m�[32m Compiling�[0m sui-types v0.1.0 (/home/runner/work/sui/sui/crates/sui-types) �[0m�[0m�[1m�[32m Compiling�[0m narwhal-node v0.1.0 (/home/runner/work/sui/sui/narwhal/node) �[0m�[0m�[1m�[32m Compiling�[0m sui-verifier v0.1.0 (/home/runner/work/sui/sui/crates/sui-verifier) �[0m�[0m�[1m�[32m Compiling�[0m sui-keys v0.0.0 (/home/runner/work/sui/sui/crates/sui-keys) �[0m�[0m�[1m�[32m Compiling�[0m sui-framework-build v0.0.0 (/home/runner/work/sui/sui/crates/sui-framework-build) �[0m�[0m�[1m�[32m Compiling�[0m sui-json v0.0.0 (/home/runner/work/sui/sui/crates/sui-json) �[0m�[0m�[1m�[32m Compiling�[0m sui-json-rpc-types v0.0.0 (/home/runner/work/sui/sui/crates/sui-json-rpc-types) �[0m�[0m�[1m�[32m Compiling�[0m sui-framework v0.1.0 (/home/runner/work/sui/sui/crates/sui-framework) �[0m�[0m�[1m�[32m Compiling�[0m sui-storage v0.1.0 (/home/runner/work/sui/sui/crates/sui-storage) �[0m�[0m�[1m�[32m Compiling�[0m sui-adapter v0.1.0 (/home/runner/work/sui/sui/crates/sui-adapter) �[0m�[0m�[1m�[32m Compiling�[0m sui-simulator v0.7.0 (/home/runner/work/sui/sui/crates/sui-simulator) �[0m�[0m�[1m�[32m Compiling�[0m sui-config v0.0.0 (/home/runner/work/sui/sui/crates/sui-config) �[0m�[0m�[1m�[32m Compiling�[0m sui-transaction-builder v0.0.0 (/home/runner/work/sui/sui/crates/sui-transaction-builder) �[0m�[0m�[1m�[32m Compiling�[0m sui-core v0.15.0 (/home/runner/work/sui/sui/crates/sui-core) �[0m�[0m�[1m�[32m Compiling�[0m sui-cost v0.1.0 (/home/runner/work/sui/sui/crates/sui-cost) �[0m�[0m�[1m�[32m Compiling�[0m sui-json-rpc v0.0.0 (/home/runner/work/sui/sui/crates/sui-json-rpc) �[0m�[0m�[1m�[32m Compiling�[0m sui-node v0.15.0 (/home/runner/work/sui/sui/crates/sui-node) �[0m�[0m�[1m�[32m Compiling�[0m sui-sdk v0.15.0 (/home/runner/work/sui/sui/crates/sui-sdk) �[0m�[0m�[1m�[32m Compiling�[0m sui-swarm v0.0.0 (/home/runner/work/sui/sui/crates/sui-swarm) �[0m�[0m�[1m�[32m Compiling�[0m test-utils v0.1.0 (/home/runner/work/sui/sui/crates/test-utils) �[0m�[0m�[1m�[32m Compiling�[0m sui-benchmark v0.0.0 (/home/runner/work/sui/sui/crates/sui-benchmark) �[0m�[0m�[1m�[32m Finished�[0m dev [unoptimized + debuginfo] target(s) in 3m 49s �[0m�[0m�[1m�[32m Running�[0m target/debug/stress --log-path /tmp/stress.log --num-client-threads 10 --num-server-threads 24 --num-transfer-accounts 2 bench --target-qps 100 --num-workers 10 --transfer-object 100 --run-duration 60s Benchmark Report: +-------------+-----+--------+-----+-----+-----+-----+-----+-----+-------+-----+ | duration(s) | tps | error% | min | p25 | p50 | p75 | p90 | p99 | p99.9 | max | +==============================================================================+ | 60 | 99 | 0 | 115 | 210 | 257 | 315 | 329 | 361 | 375 | 385 |
  • Shared # Bench results �[0m�[0m�[1m�[32m Finished�[0m dev [unoptimized + debuginfo] target(s) in 0.70s �[0m�[0m�[1m�[32m Running�[0m target/debug/stress --log-path /tmp/stress.log --num-client-threads 10 --num-server-threads 24 --num-transfer-accounts 2 bench --target-qps 100 --num-workers 10 --shared-counter 100 --run-duration 60s Benchmark Report: +-------------+-----+--------+-----+-----+-----+-----+-----+------+-------+------+ | duration(s) | tps | error% | min | p25 | p50 | p75 | p90 | p99 | p99.9 | max | +================================================================================+ | 60 | 99 | 0 | 120 | 587 | 667 | 763 | 855 | 1039 | 1143 | 1175 |

Please sign in to comment.