从零开始学习区块链技术(一):从源代码编译比特币
来源:区小白
写在开始之前,为什么你一定要学习区块链技术?
技术的变革和迭代一直在飞速发展中,作为有着15年程序开发经验的我,常常在思考现在的我们到底改如何做,到底应该学习些什么,才能跟上新的时代变革,保持自身的竞争力,并且能为这个世界带来更好的改变呢?
答案是,学习新技术,成为紧跟时代发展趋势的稀缺技术人才。而毫无疑问,比特币区块链技术是绝对不容错过的。
当我研究了比特币区块链之后,更加确信了这一点。比特币区块链技术解决了人和人之间的信任问题,是对生产力和生产关系的一次变革,而这必将影响人类社会的发展。
想到就要做到,于是我开始深入研究了比特币区块链技术,从0开始一行行的代码跑起来,遇到过很多坑,花了很多时间和精力爬坑。现在我把这些凝聚时间和心血的学习资料整理成文档写成教程,希望能够帮助你在学习的过程中少些弯路。
准备工作
没有亲自跑一遍代码,不算真正的学习。
今天我们开始从零编译比特币源代码。
下载比特币源代码
首先要做的就是从
github
上下载比特币的源代码,其中 doc 目录为比特币文档,src 为系统源代码,test 为测试代码的目录。具体怎么下载,想必大家都用过 git 和 github ,就不用我细说了。
当我们下载完源代码之后,进入 doc 子目录,找到 build-xxx.md 文档,xxx 代表了不同的系统,当前支持的系统有 freebas、netbsd、openbsd、osx、unix、windows 等,根据你的系统参考不同的安装文档。比如,我的系统为 Mac,对应的就是 build-osx.md,打开这个文档会看到构建说明和一些备注。
命令行工具准备
在 Mac 系统下,必备的工具就是 xcode 命令行工具,我们通过输入如下命令进行安装:xcode-select --install当弹出窗口出现时,选择 安装。
安装依赖
当命令行工具安装之后,接下来我们要做的就是安装依赖,在些特别推荐使用
Homebrew
,这是 Mac 下面安装应用的必备神器。
当 Homebrew 安装完成之后,就开始安装编译比特币的各种依赖了,命令如下:
brew install automake berkeley-db4 libtool boost miniupnpc openssl pkg-config protobuf python qt libevent qrencode如果你需要生成 dmg 可执行文件,那么还需要 RSVG,安装命令如下:brew install librsvg
具体步骤
当依赖安装完成之后,就真正开始编译比特币。
- 首先,进入比特币根目录。命令如下: cd bitcoin
- 然后,开始编译比特币源代码。命令如下: ./autogen.sh ./configure make如果你不需要图形界面,那么在执行 ./configure 时需要加入 --without-gui 标志,即 ./configure --without-gui。另外,在 Mac 系统下,为了调试比特币代码,需要把 configure 文件中的所有 -g -O2 替换为 -g,这是因为 Mac 下的 LLDB 存在 bug,导致某些变量不可用。比特币编译成功时,会在 src 目录下面生成4个可执行的命令:bitcoind、bitcoin-cli、bitcoin-tx、qt/bitcoin-qt,如红框所示。
- 强烈建议,你执行下面的命令来运行一遍单元测试: make check通常这一步是不会出错的。
- 可选地,你也可以生成一个 dmg,命令如下: make deploy执行这个命令后,系统会提示你把应用放在 Application 下面。最终应用案头在 /Applications/Bitcoin-Qt.app 下。
当比特币编译完成后,万事大吉,只欠运行了。
- 设置下 RPC用户及密码
但是在运行比特币核心客户端之前,强烈建议你设置下 RPC用户及密码,这样你才可使用系统提供的所有 RPC 命令。
具体命令如下:
echo -e "rpcuser=bitcoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"chmod 600 "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"执行完上面两个命令之后,我们来确认是否设置成功。
首先执行:
ls -l "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
来确认文件的模式为 -rw-r--r—,如图下图:
[图片上传失败...(image-1dd9eb-1535530998782)]
然后再执行vi "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
看到文件内容如下即为设置成功。
img当设置完 RPC 用户及密码之后,下面就开始输入最最重要的命令:./src/bitcoind -testnet # -testnet 代表的是测试网络,如果不加这个标志,那么就连接到比特币主网络。作为演示,此处连接到比特币测试网络。键入上面的命令并按下回车键。
比特币运行图恭喜你,你的比特币之路已经开始。
编译成功
当你看到下面的图片时,恭喜你编译成功了。
제니시스 CEO "공매도, BTC 하락 원인 아니다"
제니시스 CEO "공매도, BTC 하락 원인 아니다"암호화폐 전문 미디어 AMB크립토(AMBCrypto)에 따르면, 글로벌 최대 암호화폐 장외거래(OTC) 시장 중 하나인 제네시스...

블록체인 미디어 블록인프레스, BTC Media와 지분스왑 글로벌 미디어 기업과 파트너십 체결 - 신생 미디어 스타트업과 글로벌 미디어 기업간 이례적 파트너십 - 블록인프레스, 한국 시장 넘어 글로벌 진출 계기 마련
국내 블록체인 전문 미디어 블록인프레스와 세계적인 블록체인 미디어 BTC Media가 손을 잡는다. 양사는 14일 지분 교환(스와프)을 통해 파트너십을 맺고 국내외 독자들에게 블록...
중국 암호화지수에서 비트코인(BTC)이 17위로 추락한 이유는?
암호화폐 매체인 크립토베스트(Cryptovest)는 중국의 블록체인 평가단 리더와 만나 비트코인(BTC)의 순위가 왜 그렇게 낮은 순위에 있으며, 이오스(EOS)가 갑자기 30개의...