You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -4,7 +4,7 @@ The Builder simulates bundles and transactions against the latest chain state to
4
4
5
5
Bundles are treated as Flashbots-style bundles, meaning that the Builder should respect transaction ordering, bundle atomicity, and the specified revertability.
The block building loop waits until a new block has been received, and then kicks off the next attempt.
64
+
### 💾 Simulation Task
65
+
66
+
The block building loop waits until a new block environment has been received, and then kicks off the next attempt.
57
67
58
68
When the Builder receives a new block, it takes a reference to the transaction cache, calculates a simulation deadline for the current slot with a buffer of 1.5 seconds, and begins constructing a block for the current slot.
59
69
60
-
Transactions enter through the cache, and then they're sent to the simulator, where they're run against the latest chain state and block environment. If they're successfully applied, they're added to the block. If a transaction fails to be applied, it is simply ignored.
70
+
Transactions enter through the cache, and then they're sent to the simulator, where they're run against the latest chain state and block environment. If they're successfully applied, they're added to the block. If a transaction fails to be applied, it is simply ignored.
71
+
72
+
When the deadline is reached, the simulator is stopped, and all open simulation threads are cancelled. The built block is then bundled with the block environment and the previous host header that it was simulated against, and all three are passed along to the submit task.
73
+
74
+
### ✨ Submit Task
75
+
76
+
If Flashbots endpoint has been configured the Flashbots submit task will prepare a Flashbots bundle out of that Signet block, and then submits that bundle to the Flashbots endpoint.
61
77
62
-
When the deadline is reached, the simulator is stopped, and all open simulation threads and cancelled. The block is then bundled with the block environment and the previous host header that it was simulated against, and passes all three along to the submit task.
78
+
If a Flashbots endpoint has _not_ been configured, the Builder uses the [builder helper contract]and to craft a rollup block transaction and submits that to the default mempool. This mode of operation is only for testing on private networks and should not be used in production, since it can leak sensitive transaction data from the Signet block.
63
79
64
-
If no transactions in the cache are valid and the resulting block is empty, the submit task will ignore it.
80
+
If the block received from simulation is empty, the submit task will ignore it.
65
81
66
-
Finally, if it's non-empty, the submit task attempts to get a signature for the block, and if it fails due to a 403 error, it will skip the current slot and begin waiting for the next block.
82
+
Finally, if it's non-empty, the submit task attempts to get a signature for the block, and if it fails due to a 403 error, it will skip the current slot and begin waiting for the next block.
Blob gas values `excess_blob_gas` and `blob_gasprice` are also set to 0 for all Signet blocks.
129
145
130
-
### 🔢 Disabled Opcodes
146
+
### 🔢 Disabled Opcodes
131
147
132
-
`BLOBHASH` - EIP-4844 is not supported on Signet.
133
-
`BLOBBASEFEE` - EIP4844 is not supported.
148
+
`BLOBHASH` - EIP-4844 is not supported on Signet. `BLOBBASEFEE` - EIP4844 is not supported.
134
149
135
150
## ⛽ Transaction Submission
136
151
137
-
When a completed, non-empty Signet block is received by the Submit task, it prepares the block data into a blob transaction and submits it to the network.
152
+
When a completed, non-empty Signet block is received by the Submit task, it prepares the block data into a blob transaction and submits it to the network.
138
153
139
-
If it fails, it will retry up to 3 times with a 12.5% bump on each retry.
154
+
If it fails, it will retry up to 3 times with a 12.5% bump on each retry.
140
155
141
156
The previous header's basefee is tracked through the build loop and used for gas estimation purposes in the Submit Task.
142
157
143
-
---
144
-
145
-
## 📤 Transaction Sender
146
-
147
-
A binary (`bin/submit_transaction.rs`) for continously sending very small transactions for testing block construction.
148
-
149
-
The following values are available for configuring the transaction sender:
0 commit comments