2)共识节点(verifiers) 在Flow中,共识节点负责维护区块,并通过添加新区块对链进行扩展。共识节点接收由收集节点生成的集合的散列引用,并且通过运行拜占庭容错(BFT)共识算法,对集合验证达成一致。 共识节点对集合进行完整BFT共识算法,确认交易顺序并形成块,称为最终块。在Flow中,块包括交易数据和其他输入数据。例如,执行计算所需的随机种子。 共识节点在最后还负责密封区块。区块密封的是在区块被执行节点和验证节点完成计算和验证,所进行的最后步骤。此外,共识节点负责维护与节点的利害关系相关的系统状态的一部分,接收和裁定削减挑战,以及削减故障节点。 3)执行节点(executor) 执行节点是Flow网络中算力最大的节点,主要负责扩展Flow的计算能力。执行节点执行由共识节点生成的最终块,并向验证节点提供所需的信息,以便它们可以检查执行结果。为了提高计算效率,执行节点将块的计算分解各小块,其执行计算的块中发布所关于该块的附加信息,以便验证节点进行验证。 4)验证节点(collectors) 验证节点负责验证执行节点发布结果的正确性。每个验证节点只检查一小部分块,验证节点向执行节点请求重新计算它正在检查的块所需的信息。将验证工作分成小块使得验证节点能够独立和并行地检查块的执行,以达到高效。 具体流程如下图所示: 图2-2节点工作流程图 收集节点将交易数据打包给共识节点,共识节点达成BFT共识后,交给执行节点进行运算,再由验证节点对执行结果进行验证,最后发布结果,让共识节点完成封装入块,并进行广播,开启下一个区块。 开发者工具:Cadence及开源工具 Cadence是一个面向资源编程可对数字资产进行编码的智能合约语言,它将线性类型与对象功能结合在一起,通过确保资源(及其相关资产)一次只能存在于一个位置,不能被复制和创建,从而为数字所有权创建一个安全的声明性模型,并且不会意外丢失或删除。 同时,基于功能的安全性,它要求访问权限仅限于所有者和有效引用的人员,即每个资源都有一个所有者,只有资源的所有者才能在其上调用。这样的方式可以防止引入重入攻击的逻辑流,即双花等攻击。 Cadence属于可升级的智能合约,允许开发者将智能合约以“测试状态”部署至主网,并在后续将其逐步升级。一旦开发者确信自己的代码是安全的,他们可以放弃对合约的控制,该决定不可撤销,自此之后,代码将完全不可篡改。 这一设计平衡了用户对代码知情权的需求,即某一应用或智能合约是否真正无需信任,同时给予开发人员足够的灵活性,在发布后的一段时间里,如出现Bug则可以对代码进行调整,而无需进行更多复杂的操作。 (责任编辑:admin) |