From 966af7a3849325ccf3ca2c879e21650f92ccfe59 Mon Sep 17 00:00:00 2001 From: buffalu <85544055+buffalu@users.noreply.github.com> Date: Mon, 11 Dec 2023 13:25:24 -0600 Subject: [PATCH 1/2] Add Blockhash Metrics to Bundle Committer (#500) --- .github/workflows/cargo.yml | 52 ++++++++++++++++++ .../workflows/downstream-project-anchor.yml | 55 +++++++++++++++++++ core/src/bundle_stage/bundle_consumer.rs | 6 ++ core/src/bundle_stage/committer.rs | 7 +-- 4 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/cargo.yml create mode 100644 .github/workflows/downstream-project-anchor.yml diff --git a/.github/workflows/cargo.yml b/.github/workflows/cargo.yml new file mode 100644 index 0000000000..9a957759fa --- /dev/null +++ b/.github/workflows/cargo.yml @@ -0,0 +1,52 @@ +name: Cargo + +on: + push: + branches: + - master + - v[0-9]+.[0-9]+ + pull_request: + branches: + - master + - v[0-9]+.[0-9]+ + paths: + - "**.rs" + - "**/Cargo.toml" + - "**/Cargo.lock" + - ".github/scripts/cargo-clippy-before-script.sh" + - ".github/workflows/cargo.yml" + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +env: + SHELL: /bin/bash + SCCACHE_GHA_ENABLED: "true" + RUSTC_WRAPPER: "sccache" + +jobs: + clippy: + strategy: + matrix: + os: + - macos-latest + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + with: + submodules: 'recursive' + + - uses: mozilla-actions/sccache-action@v0.0.3 + with: + version: "v0.5.4" + + - shell: bash + run: .github/scripts/cargo-clippy-before-script.sh ${{ runner.os }} + + - shell: bash + run: | + source ci/rust-version.sh all + rustup component add clippy --toolchain "$rust_stable" + rustup component add clippy --toolchain "$rust_nightly" + scripts/cargo-clippy.sh diff --git a/.github/workflows/downstream-project-anchor.yml b/.github/workflows/downstream-project-anchor.yml new file mode 100644 index 0000000000..2aadbf5cc2 --- /dev/null +++ b/.github/workflows/downstream-project-anchor.yml @@ -0,0 +1,55 @@ +name: Downstream Project - Anchor + +on: + push: + branches: + - master + - v[0-9]+.[0-9]+ + pull_request: + branches: + - master + - v[0-9]+.[0-9]+ + paths: + - "**.rs" + - "Cargo.toml" + - "Cargo.lock" + - "cargo-build-bpf" + - "cargo-test-bpf" + - "cargo-build-sbf" + - "cargo-test-sbf" + - ".github/workflows/downstream-project-anchor.yml" + workflow_call: + inputs: + branch: + required: false + type: string + default: "master" + +env: + SHELL: /bin/bash + SCCACHE_GHA_ENABLED: "true" + RUSTC_WRAPPER: "sccache" + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + version: ["v0.29.0"] + steps: + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + + - shell: bash + run: | + .github/scripts/purge-ubuntu-runner.sh + + - uses: mozilla-actions/sccache-action@v0.0.3 + with: + version: "v0.5.4" + + - shell: bash + run: | + source .github/scripts/downstream-project-spl-install-deps.sh + ./scripts/build-downstream-anchor-projects.sh ${{ matrix.version }} diff --git a/core/src/bundle_stage/bundle_consumer.rs b/core/src/bundle_stage/bundle_consumer.rs index 83f3619fd6..dc9fcc1e64 100644 --- a/core/src/bundle_stage/bundle_consumer.rs +++ b/core/src/bundle_stage/bundle_consumer.rs @@ -687,6 +687,10 @@ impl BundleConsumer { let (freeze_lock, freeze_lock_us) = measure_us!(bank_start.working_bank.freeze_lock()); execute_and_commit_timings.freeze_lock_us = freeze_lock_us; + let (last_blockhash, lamports_per_signature) = bank_start + .working_bank + .last_blockhash_and_lamports_per_signature(); + let ( RecordTransactionsSummary { result: record_transactions_result, @@ -724,6 +728,8 @@ impl BundleConsumer { // note: execute_and_commit_timings.commit_us handled inside this function let (commit_us, commit_bundle_details) = committer.commit_bundle( &mut bundle_execution_results, + last_blockhash, + lamports_per_signature, starting_transaction_index, &bank_start.working_bank, &mut execute_and_commit_timings, diff --git a/core/src/bundle_stage/committer.rs b/core/src/bundle_stage/committer.rs index ae87c25aaf..a1bbc36e09 100644 --- a/core/src/bundle_stage/committer.rs +++ b/core/src/bundle_stage/committer.rs @@ -15,7 +15,7 @@ use { prioritization_fee_cache::PrioritizationFeeCache, vote_sender_types::ReplayVoteSender, }, - solana_sdk::{saturating_add_assign, transaction::SanitizedTransaction}, + solana_sdk::{hash::Hash, saturating_add_assign, transaction::SanitizedTransaction}, solana_transaction_status::{ token_balances::{TransactionTokenBalances, TransactionTokenBalancesSet}, PreBalanceInfo, @@ -58,13 +58,12 @@ impl Committer { pub(crate) fn commit_bundle<'a>( &self, bundle_execution_output: &'a mut LoadAndExecuteBundleOutput<'a>, + last_blockhash: Hash, + lamports_per_signature: u64, mut starting_transaction_index: Option, bank: &Arc, execute_and_commit_timings: &mut LeaderExecuteAndCommitTimings, ) -> (u64, CommitBundleDetails) { - let (last_blockhash, lamports_per_signature) = - bank.last_blockhash_and_lamports_per_signature(); - let transaction_output = bundle_execution_output.bundle_transaction_results_mut(); let (commit_transaction_details, commit_times): (Vec<_>, Vec<_>) = transaction_output From 76524413d21584426aaf7a6614b92693fb746ca2 Mon Sep 17 00:00:00 2001 From: Lucas B Date: Mon, 11 Dec 2023 13:28:43 -0600 Subject: [PATCH 2/2] remove --- .github/workflows/cargo.yml | 52 ------------------ .../workflows/downstream-project-anchor.yml | 55 ------------------- 2 files changed, 107 deletions(-) delete mode 100644 .github/workflows/cargo.yml delete mode 100644 .github/workflows/downstream-project-anchor.yml diff --git a/.github/workflows/cargo.yml b/.github/workflows/cargo.yml deleted file mode 100644 index 9a957759fa..0000000000 --- a/.github/workflows/cargo.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Cargo - -on: - push: - branches: - - master - - v[0-9]+.[0-9]+ - pull_request: - branches: - - master - - v[0-9]+.[0-9]+ - paths: - - "**.rs" - - "**/Cargo.toml" - - "**/Cargo.lock" - - ".github/scripts/cargo-clippy-before-script.sh" - - ".github/workflows/cargo.yml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -env: - SHELL: /bin/bash - SCCACHE_GHA_ENABLED: "true" - RUSTC_WRAPPER: "sccache" - -jobs: - clippy: - strategy: - matrix: - os: - - macos-latest - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - - uses: mozilla-actions/sccache-action@v0.0.3 - with: - version: "v0.5.4" - - - shell: bash - run: .github/scripts/cargo-clippy-before-script.sh ${{ runner.os }} - - - shell: bash - run: | - source ci/rust-version.sh all - rustup component add clippy --toolchain "$rust_stable" - rustup component add clippy --toolchain "$rust_nightly" - scripts/cargo-clippy.sh diff --git a/.github/workflows/downstream-project-anchor.yml b/.github/workflows/downstream-project-anchor.yml deleted file mode 100644 index 2aadbf5cc2..0000000000 --- a/.github/workflows/downstream-project-anchor.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: Downstream Project - Anchor - -on: - push: - branches: - - master - - v[0-9]+.[0-9]+ - pull_request: - branches: - - master - - v[0-9]+.[0-9]+ - paths: - - "**.rs" - - "Cargo.toml" - - "Cargo.lock" - - "cargo-build-bpf" - - "cargo-test-bpf" - - "cargo-build-sbf" - - "cargo-test-sbf" - - ".github/workflows/downstream-project-anchor.yml" - workflow_call: - inputs: - branch: - required: false - type: string - default: "master" - -env: - SHELL: /bin/bash - SCCACHE_GHA_ENABLED: "true" - RUSTC_WRAPPER: "sccache" - -jobs: - test: - runs-on: ubuntu-latest - strategy: - matrix: - version: ["v0.29.0"] - steps: - - uses: actions/checkout@v3 - with: - submodules: 'recursive' - - - shell: bash - run: | - .github/scripts/purge-ubuntu-runner.sh - - - uses: mozilla-actions/sccache-action@v0.0.3 - with: - version: "v0.5.4" - - - shell: bash - run: | - source .github/scripts/downstream-project-spl-install-deps.sh - ./scripts/build-downstream-anchor-projects.sh ${{ matrix.version }}