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
6.**Using an address**: accessing the code of a given address in any way.
194
194
This can be done by executing `*CALL` or `EXTCODE*` opcodes for a given address.
195
195
196
-
### Reputation Definitions:
196
+
### Reputation Definitions
197
197
1.**opsSeen**: a per-entity counter of how many times a unique valid `UserOperation` referencing this entity
198
198
was received by this bundler.
199
199
This includes `UserOperation` received via incoming RPC calls or through a P2P mempool protocol.
@@ -207,7 +207,7 @@ There are two types of rules:
207
207
4.**inclusionRate**: Relation of `opsIncluded` to `opsSeen`
208
208
209
209
210
-
### Reputation calculation
210
+
### Reputation Calculation
211
211
212
212
We define a value `max_seen = opsSeen // MIN_INCLUSION_RATE_DENOMINATOR`.
213
213
@@ -298,7 +298,7 @@ To help make sense of these params, note that a malicious paymaster can at most
298
298
entity, or referenced library, may not be changed.\
299
299
If the code is modified, the UserOperation is considered invalid.
300
300
301
-
### Storage rules.
301
+
### Storage Rules
302
302
303
303
The permanent storage access with `SLOAD` and `SSTORE` instructions within each phase is limited as follows:
304
304
@@ -318,8 +318,8 @@ Local storage rules protect the bundler against denial of service at the time of
318
318
This means that `Paymaster` and `Factory` contracts cannot practically be an "account" contract as well.
319
319
***[STO-041]**`UserOperation` may not use associated storage (of either its account or from staked entity) in a contract that is a "sender" of another UserOperation in the mempool.
320
320
321
+
### General Reputation Rules
321
322
322
-
### General Reputation rules
323
323
The following reputation rules apply for all staked entities, and for unstaked paymasters. All rules apply to all of these entities unless specified otherwise.
324
324
325
325
***[GREP-010]** A `BANNED` address is not allowed into the mempool.\
@@ -337,7 +337,7 @@ The following reputation rules apply for all staked entities, and for unstaked p
337
337
* Allowed in unlimited numbers in the mempool.
338
338
* Allowed in unlimited numbers in a bundle.
339
339
340
-
### Entity-specific rules:
340
+
### Entity-specific Rules
341
341
342
342
***[EREP-010]** For each `paymaster`, the mempool must maintain the total gas `UserOperations` using this `paymaster` may consume.
343
343
* Do not add a `UserOperation` to the mempool if the maximum total gas cost, including the new `UserOperation`, is above the deposit of the `paymaster` at the current gas price.
@@ -360,7 +360,7 @@ The following reputation rules apply for all staked entities, and for unstaked p
* This is a default of `SAME_UNSTAKED_ENTITY_MEMPOOL_COUNT` for new entity
362
362
363
-
### Alt-mempools rules:
363
+
### Alt-mempools Rules
364
364
365
365
Alternate mempool is an agreed-upon rule that the bundlers may opt into, in addition to the canonical mempool
366
366
The alt-mempool "topic" is a unique identifier. By convention, this is the IPFS hash of the document describing (in clear test and YAML file) the specifics of this alt mempool
@@ -373,7 +373,7 @@ The alt-mempool "topic" is a unique identifier. By convention, this is the IPFS
373
373
The receiving bundler validates the `UserOperations`, and based on the above rules (and subscribed alt-mempools) decides which alt-mempools to propagate it to.
374
374
***[ALT-040]** opsInclude and opsSeen of entities are kept per alt-mempool. That is, an entity can be considered throttled (or banned) in one mempool, while still active on another.
375
375
376
-
### Alt-mempool reputation:
376
+
### Alt-mempool Reputation
377
377
378
378
Alt-mempools are served by the same bundlers participating in the canonical mempool, but change the rules and may introduce denial-of-service attack vectors. To prevent them from taking the canonical mempool or other alt mempools down with them, a reputation is managed for each. An alt mempool that causes too many invalidations gets throttled. This limits the scope of the attack and lets the bundler continue doing its work for other mempools.
0 commit comments