主页 > 安卓手机怎么安装imtoken > Ubuntu16-2021下比特币源码编译运行
Ubuntu16-2021下比特币源码编译运行
Ubuntu16下比特币源码编译运行
比特币来源链接:
doc目录下的build-unix.md描述了编译步骤
源码学习参考链接: 1.更新软件列表
sudo apt-get update
2.安装依赖包
按顺序执行:
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3
sudo apt-get install libevent-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev
sudo apt install libsqlite3-dev
sudo apt install libminiupnpc-dev libnatpmp-dev
sudo apt-get install libzmq3-dev
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools
sudo apt-get install libqrencode-dev
3.将源码克隆到本地
git clone https://github.com/bitcoin/bitcoin.git
如果没有git命令,先执行:
sudo apt-get install git-core
4.编译运行
按顺序执行:
cd bitcoin
./autogen.sh
./configure
Ubuntu16在执行./configure编译时,一般会遇到以下几种情况:
GCC 版本与 C++ 版本不对应。
错误消息:configure: error: *** 需要支持 C++17 语言特性的编译器。 Berkeley DB 版本太高(需要 DB 4.8)
错误消息:配置:错误:缺少 libdb_cxx 标头,Bitcoin Core 需要此库来支持 BDB 钱包(–without-bdb 以禁用 BDB 钱包支持)
解决方案:
Ubuntu自带的GCC版本是5.4.0,bitboin的源代码是C++17。 可以编译C++17的GCC版本应该是GCC 7.xx,所以需要更新GCC版本。
按顺序执行:
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.gz
tar -zxvf gcc-7.2.0.tar.gz gcc-7.2.0/
cd gcc-7.2.0
./contrib/download_prerequisites
mkdir build
cd build
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make && make install ## 这个步骤一般需要三四个小时
##执行结束之后可查看gcc版本
gcc -v
安装 Berkeley DB 4.8 版本
按顺序执行:
wget http://download.oracle.com/berkeley-db/db-4.8.30.tar.gz
tar xvzf db-4.8.30.tar.gz
mkdir /usr/local/db
cd db
./../db-4.8.30/dist/configure --prefix=/usr/local/berkeleydb --enable-cxx
make && sudo make install
sudo echo '/usr/local/berkeleydb/lib/' >> /etc/ld.so.conf
ldconfig
##至此,Berkeley DB 4.8 安装完成
5.回到./bitcoin目录重新编译
./configure LDFLAGS="-L/usr/local/berkeleydb/lib/" CPPFLAGS="-I/usr/local/berkeleydb/include/"
make
sudo make install
编译成功后会生成如下文件:
参考博客:
6.编写配置文件
mkdir -p ~/.bitcoin
touch ~/.bitcoin/bitcoin.conf
gedit ~/.bitcoin/bitcoin.conf
将以下内容粘贴到文件中并保存:
rpcuser=someusername
rpcpassword=somepassword
daemon=1
server=1
keypool=10000
prune=600
maxuploadtarget=20
maxconnections=16
walletnotify=curl http://127.0.0.1:11990/?txid=%s
7.bitcoin core的简单使用
比特币具有三个独立的网络:Mainnet、Testnet 和 Regtest。
Mainnet是主网,也就是真正有价值的比特币和交易都在这里流通。
测试网是与主网规则和功能相同的测试网络,其上流通的“比特币”一文不值。
Regtest 是一个本地私有区块链,旨在作为本地测试的封闭操作系统。
主网和测试网都需要做区块同步比特币查询余额的软件,比较耗时和内存,所以可以简单的使用Regtest进行测试。
(1) 启动和停止
bitcoind -regtest
## 返回Bitcoin Core Start
bitcoin-cli stop
## 返回Bitcoin Core Stop
(2) 创建新钱包
目前regtest已经取消了创建默认钱包的功能,所以为了能够挖矿和交易,您需要创建一个钱包
bitcoin-cli -regtest createwallet "xxx"
(3) 创建新的交易地址
bitcoin-cli -regtest getnewaddress
## 返回地址哈希
(4) 矿业
bitcoin-cli -regtest generatetoaddress [number] [address]
## 挖number个区块并将获得的区块奖励给address
## 返回所有区块的哈希值
(5)查询区块链信息
bitcoin-cli -regtest getblockchaininfo
(6) 显示每个地址的余额信息
bitcoin-cli -regtest listaddressgroupings
(7) 发送交易
bitcoin-cli sendtoaddress address [amount] [comment] [comment_to] [subtractfeefromamount] [replaceable] [conf_target] [estimate_mode]
范围:
地址:字符串,发送到的比特币地址
amount: 值,发送数量
comment:String,用于存储交易目的的评论。 它不是交易的一部分,它只是在你的钱包里。
comment_to: String 用于存储将交易发送到的个人或组织名称的注释。
subtractfeefromamount:布尔值,是否从发送的金额中扣除费用,如果是,接收方将收到比您在“金额”栏中输入的比特币更少的比特币。
可替换:布尔值比特币查询余额的软件,允许通过 BIP 125 将此交易替换为费用更高的交易
会议目标
estimate_mode: string, 成本估算模式:UNSET, ECONOMICAL, CONSERVATIVE 三种模式
注:1、2项为必填项,其余为选填项
参考博客: