jito-foundation / jito-relayer Goto Github PK
View Code? Open in Web Editor NEWJito Foundation's Transaction Relayer
Home Page: http://jito.network/
License: Apache License 2.0
Jito Foundation's Transaction Relayer
Home Page: http://jito.network/
License: Apache License 2.0
Many operators are reporting RPC timeout on lookup table. Either remove this call (unused) or make the RPC client timeout longer
See neodyme report
Changes to the Solana SDK after 1.10.25 break the interface in the relayer. Specifically access to packet data is now through a method.
The relayer should be updated to accommodate these changes.
Also, the mutex on the load balancer can be removed at the same time, since it touches a lot of the same code.
Open source projects usually have a LICENSE file to state the license under which it is released. Please add the LICENSE file so that we know which license it is. Since it contains code from Solana Labs, I assumed it's intended to be the Apache 2 license, same as Solana?
A whitelist of trusted validators should be added to the relayer to only accept specified connections.
Building with:
cargo b --release
The relayer should not be able to dos the validator or the block engine. A maximum throughput parameter should be added in the grpc interface and implemented in the relayer for all grpc connections.
Currently, if a validator attempts to subscribe to bundles from the relayer, it will panic. It would be better to just open the connection and not use it.
Documentation: https://docs.solana.com/proposals/transactions-v2
Issue:
Solution:
When a validator is running their own relayer, keeping track of what the current slot is isn't as important. This means that the validator can forward all packets to their own validator, independent of network time.
Is there a way to run local relayer without specifying a block-engine?
If I don't specify the relay exit with a panic (when getting a packet)
thread 'forwarder_thread_0' panicked at transaction-relayer/src/forwarder.rs:92:45:
error sending packet batch to block engine handler
Att: @buffalu
Hello, add the --log flag to be able to write to the specified file, if possible, thx.
Add a signal handler to handle Sigint (ctrl + c) for clean exit.
The connection to the block engine is incomplete. There is a draft PR from branch jl/block_engine, which contains a refactor of relayer.
After the refactor, Relayer contains instances of a router struct and a block_engine struct. The router forwards packets (with potential delay) to connected validators based on the leader schedule, and is code complete. The block_engine will forward any transactions that touch accounts in it's aoi hashset to the block engine through the grpc client.
The block_engine struct contains a blocking grpc client , which has been started, but it is incomplete. The start_bi_directional_packet_stream function has not been successfully implemented . This function needs to be implemented in the client, as well as the subscribe_aoi function to correctly update the hashset containing accounts of interest.
The block_engine also needs to implement the stream_batch_list function to filter packet batches by aoi and send to the block engine using the client.
Once a connection is established, the block_engine should update it's delta field to delay the forwarding of packets to the validator. Likewise, if the block engine is disconnected, the delta value should be returned to zero. The set value needs to come from a command line input.
Currently, the leader schedule cache attempts to update every 10 seconds. This needs to be changed to update once per epoch, with appropriate error handling and retry.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.