区块最后生成需要检查很多部分的数据有效性,然后给区块增加算力证明数据,最后广播到全网,被大家认可之后成为各个账本的一部分。在这个过程中,首先要检查Ommer区块头的数据有效性,
公式1表述Ommer区块节点的个数不能大于2个,并且公式2表示对于所有属于Ommer节点的区块头信息,要符合公式3的验证,公式3已经在之前的章节给出过完整的定义,这个就是按照区块头数据的格式来检验的;公式4是一个新定义,表示连续检查6级Ommer节点的链。公式5表示如果n=0,不在继续检查。公式7是个新的公式,公式8是n-1之后递归调用。公式9是公式7的完整定义,公式10表示当前区块头的父节点与Ommer节点相同,并且公式11表示当前区块头与Ommer不是同一节点,公式12表示当前这个Ommer节点不是当前区块的内部的Ommer节点。这三个判断条件如下图三个连线表示:
公式14是交易有效性的验证公式,该公式含义是本区块投中gas的消耗数据与交易中累计的gas消耗数是一样的。
公式15是奖励机制,增加受益者账号余额,公式17是一次区块的奖励额度的固定部分,每次区块的奖励与当前区块的Ommer节点个数相关,公式17前的系数等于Ommber节点的个数除以32然后加1.公式18和公式19表示奖励Ommer节点对应的收益账号,收益账号的余额增加R,公式21给出了奖励的额度,这个与当前区块的高度与Ommer节点的区块高度的差相关,如公式22,23所示,叔叔节点的高度肯定是小于当前区块的高度,因此公式21说明,距离当前区块越远,得到的奖励越小。
公式24是在当前区块还没有成为区块链的一个元素之前,区块B的与全局状态的映射关系,这是在检查状态变迁之前的有效性。公式27是将一个不完整的区块B通过状态转换函数转换成为一个完整的区块。这个过程主要是通过POW的方式,将不具备nonce字段的区块B*,nonce值,还有一个数据集d运算,计算一个值x,和m,同时x要满足公式28的不等式,公式29表示新的完整的区块的Hm和Hr的值,即mixedHash和stateRoot的值。公式30中几个公式在前面的章节已经介绍过,他们从函数内到外分别是区块到具体状态数据集合的映射,状体迁移函数和区块状态终结函数。