0%

笔者一直以来想学习一下PBFT的完整工程实践。但在网上搜了很多源码和博客,都没能找到一份比较独立且完整的PBFT实现。无奈之下,只能从Hyperledger Fabric的代码中学习其PBFT共识部分的代码。 因此,接下来的系列博客中,笔者将介绍在Fabric中是如何实现PBFT共识算法的。

Read more »

我们应该都用过各种序列化(serialization)的方法(如Python中的pickle.dumps),甚至自己也写过一些序列化的小工具,但可能很少深入思考过序列化的作用。本篇博客即对该问题进行探讨。

Read more »

我们知道,比特币中使用交易ID (TxID) 来作为交易在全网的唯一标识。在此语境下,绝大多数人都认为TxID一定是全网唯一的。 绝大多数情况是这样。但事实上,曾经两起出现过在不同区块中的交易的TxID相同的情况。本篇博客即来介绍这两起TxID碰撞的故事。

Read more »

上一篇博客的最后,我们讲到 AddAllInputScripts函数体中针对每一个非witnessinput调用了SignTxOutput函数。该函数主要用来对当前input构造解锁脚本。 解锁脚本构造的最关键部分在于签名的构造,因而该函数中是用了Sign这个词。 此外,SignTxOutput函数名中虽然写的是output,但这个outputUTXO的意思,也就是当前交易的input

在继续本篇博客的阅读之前,强烈建议读者先阅读关于签名机制的三篇博客签名机制(1) —— 基础知识, 签名机制(2) ——签名流程签名机制(3) —— 源码分析,其中介绍了各种签名哈希类型下message的内容。

Read more »