Skip to content
Closed
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
233 commits
Select commit Hold shift + click to select a range
1b1312a
Jito Patch
buffalu Dec 18, 2024
9deb40b
first loop at consumer
May 14, 2025
d35a345
up
May 14, 2025
8cca5ca
Fixes
May 14, 2025
60e5232
More work
May 14, 2025
788e878
More updates
May 14, 2025
174e708
More work
May 14, 2025
85383e7
Clean-up
May 14, 2025
3adf64d
More clean-up
May 14, 2025
80df366
More changes
May 15, 2025
09f6ee5
Fix log
May 15, 2025
608770d
pipe it through
May 15, 2025
abee958
Full piping?
May 15, 2025
2a4c0ea
- import some JSS staples
May 15, 2025
5820eed
unused
May 15, 2025
db31009
Add revert on error flag to work
May 15, 2025
00e954d
Add todo
May 15, 2025
348877e
Extra info shims
May 15, 2025
7716eb9
More work
May 15, 2025
91b8f48
Decouple JSS Connection
May 15, 2025
318d89c
Add JSS Dependencies struct
May 15, 2025
958f5ec
Fix
May 15, 2025
20a01e7
WIP
May 15, 2025
8034195
More work
May 15, 2025
07d3447
More work
May 15, 2025
43d4803
more changes
May 15, 2025
061084c
More work
May 15, 2025
34f7045
Block engine stage filtering
May 15, 2025
8e9835e
fix tpu
May 15, 2025
7028655
fetch stage manager filter
May 15, 2025
20ad181
More work
May 15, 2025
503082f
heavy WIP
May 15, 2025
f512433
fmt
May 15, 2025
42b7f03
up
May 16, 2025
3f6e63b
Add the dummy type
May 16, 2025
bfcaeec
Hook things up
May 16, 2025
66efb3c
Leverage current bufferer
May 16, 2025
eaf25bd
More rough stuff
May 16, 2025
0135804
trashola
May 16, 2025
28343d6
More work
May 16, 2025
6503813
Add pre-lock filter
May 16, 2025
0f180b2
Small updates
May 16, 2025
0086a73
Disable other receive_and_bufferers if jss_enabled=true
May 17, 2025
f67b67a
update
May 17, 2025
df199bb
small updates
May 17, 2025
29d3eeb
Remove
May 17, 2025
dd5f6d2
Remove
May 17, 2025
0562ae5
Something is working
May 17, 2025
c051e75
More work
May 17, 2025
94223d0
- Send leader states
May 17, 2025
68af232
Fixes
May 17, 2025
ac32a7e
Add revert on error tests
May 17, 2025
c4341c5
Add WIP test
May 17, 2025
8b550c0
Up
May 17, 2025
1449e27
No longer using random workers
May 17, 2025
1894a1c
clear dat shi
May 17, 2025
8311000
Add some more comments
May 17, 2025
40130cf
fmt
May 17, 2025
70da45e
account locking
May 21, 2025
a1f73a7
updates
May 22, 2025
0351f2f
more work
May 22, 2025
b035f15
Revert: interface is fixed
May 27, 2025
fe181dc
Fix batch creation
May 27, 2025
0f2be4e
Log some errors
May 27, 2025
0bb5e8a
Add some details
May 27, 2025
fb3cfce
Fix locking
May 27, 2025
aa4d21e
Name changes
May 27, 2025
5301606
Move container cleaning to BufferAndReceive
May 29, 2025
7cbb827
Don't thrash updates
May 29, 2025
657274d
Simplify
May 29, 2025
99b0c7a
Don't send back info if not requested
May 29, 2025
c6bbec8
Remove comment
May 29, 2025
2fa1353
make sure to drain and send back
May 29, 2025
d4a048c
add deadline for receive and buffer
May 29, 2025
e860fd2
- Remove universal send-back
May 29, 2025
248170c
Remove sleeps
May 29, 2025
0772238
Add sleep for one
May 29, 2025
4123a2c
Remove
May 29, 2025
33b0322
rename to Jss Scheduler
May 30, 2025
df9e3e5
Have JSS Scheduler deal with slot boundary
May 30, 2025
8b0736d
fmt
May 30, 2025
5a88622
Big changes
May 30, 2025
edd93e9
Small fixes
May 30, 2025
5701304
Remove collect
May 30, 2025
b6295ad
Fix compilation
May 30, 2025
de36835
fix locking?
May 30, 2025
e80f1a3
Don't wait so long with deadline
May 31, 2025
d1a89a2
Add limit
May 31, 2025
b53c312
Fix locking more?
May 31, 2025
7a734af
1:1 bundle result
May 30, 2025
73de20c
Real locking fix?
Jun 1, 2025
13a91ef
Update hard-coded value
Jun 3, 2025
8c9ef76
Fix bundle ordering
Jun 3, 2025
1a67cfe
Enable/disable scheduling depending on which scheduler you're in
Jun 3, 2025
805934d
Fix format
Jun 3, 2025
7c6569e
Another fix
Jun 3, 2025
61adb4f
Don't panic
Jun 3, 2025
42ea712
More don't panic
Jun 3, 2025
93f961c
Prevent eternal locking
Jun 3, 2025
c9704a0
Change order or slot boundary
Jun 3, 2025
2880e41
Some changes
Jun 3, 2025
c0e3e51
Update QoS on lock error
Jun 3, 2025
9366fa1
- Improve dumb worker selection
Jun 3, 2025
5ceca4b
Refresh builder config in the background
Jun 3, 2025
a416bd4
- jss_connection refactoring
Jun 3, 2025
8533f7f
Refactor bundle result (in preparation)
Jun 4, 2025
263b121
fmt
Jun 4, 2025
629c639
Prep for fail reasons
Jun 4, 2025
586e0fa
Use enum instead of string
Jun 4, 2025
9c004b3
cleaner code for revert_on_error
Jun 4, 2025
594098a
Send transaction not commit reasons
Jun 5, 2025
3a0247d
Remove some logs
Jun 6, 2025
8f5d744
Update metrics
Jun 6, 2025
3ce757d
- Create non-conflicting batches for every batch (not just revert on …
Jun 6, 2025
73dd2e5
small
Jun 6, 2025
41161a1
Even smaller?
Jun 6, 2025
9ab85bf
remove
Jun 6, 2025
ba96272
refactor in prep
Jun 6, 2025
69e9c9a
- decouple consumer batch from single bundle/txn
Jun 6, 2025
61cc95c
fmt
Jun 6, 2025
21f0fcb
More refactor
Jun 6, 2025
e4fdcc6
- Schedule individual txns as batch
Jun 6, 2025
e0281cf
Fix scheduling
Jun 6, 2025
d2c333b
Bubble up deserialization error
Jun 6, 2025
7b4bc51
- Custom validation logic for bundles
Jun 9, 2025
d2f0b18
- Remove log
Jun 9, 2025
943ce3f
Add protos
Jun 10, 2025
7e52a7e
Update accounts.rs
dgski Jun 10, 2025
8ee7134
fix bench
Jun 10, 2025
639dfde
fmt
Jun 10, 2025
f4b89cc
clippy fixes
Jun 10, 2025
e2507c2
fmt
Jun 10, 2025
b58a66c
Some PR comments addressed
Jun 10, 2025
c05232f
More PR comments
Jun 10, 2025
79300d1
Change to 24
Jun 10, 2025
f119d5d
- Address some PR comments
Jun 10, 2025
34272ce
Fix compilation
Jun 10, 2025
8c2605c
fmt
Jun 10, 2025
a6597fb
Small change
Jun 11, 2025
c1beba9
fmt
Jun 11, 2025
b537b8a
small changes
Jun 11, 2025
c33df4b
Fix?
Jun 11, 2025
f7eed81
Move to top
Jun 11, 2025
73b8d26
- Mirror checks via comments
Jun 11, 2025
f47a72d
WIP tests
Jun 11, 2025
44e415a
Add tests to jss_receive_and_buffer + refactor
Jun 11, 2025
2dae8fd
WIP jss_scheduler tests
Jun 12, 2025
d447d5d
Finish jss_scheduler test
Jun 12, 2025
5b77182
Add work count checks
Jun 12, 2025
b1d0b63
Pr comment
Jun 12, 2025
95b07da
pr comment
Jun 12, 2025
237679a
- Log stream error
Jun 12, 2025
360fde3
- Prevent duplicate transactions
Jun 13, 2025
fdac58c
Add slot protection
Jun 16, 2025
ede3b30
small update
Jun 17, 2025
d2e0b23
Make sure to unblock
Jun 17, 2025
a08f2fa
Update core/src/banking_stage/consumer.rs
dgski Jun 18, 2025
9db9d10
bump
Jun 18, 2025
f85d6be
update protos
Jun 18, 2025
299e880
Update
Jun 18, 2025
949c0d8
drain channel
Jun 18, 2025
30e3f5d
Change to 100ms
Jun 18, 2025
3c38396
Update
Jun 18, 2025
2e5d849
fix
Jun 18, 2025
a52d635
No tip processing for vote threads
Jun 19, 2025
b5815e3
No need for jss_enabled in receive_and_buffer
Jun 21, 2025
0e8b5fe
fmt
Jun 21, 2025
b6b4b26
Comments
Jun 21, 2025
52ac7b3
Small tweaks
Jun 21, 2025
08b5e93
exit from first error when parsing bundle
Jun 21, 2025
c3ddf92
Remove un-needed check
Jun 21, 2025
2fb446c
Reusable buffer for hash duplicate check
Jun 21, 2025
cb493e7
- boost threads
Jun 21, 2025
55ac0cb
- Use SmallVec for transaction batches
Jun 21, 2025
3eac28e
Fix test
Jun 21, 2025
fae36c0
add datapoint error
Jun 21, 2025
0e2da26
Re-usable hashsets for conflicting batch creation
Jun 21, 2025
9541d62
Fix account locking batch
Jun 21, 2025
21a58a4
Fix tests
Jun 21, 2025
e954400
- Start with jss_enabled=true
Jun 21, 2025
888c968
- validate JSS url
Jun 21, 2025
da70299
Prevent even more allocations
Jun 21, 2025
554ad9e
All memory re-used in jss_scheduler
Jun 21, 2025
e2a7a75
Use versioned messages
Jun 21, 2025
a145c62
The great renaming (part 1)
Jun 21, 2025
37105b0
Fix tests
Jun 21, 2025
386028c
Use new names
Jun 21, 2025
74fe44c
fmt
Jun 21, 2025
b6b3601
Update core/src/bam_manager.rs
dgski Jun 24, 2025
077333d
Initial simplified version
Jun 24, 2025
f1fa872
fmt
Jun 24, 2025
a32b3b3
Add actual transaction submission
Jun 24, 2025
6844c86
Add some logs
Jun 24, 2025
9632bab
fmt
Jun 24, 2025
87cdf13
More work
Jun 25, 2025
444b3d7
Fix conditional
Jun 25, 2025
d823b08
Improve
Jun 25, 2025
f488170
Add logs
Jun 25, 2025
5abd612
Add prio-fees
Jun 25, 2025
e379f44
Update core/src/bam_payment.rs
dgski Jun 25, 2025
3c454e3
Use different way to get current slot
Jun 25, 2025
88d5103
revert
Jun 25, 2025
eaf605e
Add error log
Jun 25, 2025
56d7d9b
Fix
Jun 25, 2025
6811efe
Create batching
Jun 25, 2025
b57533c
Update
Jun 25, 2025
4a5a813
fmt
Jun 25, 2025
0872376
Remove newline
Jun 25, 2025
8491a35
Update
Jun 25, 2025
ba0d561
Better dedup
Jun 25, 2025
962df19
Add another log
Jun 25, 2025
c0b4386
More changes
Jun 25, 2025
c74d1c9
Log signature
Jun 25, 2025
07e5c31
Log signature
Jun 25, 2025
00de635
refactor
Jun 25, 2025
7da974f
Small fixes
Jun 25, 2025
506abf1
Merge pull request #67 from jito-labs/dg/v2.2_jss_minimal_fee_collect…
dgski Jun 25, 2025
7eb1168
Use new protos
Jun 25, 2025
dc02e1f
enforce comission
Jun 25, 2025
788f0a6
small fix
Jun 25, 2025
0e6977d
Merge pull request #69 from jito-labs/dg/v2.2_protoupdate
dgski Jun 25, 2025
cb8a7df
Merge branch 'v2.2' into dg/v2.2_jss_minimal
Jul 14, 2025
5999d9e
merge fix
Jul 14, 2025
33e28bd
delete tip-distributor
Jul 14, 2025
c046e8c
Remove dup + fmt
Jul 16, 2025
c101244
Remove print
Jul 24, 2025
597665b
Cargo.lock
Jul 24, 2025
e3a5d16
linter
Jul 24, 2025
2dc3203
small changes
Jul 24, 2025
7a9cf4b
Revert name change
Jul 25, 2025
f708334
Update to bam-protos
Jul 25, 2025
d224288
Fix url
Jul 25, 2025
2cdc601
Update ordering
Jul 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.dockerignore
.git/
.github/
.gitignore
.idea/
README.md
Dockerfile
f
target/
2 changes: 2 additions & 0 deletions .github/workflows/cargo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- uses: mozilla-actions/sccache-action@v0.0.5
with:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/changelog-label.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: 'recursive'
- name: Check if changes to CHANGELOG.md
shell: bash
env:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/client-targets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

# This can be removed once cargo-ndk >= 3.5.4 is used.
- name: Setup environment for Android NDK
Expand Down Expand Up @@ -62,6 +64,8 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Setup Rust
run: |
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/crate-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: 'recursive'

- name: Get commit range (push)
if: ${{ github.event_name == 'push' }}
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: 'recursive'

- name: Get commit range (push)
if: ${{ github.event_name == 'push' }}
Expand Down Expand Up @@ -78,6 +79,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Setup Node
uses: actions/setup-node@v4
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/downstream-project-anchor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,11 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
version: ["master"]
version: [ "master" ]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- shell: bash
run: |
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/downstream-project-spl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ jobs:
# - token
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- shell: bash
run: |
Expand Down Expand Up @@ -84,6 +86,8 @@ jobs:
- token-2022
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- shell: bash
run: |
Expand Down Expand Up @@ -122,6 +126,8 @@ jobs:
# - token
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- shell: bash
run: |
Expand Down
180 changes: 180 additions & 0 deletions .github/workflows/rebase.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
# This workflow runs a periodic rebase process, pulling in updates from an upstream repository
# The workflow for rebasing a jito-solana branch to a solana labs branch locally is typically:
# $ git checkout v1.17
# $ git pull --rebase # --rebase needed locally
# $ git branch -D lb/v1.17_rebase # deletes branch from last v1.17 rebase
# $ git checkout -b lb/v1.17_rebase
# $ git fetch upstream
# $ git rebase upstream/v1.17 # rebase + fix merge conflicts
# $ git rebase --continue
# $ git push origin +lb/v1.17_rebase # force needed to overwrite remote. wait for CI, fix if any issues
# $ git checkout v1.17
# $ git reset --hard lb/v1.17_rebase
# $ git push origin +v1.17
#
# This workflow automates this process, with periodic status updates over slack.
# It will also run CI and wait for it to pass before performing the force push to v1.17.
# In the event there's a failure in the process, it's reported to slack and the job stops.

name: "Rebase jito-solana from upstream anza-xyz/agave"

on:
# push:
schedule:
- cron: "00 19 * * 1-5"

jobs:
rebase:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- branch: master
upstream_branch: master
upstream_repo: https://github.com/anza-xyz/agave.git
- branch: v2.0
upstream_branch: v2.0
upstream_repo: https://github.com/anza-xyz/agave.git
- branch: v2.1
upstream_branch: v2.1
upstream_repo: https://github.com/anza-xyz/agave.git
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
submodules: recursive
fetch-depth: 0
token: ${{ secrets.JITO_SOLANA_RELEASE_TOKEN }}
- name: Add upstream
run: git remote add upstream ${{ matrix.upstream_repo }}
- name: Fetch upstream
run: git fetch upstream
- name: Fetch origin
run: git fetch origin
- name: Set REBASE_BRANCH
run: echo "REBASE_BRANCH=ci/nightly/${{ matrix.branch }}/$(date +'%Y-%m-%d-%H-%M')" >> $GITHUB_ENV
- name: echo $REBASE_BRANCH
run: echo $REBASE_BRANCH
- name: Create rebase branch
run: git checkout -b $REBASE_BRANCH
- name: Setup email
run: |
git config --global user.email "infra@jito.wtf"
git config --global user.name "Jito Infrastructure"
- name: Rebase
id: rebase
run: git rebase upstream/${{ matrix.upstream_branch }}
- name: Send warning for rebase error
if: failure() && steps.rebase.outcome == 'failure'
uses: slackapi/slack-github-action@v1.25.0
with:
payload: |
{
"text": "Nightly rebase on branch ${{ matrix.branch }}\nStatus: Rebase failed to apply cleanly"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Check if rebase applied
id: check_rebase_applied
run: |
PRE_REBASE_SHA=$(git rev-parse ${{ matrix.branch }})
POST_REBASE_SHA=$(git rev-parse HEAD)
if [ "$PRE_REBASE_SHA" = "$POST_REBASE_SHA" ]; then
echo "No rebase was applied, exiting..."
exit 1
else
echo "Rebase applied successfully."
fi
- name: Send warning for rebase error
if: failure() && steps.check_rebase_applied.outcome == 'failure'
uses: slackapi/slack-github-action@v1.25.0
with:
payload: |
{
"text": "Nightly rebase on branch ${{ matrix.branch }}\nStatus: Rebase not needed"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: Set REBASE_SHA
run: echo "REBASE_SHA=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ env.REBASE_BRANCH }}
- name: Wait for buildkite to start build
run: sleep 300
- name: Wait for buildkite to finish
id: wait_for_buildkite
timeout-minutes: 300
run: |
while true; do
response=$(curl -s -f -H "Authorization: Bearer ${{ secrets.BUILDKITE_TOKEN }}" "https://api.buildkite.com/v2/organizations/jito/pipelines/jito-solana/builds?commit=${{ env.REBASE_SHA }}")
if [ $? -ne 0 ]; then
echo "Curl request failed."
exit 1
fi

state=$(echo $response | jq --exit-status -r '.[0].state')
echo "Current build state: $state"

# Check if the state is one of the finished states
case $state in
"passed"|"finished")
echo "Build finished successfully."
exit 0
;;
"canceled"|"canceling"|"not_run")
# ignoring "failing"|"failed" because flaky CI, can restart and hope it finishes or times out
echo "Build failed or was cancelled."
exit 2
;;
esac

sleep 30
done
- name: Send failure update
uses: slackapi/slack-github-action@v1.25.0
if: failure() && steps.wait_for_buildkite.outcome == 'failure'
with:
payload: |
{
"text": "Nightly rebase on branch ${{ matrix.branch }}\nStatus: CI failed\nBranch: ${{ env.REBASE_BRANCH}}\nBuild: https://buildkite.com/jito/jito-solana/builds?commit=${{ env.REBASE_SHA }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
# check to see if different branch since CI build can take awhile and these steps are not atomic
- name: Fetch the latest remote changes
run: git fetch origin ${{ matrix.branch }}
- name: Check if origin HEAD has changed from the beginning of the workflow
run: |
LOCAL_SHA=$(git rev-parse ${{ matrix.branch }})
ORIGIN_SHA=$(git rev-parse origin/${{ matrix.branch }})
if [ "$ORIGIN_SHA" != "$LOCAL_SHA" ]; then
echo "The remote HEAD of ${{ matrix.branch }} does not match the local HEAD of ${{ matrix.branch }} at the beginning of CI."
echo "origin sha: $ORIGIN_SHA"
echo "local sha: $LOCAL_SHA"
exit 1
else
echo "The remote HEAD matches the local REBASE_SHA at the beginning of CI. Proceeding."
fi
- name: Reset ${{ matrix.branch }} to ${{ env.REBASE_BRANCH }}
run: |
git checkout ${{ matrix.branch }}
git reset --hard ${{ env.REBASE_BRANCH }}
- name: Push rebased %{{ matrix.branch }}
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.JITO_SOLANA_RELEASE_TOKEN }}
branch: ${{ matrix.branch }}
force: true
- name: Send success update
uses: slackapi/slack-github-action@v1.25.0
with:
payload: |
{
"text": "Nightly rebase on branch ${{ matrix.branch }}\nStatus: CI success, rebased, and pushed\nBranch: ${{ env.REBASE_BRANCH}}\nBuild: https://buildkite.com/jito/jito-solana/builds?commit=${{ env.REBASE_SHA }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
1 change: 1 addition & 0 deletions .github/workflows/release-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ jobs:
with:
ref: master
fetch-depth: 0
submodules: 'recursive'

- name: Setup Rust
shell: bash
Expand Down
Loading