How does the transactions send to the leader? As I know the leader use turbine to send out blocks, so does the transactions send to leader level by level in turbine? If not ,who will the leader connect to? Is the leader randomly pick one node to connect? Or any node can connect to the leader? And what if the leader be connected by all malicious nodes and can not receive any normal transactions?
1 Answer
Transactions are sent to a leaders TPU port in order to be processed. This is separate from Turbine, which is used to propagate blocks to all other validators in the cluster.
A typical flow would be for a client to send a transaction to an RPC node, which will forward to the current (or next) leader.
Any node can connect to the leader, but number of connections is constrained/throttled and prioritized by stake. Thus, Sybil attacks become cost prohibitive.
-
Do you mean that If a node has connected with the leader, it will be disconnected when a more prioritized node want s to connect to the leader? And is there any punishment to the node who connect to the leader and send useless transactions?– user2712Commented Apr 5, 2023 at 16:34
-
A given node supports some number of staked/unstaked peers (thousands) and a given number of connections per peer (~8). There is a process for pruning peers/connections when maximum number is reached. Bandwidth per connection is also variable based on stake. Default client doesn't explicitly punish nodes sending useless transactions Commented Apr 6, 2023 at 17:30
-
That is interesting , Is there any more detail docs to refer?– user2712Commented Apr 10, 2023 at 3:37
-
This is a little dated, but I think Jito has a nice medium post detailing this: jito-labs.medium.com/… Commented Apr 11, 2023 at 13:30