0%

比特币的地址是由一个字符串表示的。比较常见的是以1开头的字符串,也有以2, 3, m, 和 n 开头的字符串。关于这些字符串的区别和联系,笔者一直有很多问题,也在网上搜过很多答案。因此,这篇文章主要是做一个问题和答案的汇总,也包括我自己的一些理解。

Read more »

我们经常需要查看比特币中的一些交易数据,比如说一笔交易的发送方和接收方账户是什么,交易额为多少。其实,通过一些比特币的区块浏览器很容易能够查询到。区块浏览器其实是帮我们提前解析好了数据,并通过网页的形式展现出来。 比特币中真实存储在区块中的数据其实是一些raw transaction,这些raw transaction是怎么被解析出来的呢?或者说,raw transaction中的各个字段分别代表什么含义。 这篇博客将首先介绍raw transaction的一般格式。然后以一个简单的raw transaction为例,理解其中各个字段的含义。 这篇博客主要关注最简单的只包含P2PKH类型的交易。

Read more »

因为学习的需要,这一年半和接下来更长的时间都会与Bitcoin打交道。不可避免地,需要对Bitcoin的源码进行修改。 网上找过一些Bitcoin源码分析的资源,但大多都是基于C++实现的源码。笔者对C++并不是很熟悉,相反,用Go语言用得更多一些。所以,这个系列的博客会针对Go语言实现的Bitcoin进行分析,也即btcd。因为btcd的实现中将wallet的功能独立了出来,形成一个新的项目btcdwallet,因此我们也会对btcdwallet的代码实现进行分析。

Read more »

一直觉得Ethereum相关的开发工具挺繁杂的,网上关于怎么“编写、部署和调用智能合约”的教程也比较多,但这些教程基本上都是基于truffle框架、geth终端等工具进行合约的部署的调用。既然web3只是nodejs环境下的一个JavaScript模块,我一直想通过最简单、纯粹的nodejs环境去直接使用web3,这样能够对web3模块有个比较立体的认识。于是,便有了这篇博文。

Read more »