主页 > 安卓手机怎么安装imtoken > Ubuntu16-2021下比特币源码编译运行

Ubuntu16-2021下比特币源码编译运行

安卓手机怎么安装imtoken 2023-05-06 06:30:52

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项为必填项,其余为选填项

参考博客: