Bitcoin开发 – 环境搭建

目录

  • 一. 环境准备
    •   1. 通过以下命令可安装并编译bitcoind所需要的依赖库:
    •   2. 下载bitcoin源代码并进入其目录
    •   3. 编译源代码(正常流程)
  • 二. 问题解决:
    •   1.下载失败:
    •   2. 排除warning
  • 三、启动bitcoind并加入比特币测试网络

正文

学习完区块链枯燥乏味的、高深的、必备的基础知识后,终于可以走上开发之路了!真是迫不及待啦!之后博客更新主要放在区块链的开发上,相信这才是大多数同学更加感兴趣的地方!学习过程从最经典的区块链鼻祖-比特币学习,之后了解下区块链2.0代表:以太坊,最后主要精力放在区块链3.0的代表超级账本!

通过分析源码,了解其底层技术的设计及实现,介绍比特币的开发,先介绍比特币开发环境的搭建!

Linux、Mac、Windows等平台均支持运行比特币代码,作为开发人员,可以重点研究其中的bitcoind代码部分,因为这是比特币协议及区块链的核心,至于面向终端用户的图形界面(GUI)部分,完全可以忽略,对后续研究毫无影响。

在此,只介绍Linux环境下,开发环境的搭建。(作者操作系统版本为:Ubuntu16.04Desktop 64bit)

因为该开源项目是C/C++语言开发的,当然现在github上有很多其他语言实现的,语言无所谓重要的是思想,所以还是以官方代码分析为例子。以C++语言为例子,说明如何调用比特币钱包节点提供的RPC接口服务,实现一些涉及比特币区块链的具体应用功能。除了C++外还有很多种语言都可以调用Bitcoin的RPC,例如:Node.js,python等。读者可以参考本章内容选择适合自己的语言具体试验。

RPC(Remote Procedure Call)即远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

一. 环境准备

  1. 通过以下命令可安装并编译bitcoind所需要的依赖库:

用命令apt-get install安装,如果没有找到该命令则安装apt-get(自行搜索,安装后sudo apt-get update更新包),如果显示权限不够则加用sudo apt-get install命令

  • 安装编译环境
  • 安装必备依赖库
  • 安装钱包依赖库
  • 安装其他依赖库(可选)
  • 安装GUI依赖库(可选)
  • 如果没有安装git则先安装(命令:sudo apt-get install git-core)
    如果git clone太慢,可以直接上该网址将源码download下来,然后创建文件夹bitcoin,解压到其中。
  • 干脆,我们直接一条命令执行!(只重点研究bitcoind代码部分,其他依赖包可不安装)

  2. 下载bitcoin源代码并进入其目录

  3. 编译源代码(正常流程)

其他编译选项:

因为我们研究的是核心代码部分,故编译命令如下:(禁用钱包、GUI)

  附官方文档:https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md

bitcoin-cli、bitcoind、bitcoin-qt区别:

bitcoin-qt,带GUI的完整节点;

bitcoind,无GUI的完整节点;

bitcoin-cli,使用bitcoin-cli访问JSON-RPC接口。

二. 问题解决:

  1.下载失败:

762938-20180611103640855-551631244

尝试了两次,每次都好长时间,最终都以失败告终。

报错:RPC failed;curl 56 GnuTLS recv error (-54): Error in the pull function.

解决方法:

原因是推送的文件太大,所以增大git的临时缓冲区:

参考:https://stackoverflow.com/questions/38378914/git-error-rpc-failed-curl-56-gnutls

762938-20180611123622409-729711739

报错:fatal:The remote end hung up unexpectedly.

fatal:index-pack failed.

算了,这次又失败了,我查了查“fatal:index-pack failed”,是权限或连接超时问题,懒得去解决这个问题了,干脆直接去github下载,速度贼快!推荐这种方法:下载如图所示:

762938-20180611125143589-1695275064

直接上该网址https://github.com/bitcoin/bitcoin.git将源码download下来,然后创建文件夹bitcoin,解压到其中。

762938-20180611130205963-1663298255

将文件提取(解压)到bitcoin文件夹下。

762938-20180611130259287-1596764363

继续运行上面操作即可!

  2. 排除warning

执行完.configure之后需要看看是否有相应的错误信息或者WARNING。一般warning是可以允许的,不影响主要功能使用。但是我们最好逐一排除警告。(若只分析bitcoind代码,可以忽略此部分。)

762938-20180611132458189-1206693259

原因:warning: zmq找不到大于4的版本 。

762938-20180611132207112-859243776

原因:warning:缺少qt所需的依赖

762938-20180611132538936-1400650653

注:版本问题,可忽略不计,因为前边命令忽略了版本(–with-incompatible-bdb为忽略libdb版本差异)。强迫症可以自己升级!

这些导致了:(当然学习源码的话,已经足够了!)

762938-20180611132240478-1174523072

排除警告后:

762938-20180611134218908-1136380649

三、启动bitcoind并加入比特币测试网络

  • 启动bitcoind

    762938-20180611140054018-558126437
  • 停止bitcoind

    bitcoin-cli访问JSON-RPC接口

  • 获取节点统计信息

762938-20180612164946503-1788670341

  • 获取区块链信息

762938-20180612170309378-1770082996

  • 获取网络信息

762938-20180612170505139-1643133204

  • 获取钱包信息

762938-20180612170657004-1808387681

  • 获取某个区块信息

762938-20180612165453558-1879342517

原文:https://www.cnblogs.com/X-knight/p/9164955.html

承接各种网站开发与修改、爬虫、数据采集分析、小程序等任务

Html+Css+JS+PHP+Nodejs+Python

专治网站各种不服

一起探讨,互相学习,共同进步!有事儿您说话。

This entry was posted in BTC-比特币 and tagged , , , by 织梦先生. Bookmark the permalink.