bitcoin: 编译与运行

本贴最后更新于 2134 天前,其中的信息可能已经东海扬尘

来自简书
btc address: 1FmWXNJT3jVKaHBQs2gAs6PLGVWx1zPPHf

服务器中最常见的系统是 ubuntu, 我们拿 ubuntu 来做演示.
由于同步全部的区块链, 大概需要 200G 的空间, 记得挂载个大硬盘哦.

挂载分区

阿里云挂载数据盘

更新系统

sudo apt-get update
sudo apt-get upgrade

下载 Bitcoin 源码, 并切换版本

sudo apt-get install -y git
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin && git checkout v0.16.0

安装依赖

sudo apt-get install -y  autoconf libtool pkg-config \
libboost-all-dev libssl-dev libevent-dev

安装 berkeleyDB

berkeleyDB 是一款嵌入式数据库, 类似 Sqlite.
BerkeleyDB 做钱包数据库, 保存私钥等. 而且需要一个老的版本 berkeleyDB-4.8.30.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev

编译 bitcoin

./autogen.sh
./configure 
make
make install

在执行 ./configure 时, 出现以下提示, 表示准备工作已经完成

Options used to compile and link:
  with wallet   = yes
  with gui / qt = no
  with zmq      = no
  with test     = yes
  with bench    = yes
  with upnp     = auto
  debug enabled = no
  werror        = no

  target os     = linux
  build os      =

  CC            = gcc
  CFLAGS        = -g -O2
  CPPFLAGS      = -I/usr/local/BerkeleyDB.4.8/include -O2 -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS
  CXX           = g++ -std=c++11
  CXXFLAGS      = -g -O2 -Wall -Wextra -Wformat -Wvla -Wformat-security -Wno-unused-parameter
  LDFLAGS       = -L/usr/local/BerkeleyDB.4.8/lib

运行 bitcoin

bitcoind -daemon -datadir=<datadir>

bitcoind -daemon -datadir=/mnt/blocks 
# datadir把同步的数据下载到/mnt/blocks  /mnt是新挂载的数据盘

需要一段时间等待数据全部同步完.

执行 rpc 命令

详细的 rpc 列表 https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

bitcoin-cli -datadir=/mnt/blocks getblockhash 0
# 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

bitcoin-cli -datadir=/mnt/blocks getblockcount
# 311952

说明节点已经在同步数据了.

停止 bitcoind

bitcoin-cli stop

本人根据官方步骤做了一些裁剪, 在服务器运行, 不需要 qt 客户端,
就没有安装 qt 依赖, 尽量保持精简.

安装 QT5 依赖

sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler

sudo apt-get install libqrencode-dev

再执行 make -j3, 会生成 bitcoin-qt, 运行 ./src/qt/bitcoin-qt 会启动图形界面.

mac 系统 qt 界面


参考:

https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
Issue #3686 · bitcoin/bitcoin
http://man.linuxde.net/ldconfig
https://en.bitcoin.it/wiki/Running_Bitcoin

  • 比特币

    比特币(BitCoin)的概念最初由中本聪在 2009 年提出,根据中本聪的思路设计发布的开源软件以及建构其上的 P2P 网络。比特币是一种 P2P 形式的数字货币。点对点的传输意味着一个去中心化的支付系统。

    27 引用 • 169 回帖 • 79 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...