主页 > imtoken苹果版下载链接 > # 6 编译、配置和运行比特币

# 6 编译、配置和运行比特币

imtoken苹果版下载链接 2023-02-01 08:02:27

比特币源码修改_比特币交易平台 源码_比特币交易所java源码

比特币核心架构图

阅读本文后,您将能够在您的机器上运行比特币; 由于比特币是一个开源项目比特币源码修改,任何人都可以使用这部分代码,或者提交修改后的代码。 参与其中的人自发组织形成了比特币社区。 到目前为止,社区一直在增长——从 2009 年的中本聪到 2018 年的 500 多名志愿者,其中很多都是全职。

比特币交易平台 源码_比特币源码修改_比特币交易所java源码

目前,比特币核心(bitcoin core)是所有区块链开发者的权威参考。 从题图的架构图可以看出,它实现了钱包、交易、区块验证引擎、p2p网络和区块链等核心模块,另外,为了不断进化,比特币社区也会提出标准,比如BIP-39、BIP-32等标准(Bitcoin Improvement Proposal),目前的开发者更倾向于参考BIP标准进行开发。

下面我们一步步从代码开始,最后在自己的电脑上运行比特币。

编译

比特币的代码存放在github上,先下载到本地,假设你已经会用git

$ git clone https://github.com/bitcoin/bitcoin

选择特定版本并避免运行正在开发中的版本

$ git tag                        # 列出所有的版本
$ git checkout v0.11.2  # 选择版本
$ git status                   # 查看是否已经切换版本

比特币源码修改_比特币交易所java源码_比特币交易平台 源码

HEAD detached at v0.14.1

安装文档

切换版本后,我们需要查看安装文档,安装文档在doc目录下,不同的操作系统对应单独的文档

安装

笔者是Mac环境,所以这里只涉及Mac上的安装,其他环境类似

安装前需要先安装一些依赖库,假设你已经安装了Homebrew

brew install automake berkeley-db4 libtool boost --c++11 miniupnpc openssl pkg-config protobuf --c++11 qt5 libevent

然后执行源码安装的老三

$ ./autogen.sh
$ ./configure
$ make

比特币交易所java源码_比特币交易平台 源码_比特币源码修改

$ sudo make install # 这一步可选,如果你不安装,编译好的程序在src目录下 $ ls src/{bitcoind,bitcoin-tx,bitcoin-cli} src/bitcoin-cli src/bitcoin-tx src/bitcoind

以上操作如有错误,请自行阅读安装文档

阐明

谁将运行比特币核心程序? 一般包括:

比特币软件的开发者需要调用API来开发应用程序。 这些应用程序的功能是检查比特币交易。 例如,单纯的blockchain.info等网站的支持比特币源码修改,让比特币网络更加健壮,也就是服务更多的用户。 处理更多交易你不想像我们一样通过第三方来验证自己的交易,用它来学习配置

bitcoind是后台运行的程序,所以配置项要么写在配置文件中(配置文件默认为~/.bitcoin/bitcoin.conf),要么通过命令行参数配置,可以通过bitcoind查看—— h,因为很多,这里有几个重要的配置:

alertnotify:通过命令或脚本向用户发送警告,通常是电子邮件。 这个配置项写在配置文件中的格式如下,

alertnotify=myemailscript.sh "Alert: %s"

conf:指定配置文件路径,该选项只能通过命令行设置

比特币源码修改_比特币交易所java源码_比特币交易平台 源码

./bitcoind -conf=bitcoin.conf

datadir:存放数据的路径,注意指定的目录需要有足够的存储空间(建议500GB以上),在配置文件中写入的配置格式如下:

datadir=/lotsofspace/bitcoin

prune:删除旧块,以减少存储空间的使用; 单位是MB,可以写在配置文件中

prune=5000

txindex:默认情况下,Bitcoin Core 只创建与用户钱包相关的交易索引。 如果需要维护所有交易的索引,则需要设置该选项。注意:如果一开始没有启用该选项,则需要重启bitcoind并添加-reindex选项重建索引

txindex=1

maxconnections:最大可接受连接数,减少连接数可以减少带宽消耗

maxconnections=15

比特币交易平台 源码_比特币交易所java源码_比特币源码修改

maxmempool:限制事务内存池的使用,单位MB,可以有效控制内存资源

maxmempool=200

maxreceivebuffer/maxsendbuffer:限制每个连接的缓冲区,以 KB 为单位

maxreceivebuffer=2500
maxsendbuffer=500

minrelaytxfee:设置允许传输的最低交易费用,可以减少交易内存池的使用

minrelaytxfee=0.0001

基本上,通过这些配置,你可以很好地控制你的比特币核心。 例如,以下配置可以用作比特币应用程序的 API 后端

alertnotify=myemailscript.sh "Alert: %s"

比特币源码修改_比特币交易所java源码_比特币交易平台 源码

datadir=/lotsofspace/bitcoin txindex=1 rpcuser=bitcoinrpc rpcpassword=CHANGE_THIS

对于新手来说,肯定想看看比特币运行的日志,可以通过以下命令来完成

bitcoind -printtoconsole

相反,如果你想让它作为守护进程运行,你需要指定 -daemon 选项

bitcoind -daemon

最后,您还可以通过执行以下命令来监控比特币的运行状态

bitcoin-cli getinfo

好吧,我相信你已经可以独立运行比特币客户端了。 这是一个好的开始。 有了这样的环境,我们就已经具备了学习比特币代码的条件。 不要犹豫,阅读代码。 阅读代码是最直接的学习方式。