《精通比特币》要点总结|第三章比特币客户端

《《精通比特币》要点总结|第三章比特币客户端》 bitcoin-2007769_1280.jpg

前言

夏日炎炎,和爱莉莎一起,继续解读《精通比特币》,技术的海洋,水凉宜人。
http://zhibimo.com/read/wang-miao/mastering-bitcoin/Chapter03.html

第三章《比特币客户端》,作者贴了大段代码(为方便查找,爱莉莎把命令摘出来啦)。
不懂代码的同学,先不要走!看看文字描述,也可以了解:

  • 什么是比特币客户端
  • 为什么要用比特币客户端
  • 比特币客户端如何用

什么是比特币客户端?

比特币客户端是比特币点对点网络的核心(即比特币核心),一个个客户端组成了强大健壮的比特币网络。用户可以使用客户端来付款和收款。比特币客户端包括了钱包的功能,也被简称为钱包。

比特币官方客户端(Bitcoin, 也被称为:“中本聪客户端”)。它实现了比特币系统的所有方面,包括钱包、对整个交易账簿(区块链)完整拷贝的交易确认引擎,和点对点比特币网络中的一个完整网络节点。简单来说,包括如下功能:

《拨开区块链资产钱包的重重迷雾》——老猫 一块听听

  • 生成比特币地址
  • 接收、发送比特币
  • 发送比特币
  • 生成并导出私钥
  • 导入私钥
  • 对比特币进行签名
  • 给钱包加密
  • 同步比特币的全节点数据
  • 最早期的 Bitcoin QT 钱包还有挖矿的功能,但后来矿机大量出现,最终被移除了。

比特币核心拥有交易账簿(区块链)的一份完整拷贝,里面记录了自2009年比特币网络被发明以来发生在比特币网络上的每一笔交易。这个数据集目前100GB+,需要几天的时间完成增量形式的下载(从区块0顺次下载到最新区块)。
在整个区块链数据集下载完成前,客户端将不能处理任何交易或是更新账户余额。在下载数据集的过程中,客户端账户余额旁会显示“数据同步中”,底部会显示“正在同步”。请确保你有足够的磁盘空间、带宽和时间来完成初始同步。每次启动客户端,往往也需要几分钟的同步时间。

可以在Bitcoin网站(https://bitcoin.org/en/choose-your-wallet),下载参考客户端。

《《精通比特币》要点总结|第三章比特币客户端》 爱莉莎的雪月花 3-1.png

为什么要使用比特币客户端?

比较安全:使用比特币客户端,这个资产就是100%属于你的。不用担心交易所被盗,交易所跑路。
交易更及时 :只要提前同步好数据,比特币客户端随时可以转账交易,而交易所交易,充值提现,往往有延迟。
建议:一般情况下,如果你资金量很大,且准备长期持有不动;又担心邮箱、在交易所的账户会被黑客攻破等等安全问题; 那么使用比特币客户端,是一种选择。

如何使用比特币客户端?

普通用户看这里:

安装客户端

https://bitcoin.org/en/choose-your-wallet, 下载安装包,完成安装。
安装后,双击图标,启动比特币客户端。
第一次运行客户端时,它会开始下载整个区块链,这个过程可能需要数天。同步完成,即可使用。

《《精通比特币》要点总结|第三章比特币客户端》 爱莉莎的雪月花3-2.png

开发者看这里:

从源码编译比特币客户端

  1. 下载源代码
    在GitHub上的比特币页面(https://github.com/bitcoin/bitcoin),clone 最新源代码。
    $ git clone https://github.com/bitcoin/bitcoin.git
    切换bitcoin 目录:
    $ cd bitcoin
    通过git tag命令,查看发行版本号。按照约定,带有rc后缀的是预发行版本,可以用来测试。没有后缀的稳定版本可以直接在产品环境上运行。
    选择最新的发行版本(《精通比特币》第一版当时的版本,现在最新是0.14.3):
    $ git checkout v0.9.0rc1

  2. 构建命令行的比特币客户端
    仔细阅读build文档第一部分中build(doc、build-xxx.md)的必备条件,确保编译前,你的系统上必须具备的库文件。
    运行autogen.sh脚本,确保你已安装必要的库来编译源码。
    $ ./autogen.sh
    使用configure 脚本,通脱–enable-FEATURE和–disable-FEATURE选项,启用或是禁用某些功能.
    运行configure命令,如果有缺失的库或错误(不兼容),configur命令将会以错误信息终止。这时,需要重新检查构建文档,确认你已经安装缺失的必备条件。
    $ ./configure
    编译源代码:
    $ make
    安装 bitcoind 可执行文件到系统路径下:
    $ sudo make install
    通过询问系统下面2个可执行文件的路径,来确认bitcoin是否安装成功。
    ‘$ which bitcoind/usr/local/bin/bitcoind$ which bitcoin-cli/usr/local/bin/bitcoin-cli’
    运行bitcoind
    $ bitcoind
    第一次运行bitcoind时,它会提醒你用一个安全密码给JSON-RPC接口创建一个配置文件。在.bitcoin目录下创建一个名为.bitcoin/bitcoin.conf 的文件,然后输入用户名和密码。
    如果想设置其他选项,例如txindex(见“交易数据库索引及txindex选项”)。通过输入bitcoind –help,可以查看所有可用的选项列表。
    因为第一次下载所有区块的时间太长,可以通过SourceForge上的BitTorrent客户端下载区块链的部分拷贝来缩短区块链的初始化时间。
    也可以使用 -daemon 选项,以后台模式运行 bitcoind。
    $ bitcoind -daemon

  3. 客户端常用命令

  • 使用JSON-RPC API接口
    这个接口通过命令行帮助程序——bitcoin-cli, 进行访问。
    通过API进行编程,让我们有能力进行交互实验。
    调用help命令查看可用的比特币RPC命令列表:
    $ bitcoin-cli help

  • 获得客户端状态的信息
    显示关于比特币网络节点、钱包、区块链数据库状态的基础信息。
    $ bitcoin-cli getinfo

  • 钱包设置及加密
    在你向前生成秘钥和其他命令之前,你应当先用密码加密钱包。
    命令:encryptwalletwalletpassphrase.
    $ bitcoin-cli encryptwallet foo

  • 钱包备份、纯文本导出及恢复
    创建钱包的备份文件,然后从备份文件重新加载钱包。
    命令:backupwallet、importwallet、dumpwallet

  • 钱包地址及接收交易
    比特币参考客户端维护了一个地址池,地址池的大小可以用getinfo命令keypoolsize参数获取。这些地址是自动生成的,可以被用作公开接收地址或零钱地址。
    命令:getnewaddress、getreceivedbyaddress、listtransactions、getaddressesbyaccount、getbalance

  • 探索及解码交易
    使用gettransaction命令探索前面列出的入账交易。使用gettransaction命令通过交易哈希值获取一笔交易。
    命令:gettransaction、getrawtransaction、decoderawtransaction

  • 探索区块
    使用getblock命令,把区块哈希值作为参数,来查询对应的区块。
    命令:getblock、getblockhash

  • 基于UTXO(未花费的交易输出)的建立、签名与提交
    命令令:listunspent、gettxout、createrawtransaction、decoderawtransaction、signrawtransaction、sendrawtransaction

其它替代客户端、资料库、工具包

  • libbitcoin和sx tools
    一款C++,通过命令行完成的全节点多线程客户端与程序库
  • bitcoinj
    一款全节点java客户端和程序库
  • btcd
    一款全节点GO 语言的比特币客户端
  • Bits of Proof(BOP)
    一款Java企业级平台的比特币工具
  • picocoin
    一款轻量级比特币执行客户端
  • pybitcointools
    一款Python语言的比特币程序库
  • pycoin
    另一款Python语言的比特币程序库

这么多款客户端,总有一款你喜欢!快来试一试吧!

附:

《精通比特币》英文名是《Mastering Bitcoin》, 开源版本在 https://github.com/bitcoinbook/bitcoinbook
中文版《精通比特币》,多人翻译的第一版,在知笔墨上发布,网址:
http://zhibimo.com/books/wang-miao/mastering-bitcoin

参考阅读:
爱莉莎学区块链投资系列
如何在疯狂的区块链投资市场,冷静理性的投资?
疯狂的ICO,你投了吗?【附ICO参投三步走】
三招应对区块链投资风险
《精通比特币》要点总结|第一章介绍
《精通比特币》要点总结|第二章比特币的原理
《精通比特币》要点总结|第三章比特币客户端
《精通比特币》要点总结|第四章密钥、地址、钱包

    原文作者:竹三七
    原文地址: https://www.jianshu.com/p/44b87f149b64
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞