-
Notifications
You must be signed in to change notification settings - Fork 254
feat: support multiple JITO endpoints with round-robin retry #2664
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: support multiple JITO endpoints with round-robin retry #2664
Conversation
Co-Authored-By: Ali Behjati <[email protected]>
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
@@ -50,7 +50,7 @@ export default { | |||
default: 50000, | |||
} as Options, | |||
"jito-endpoint": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's rename this param to jito-endpoints
for clarity
while (Date.now() - startTime < maxRetryTimeMs) { | ||
const currentClient = clients[clientIndex]; | ||
try { | ||
await currentClient.sendBundle(bundle); | ||
return firstTransactionSignature; | ||
} catch (err: any) { | ||
lastError = err; | ||
clientIndex = (clientIndex + 1) % clients.length; | ||
await new Promise((resolve) => setTimeout(resolve, 500)); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(aside) @guibescos do you know how many jito endpoints we can round robin against? the ratelimit retry logic is a little funky here if there are only 2 or 3.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(aside) cc @ali-bahjati
Co-Authored-By: Ali Behjati <[email protected]>
Closing due to inactivity for more than 7 days. |
Multiple JITO Endpoints Support
This PR adds support for multiple JITO endpoints in the Solana price pusher with a round-robin retry mechanism.
Changes:
sendTransactionsJito
to accept a list of SearcherClientsSolanaPricePusherJito
class to accept multiple endpointsImplementation details:
Link to Devin run: https://app.devin.ai/sessions/4b444e4e547842658001b352436f6970
Requested by: Ali Behjati ([email protected])