当前位置: 首页 > article >正文

比特币客户端和API

1. 比特比客户端的安装

        Bitcoin Core 客户端适用于从 x86 Windows 到 ARM Linux 的不同架构和平台,如下图所示:

2. Bitcoin Core客户端的类型 

        2.1 Bitcoind

        Bitcoind 末尾的字母 d 表示 daemon (守护程序)。所谓守护程序,就是指常驻内存能够连接运行的程序(就好像守护者一样),用于处理计算机系统希望接收到的阶段性的服务需求。daemon 程序段可以将请求提交给其他适合的程序(或者进程)。Bitcoind 作为守护程序运行的核心客户端软件,提供 JSON-RPC 接口,可以持续等待从网络客户端及其用户发送来的请求。

        2.2 Bitcoin-cli

        Bitcoin-cli 末尾的 cli 给示 command line(命令行),它是与 Bitcoind 交互的功能丰富的命令行工具。Bitcoind 与区块链进行交互并执行各种功能。Bitcoin-cli 仅调用 JSON-RPC 功能,并且不会在区块链上自行执行任何操作。

        2.3 Bitcoin-qt

Bitcoin-qt 末尾的 qt 表示一个 C++ 库,包括图形用户界面(Graphical User Interface,GUI),因此 Bitcoin-qt 是 Bitcoin Core 客户端的 GUI。当钱包首次启动时,它将验证磁盘上的区块,然后启动并显示下图的 GUI 。

        验证过程并不特定于 Bitcoin-qt 客户端,它也是由 Bitcoind 客户端执行的。

3. 设置比特币网络节点

        下图显示了在 Ubuntu 上安装 Bitcoin Core 的运行示例。

对于其他平台,你可以从以下网址获取详细信息:

        https://bitcoin.org/en/

(1) 运行以下命令:

[admin@daolian~]$sudo apt-get update

(2)根据需要安装的客户端,可以使用以下任一命令,也可以一次发出两个命令:

[admin@daolian ~]$sudo apt-get install bitcoind
[admin@daolian ~]$sudo apt-get install bitcoin-qt
[admin@daolian ~]$sudo apt-get install bitcoin-qt bitcoind
Reading package lists... Done
Building dependency tree
Reading state information ... Done

 4. 设置源代码

        如果用户希望参与比特币代码开发或用于学习目的,则可以下载和编译比特币源码。以下 git 命令可用于下载比特币源代码:

[admin@daolian ~]$sudo apt-get install git
[admin@daolian ~]$mkdir bcsource
[admin@daolian ~]$cd bcsource
[admin@daolian ~]$git clone https://github.com/bitcoin/bitcoin.git
Cloning into 'bitcoin'.....
remote: Counting objects:78960,done.

将目录更改为 bitcoin:

[admin@daolian ~]$cd bitcoin

完成以上步骤后,可以编译代码:

[admin@daolian ~]$./autogen.sh
[admin@daolian ~]$./configure.sh
[admin@daolian ~]$make
[admin@daolian ~]$sudo make install

 5. 设置 bitcoin.conf

        bitcoin.conf 文件是配置文件,Bitcoin Core 客户端使用该文件保存配置信息,可以在配置文件中设置 Bitcoind 客户端的所有命令行选项(-conf 开关除外)。当启动 Bitcoin-qt 或 Bitcoind 时,它将从该文件中获取配置信息。

        在 Linux 系统中,通常可以在 $HOME /.bitcoin/中找到该配置文件,或者在命令行中使用 -conf=<file> 开关指定它。

6. 在测试网中启动节点

        如果要测试比特币网络并运行实验,则可以在 testnet 模式下启动比特币节点。与实时网络相比,这是一个更快的网络,并且对于采矿和交易具有宽松的规则。

        比特币测试网络可以使用各种终端服务,例如比特币 testnet 沙箱,用户可以请求将比特币支付到 testnet 比特币地址。

注意:

测试网访问地址如下:

https://testnet.manu.backend.hamburg/

         这对于在测试网上试验交易非常有用。启动 testnet 的命令行如下:

[root@localhost ~]#bitcoind --testnet -daemon
[root@localhost ~]#bitcoin-cli --testnet <command>
[root@localhost ~]#bitcoin-qt --testnet

7. 以 regtest 模式启动节点

regtest 模式(回归测试模式)可创建用于测试目的的本地区块链。

可以使用以下命令以 regtest 模式启动节点:

[admin@daolian ~]$bitcoind -regtest -daemon
Bitcoin server starting

可以使用以下命令生成区块:

[admin@daolian ~]$bitcoin-cli -regest generate 200

在 Linux 系统上,可以在.bitcoin/regtest 目录的 debug.log 中查看相关日志消息,如下图所示:

8. 使用Bitcoin-cli 进行实验

        Bitcoin-cli 是 Bitcoin Core 客户端提供的命令行界面,可通过 Bitcoin Core 客户端提供的 RPC 接口执行各种功能,如下图所示 

可以通过如下图所示的命令显示所有命令的列表。 

        上图显示了 Bitcoin-cli (比特币命令行)界面中可用的各种命令行选项的列表,这些命令可用于查询区块链并控制本地节点。

9. 比特币编程和命令行接口

        比特币编程现在是一个非常丰富的领域。Bitcoin Core 客户端公开了各种 JSON-RPC 命令,这些命令可用于构造原始交易并通过自定义脚本或程序执行其他功能。

        此外,还可以使用命令行工具 Bitcoin-cli,该工具利用 JSON-RPC 接口并提供丰富的工具集来处理比特比。

        这些 API 可以通过在线服务提供商以比特币 API 的形式获得,它们提供一个简单的 HTTP REST 接口。常见的比特币 API 在线服务提供商如下:

  • Blockchain.info

                https://blockchain.info/api

  • BitPay

                https://bitpay.com/api

  • Block.io

                https://www.block.io

这些在线服务提供商提供多种选择开发比特币的解决方案。

除此之外,还有各种库可用于比特币编程。常见的库列表如下:

  • Libbitcoin。提供强大的命令行实用程序和客户端,其网址如下:

                https://libbitcoin.dyne.org

  • Pycoin。支持 Python 的库,其网址如下,

                https://github.com.richardkiss/pycoin

  • Bitcoinj。以 Java 实现的库,其网址如下:

                https://bitcoinj.github.io/

有许多在线比特币 API 可用。下面列出了最常用的 API 。

  • https://bitcore.io
  • https://bitcoinjs.org/
  • https://blockchain.info/api

        由于 API 提供几乎类似的功能类型,因此用户在决定使用哪个 API 时会感到困惑。另外,由于 API 都具有丰富的功能,因此很难推荐最好的 API 。但是,用户要牢记安全第一。第当评估使用 API 时,除了评估其提供的功能外,还要评估该 API 设计的安全性。 

 


http://www.kler.cn/a/291161.html

相关文章:

  • 20241217使用M6000显卡在WIN10下跑whisper来识别中英文字幕
  • 苹果手机怎么清理空间:拯救你的拥挤手机
  • WIN10拖入文件到桌面,文件自动移动到左上角,导致桌面文件错乱
  • Unity 碎片化空间的产生和优化
  • MySQL 在window免安装启动
  • CSDN数据大屏可视化【开源】
  • 日程安排组件DHTMLX Scheduler v7.1 - 支持RFC-5545格式
  • VSCode中多行文本的快速前后缩进
  • kitti深度估计数据集介绍
  • Python知识点:Python开发中,如何使用Git进行版本控制
  • WEB渗透Linux提权篇-可写文件提权
  • 集成电路学习:什么是MOSFET(MOS管)
  • 【kubernetes】污点配置、cm、secret练习
  • 数学基础 -- 线性代数之共轭转置矩阵
  • 体会循环---冒泡排序
  • 2024.9.4
  • 在js渲染的dom中的事件中传递对象
  • 米家商城主题 html 页面源码分享,可用于网页设计作业
  • 室内导航定位系统在医院的应用与部署
  • Kubernetes学习指南:保姆级实操手册05——配置集群HA负载均衡
  • 智能巡检机器人创新设计的关键技术
  • Xml 映射文件中常见的标签
  • python(进阶2)实现自动化注册和登录
  • 长芯微国产LS0102电平转换器/电平移位器P2P替代TXS0102
  • 支付宝线上小程序打开异常
  • VUE3+FLASK+TYPESCRIPT(实习接触,学习并自主实现)