Skip to content

Commit

Permalink
Add Blockhash Metrics to Bundle Committer (#500)
Browse files Browse the repository at this point in the history
  • Loading branch information
buffalu committed Dec 11, 2023
1 parent f5b3610 commit 966af7a
Show file tree
Hide file tree
Showing 4 changed files with 116 additions and 4 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/cargo.yml
Original file line number Diff line number Diff line change
@@ -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/[email protected]
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
55 changes: 55 additions & 0 deletions .github/workflows/downstream-project-anchor.yml
Original file line number Diff line number Diff line change
@@ -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/[email protected]
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 }}
6 changes: 6 additions & 0 deletions core/src/bundle_stage/bundle_consumer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down
7 changes: 3 additions & 4 deletions core/src/bundle_stage/committer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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<usize>,
bank: &Arc<Bank>,
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
Expand Down

0 comments on commit 966af7a

Please sign in to comment.