作者回复: 哈希就是对数据的计算,区块数据是固定的,因此无论计算多少次,特定区块的哈希值是固定的。但是会并不满足诸如N个零开头等一些条件,因此就再随机一个数跟区块数据合在一起进行哈希运算,如果不满足条件,就修改这个随机值,直到找到合适的区块哈希为止
作者回复: 你好,不会的。这门课程的定位是给所有专业背景同学看的区块链通识课,提代码的话就有些偏科了。 但我后面会提到推荐的联盟链实现
作者回复: 这得看具体的设计。以比特币为例,就是依据最长链机制。AB两个节点的链因区块不同产生了分叉,形成了两个链,c可能收到了这两条链,此时他不会立即以某条链为准,而是同时维系两条链,一般看谁先领先到n+6个区块,n为出现分叉的节点。领先的即为最长链,其奖励才是有效的。
作者回复: PoA可以认为是工作量证明算法,只不过他的工作量并不是挖矿,而是因身份担保产生"服务费"
作者回复: 可能存在的,但总有一个时刻会有一个链胜出
作者回复: 是的,区块都是有编号的,一旦发现比当前自己节点上的区块链中最高的区块编号还高的区块,但是并不是同一条哈希链上的。就会把两条链的数据都保留,随着时间的推移,会有一个时刻某一条链的区块胜出,就可以替换。文中的说法更简略
作者回复: 对的,是这样的。
作者回复: 你好,这个确实是可以这么类比看的。主要就是为了保证出块速度的绝对时间间隔,防止比特币挖矿奖励在很短的时间内被挖出,因为这样从长远看不利于生态的发展。
作者回复: 为什么要规定:这是为了约束共识的一致性。就是要让参与者知道什么情况算是达成共识。就比如摇骰子,规定大数赢,那相比5,6是赢的。但是如果规定小数赢,那5就赢。类似的道理吧。 短链追上:这就是我后面提到的了,节点当前所累积的最长链可能并不是最终的结果,在某个时刻它可能收到比节点本地存储更长的链,此时节点就应该切换区块链。