比特币的地址是由一个字符串表示的。比较常见的是以1开头的字符串,也有以2, 3, m, 和 n 开头的字符串。关于这些字符串的区别和联系,笔者一直有很多问题,也在网上搜过很多答案。因此,这篇文章主要是做一个问题和答案的汇总,也包括我自己的一些理解。
理解比特币的raw transaction——OP_RETURN类型输出
上一篇博客中,我们介绍了简单的P2PKH类型输出。这一篇博客,我们将介绍OP_RETURN类型的输出。
理解比特币的raw transaction——P2PKH类型输出
我们经常需要查看比特币中的一些交易数据,比如说一笔交易的发送方和接收方账户是什么,交易额为多少。其实,通过一些比特币的区块浏览器很容易能够查询到。区块浏览器其实是帮我们提前解析好了数据,并通过网页的形式展现出来。 比特币中真实存储在区块中的数据其实是一些raw transaction,这些raw transaction是怎么被解析出来的呢?或者说,raw transaction中的各个字段分别代表什么含义。 这篇博客将首先介绍raw transaction的一般格式。然后以一个简单的raw transaction为例,理解其中各个字段的含义。 这篇博客主要关注最简单的只包含P2PKH类型的交易。
btcd源码解析——从“新区块的生成”开始 (2)
接着上一篇博客,我们继续来讲解作为客户端的btcwallet是如何工作的。也即,作为客户端的btcwallet是如何与btcd进程交互的。
btcd源码解析——从“新区块的生成”开始 (1)
我们从“新区块的生成“开始我们的btcd源码之旅。
btcd源码解析 (0)
因为学习的需要,这一年半和接下来更长的时间都会与Bitcoin打交道。不可避免地,需要对Bitcoin的源码进行修改。 网上找过一些Bitcoin源码分析的资源,但大多都是基于C++实现的源码。笔者对C++并不是很熟悉,相反,用Go语言用得更多一些。所以,这个系列的博客会针对Go语言实现的Bitcoin进行分析,也即btcd。因为btcd的实现中将wallet的功能独立了出来,形成一个新的项目btcdwallet,因此我们也会对btcdwallet的代码实现进行分析。
以太坊实战——从nodejs终端使用web3模块
一直觉得Ethereum相关的开发工具挺繁杂的,网上关于怎么“编写、部署和调用智能合约”的教程也比较多,但这些教程基本上都是基于truffle框架、geth终端等工具进行合约的部署的调用。既然web3只是nodejs环境下的一个JavaScript模块,我一直想通过最简单、纯粹的nodejs环境去直接使用web3,这样能够对web3模块有个比较立体的认识。于是,便有了这篇博文。
基于以太坊私有链部署智能合约
网上已有很多相关教程,但由于geth从1.6版本移除了编译Solidity的功能,如链接所述,许多教程中介绍的方法都失效了。本文综合了网上已有的一些教程,介绍了新的可行方法。