Alternative mempool 设计

Status
In progress
Assign
AaronBruce Lisunny
deadline

最新构思了一下Alternative mempool 的实现方案,有一些想法和疑惑

1.只做Alternative mempool,还是标准和替代都有,大概率应该是都有吧。

2.替代内存池的实现有两种方案:

  1. 一种是在程序内部再加一个mempool,就是通过程序逻辑控制两个mempool;
  2. 另一种是通过配置文件部署不同的bundler服务来实现,就是Alternative bundler,还是一个bundler一个mempool。

3.上次听圣洁说替代内存池不能暴露在p2p网络,容易受到攻击,那我们自己部署的bundler的替代内存池之间需要互通数据吗?

  1. 不互通的话可能存在单点风险,如果采用的是4.2的方案,即使互通的话可能也没有相同验证规则的bundler来处理。
  2. 如果需要互通的话,我们自己写一套同步替代内存池的功能?

4.验证规则的实现方案也有两种:

首先,用户需要申请bundler服务链接,选择具体的链、网络、运行操作码、禁止操作码等,然后分配给这个规则一个privateKey,然后验证规则和这个关联的priavteKey存储在中央服务器(也可以同步到各个bundler节点)。

  1. bundler服务部署的时候不需要配置具体的验证规则,根据请求url附带的privateKey来获取具体的验证规,然后直接验证userOp,不需要转发。
  2. 通过配置文件部署不同的验证规则的bundler,某个特定的bundler只能验证特定规则的userOp。通过用户请求的url附带的privateKey获取到验证规则,然后转发到相应验证规则的bundler服务。

5.用户申请的验证规则存储在中央服务器,还是需要到同步到各个bundler节点,还是两者都要?