比特币的地址是由一个字符串表示的。比较常见的是以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
的功能,如链接所述,许多教程中介绍的方法都失效了。本文综合了网上已有的一些教程,介绍了新的可行方法。