本文件的动机是我们的工作 FOCIL 共识规范 23,我们意识到该协议需要围绕资源限制进行更周到的考虑,因为某些细节没有在协议中明确指定 FOCIL 以太坊研究帖子 14。
在开始之前,我们假设采用以下设置来建立一个干净的基线供我们考虑:
在继续之前,我们假设以下参与者是协议的一部分并分析他们的职责:
我们假设 IL 委员会、提议者和证明者执行一些诚实行动的时间表如下:
IL 委员会成员从给定头的 EL 客户端检索 IL 交易列表(CL → EL 调用),然后他们签署本地 IL(交易 + 摘要)并将其发布到八卦网络。
链上的节点将下载 IL,验证其是否具有反 DOS(尚未将其导入 EL),并将其转发给其他节点。节点还将 IL 导入到分支选择中,并使用聚合缓存跟踪已看到哪些 IL。链上的证明者和节点应该具有相同的链视图。
下一个时隙的提议者主动监视 IL 八卦网络,并收集和聚合本地 IL,然后在 IL 聚合截止(间隔 #2)时,提议者使用要包含在其块中的 IL 交易列表来更新块构建过程。这需要 CL 到 EL 的调用。
如果下一个时隙的提议者根据其未见过的父哈希观察到足够数量的包含列表,则提议者将需要手动请求丢失的信标块,导入该块,并在该块之上构建。
基于上述,我们可以识别潜在的资源密集型区域并缩小范围:
提议者使用包含列表交易列表更新区块构建过程。这是 CL → EL 调用。
锁定包含列表视图。从此时起停止接受本地包含列表。
提议者从 EL 客户端(CL → EL 调用)检索执行负载,并将其发布到信标块八卦网络。然后其他人验证该块。
节点接收信标块并对其进行验证。新的验证步骤包括检查包含列表聚合构造并确认包含列表是否满足评估函数,这在CL上完成。 IL条件的检查(是否可以由于冲突而被跳过)将在EL上执行。
提议者的额外职责似乎并不是一个重大问题。节点的新验证步骤(检查验证包含列表是否满足满意的条件)可能会引入一些额外的 CPU 负载,但这似乎不是一个主要问题。
证明者使用 LMD GHOST 分叉选择规则对信标区块进行投票。证明者只会根据间隔 1 的观察结果,投票选出满足包含列表评估函数的信标块。
和今天没有什么区别。
如上所示,最重要的资源问题围绕包含列表上传、下载以及从节点的角度来看垃圾邮件的可能性。另一个关键问题是节点验证和导入包含列表的开销,以及提议者需要更新其块构建过程以满足包含列表。这些方面都需要仔细考虑和设计,以确保效率和安全性。
基于上述内容,我们概述了几个将影响规范编写方式的悬而未决的问题:
本文件的动机是我们的工作 FOCIL 共识规范 23,我们意识到该协议需要围绕资源限制进行更周到的考虑,因为某些细节没有在协议中明确指定 FOCIL 以太坊研究帖子 14。
在开始之前,我们假设采用以下设置来建立一个干净的基线供我们考虑:
在继续之前,我们假设以下参与者是协议的一部分并分析他们的职责:
我们假设 IL 委员会、提议者和证明者执行一些诚实行动的时间表如下:
IL 委员会成员从给定头的 EL 客户端检索 IL 交易列表(CL → EL 调用),然后他们签署本地 IL(交易 + 摘要)并将其发布到八卦网络。
链上的节点将下载 IL,验证其是否具有反 DOS(尚未将其导入 EL),并将其转发给其他节点。节点还将 IL 导入到分支选择中,并使用聚合缓存跟踪已看到哪些 IL。链上的证明者和节点应该具有相同的链视图。
下一个时隙的提议者主动监视 IL 八卦网络,并收集和聚合本地 IL,然后在 IL 聚合截止(间隔 #2)时,提议者使用要包含在其块中的 IL 交易列表来更新块构建过程。这需要 CL 到 EL 的调用。
如果下一个时隙的提议者根据其未见过的父哈希观察到足够数量的包含列表,则提议者将需要手动请求丢失的信标块,导入该块,并在该块之上构建。
基于上述,我们可以识别潜在的资源密集型区域并缩小范围:
提议者使用包含列表交易列表更新区块构建过程。这是 CL → EL 调用。
锁定包含列表视图。从此时起停止接受本地包含列表。
提议者从 EL 客户端(CL → EL 调用)检索执行负载,并将其发布到信标块八卦网络。然后其他人验证该块。
节点接收信标块并对其进行验证。新的验证步骤包括检查包含列表聚合构造并确认包含列表是否满足评估函数,这在CL上完成。 IL条件的检查(是否可以由于冲突而被跳过)将在EL上执行。
提议者的额外职责似乎并不是一个重大问题。节点的新验证步骤(检查验证包含列表是否满足满意的条件)可能会引入一些额外的 CPU 负载,但这似乎不是一个主要问题。
证明者使用 LMD GHOST 分叉选择规则对信标区块进行投票。证明者只会根据间隔 1 的观察结果,投票选出满足包含列表评估函数的信标块。
和今天没有什么区别。
如上所示,最重要的资源问题围绕包含列表上传、下载以及从节点的角度来看垃圾邮件的可能性。另一个关键问题是节点验证和导入包含列表的开销,以及提议者需要更新其块构建过程以满足包含列表。这些方面都需要仔细考虑和设计,以确保效率和安全性。
基于上述内容,我们概述了几个将影响规范编写方式的悬而未决的问题: