在本文中,我们将介绍“如何使用 Bcoin 安装和运行比特币的完整节点”。
我们将创建一个钱包,发送一些硬币并在 regtest 模式下挖掘一些块。那么,让我们开始吧。
比特币区块链被设计为一个去中心化的 P2P 网络,没有人拥有或控制比特币,每个人都可以参与。全节点是完全验证交易和区块的程序。通过运行比特币全节点,您正在支持比特币网络变得更加去中心化并促进比特币的增长。
“Bcoin”是用 Javascript 构建的比特币协议的另一种实现。完整节点可用于完整的区块链验证,并了解所有已知的共识规则。与其他类似的竞争实现相比,它更易于使用、学习更快且文档更齐全。
Bcoin 出于安全目的,只通过 Git 安装,因为通过 npm 安装时存在安全问题。
$ mkdir Bcoin && cd Bcoin |
使用 npm 全局构建和安装:
$ npm rebuild |
在 Nodejs 项目中,通常使用npm install,它将获取依赖树中提到的所有依赖项。我们担心 npm 作为单一的中心故障点以及如何验证下载的源代码。因此,现在不需要npm install。
在本地运行测试:
从Bcoinrepo 目录中,运行
$ npm run test |
现在,我们已准备好运行我们的bcoin完整节点
启动你的第一个 bcoin 节点
如果bcoin是全局安装,bcoin则应在您的 PATH 中。如果没有,bcoin引导脚本驻留在/path/to/bcoin/bin/bcoin. 我们将在regtest模式下运行完整节点。
$ bcoin --network=regtest
这将在本地测试模式下启动一个bcoin全节点,没有对等点和 0 难度挖掘。在bcoin整个节点将使用默认选项通过读取启动。在配置向导你可以看到其他设置可用。
现在在第二个终端中,使用该bcoin-cli工具获取节点信息。
$ bcoin-cli --network=regtest info
玩钱包
默认情况下,该Bcoin软件运行一个钱包,该钱包在第一次启动时被初始化。钱包被调用,primary并且有一个名为 的帐户default。
Bcoin钱包结构使用BIP44,钱包Bcoin使用BIP39种子短语。
获取钱包的种子短语:
$ bwallet-cli master --id=primary |
此命令将返回JSON有关您的钱包主密钥的包含信息:
{ |
获取您钱包的当前接收地址
$ bwallet-cli --id=primary --account=default address
它将返回JSON有关您当前接收地址的响应。
{ |
现在你有了一个接收地址,所以我们可以在当前(regtest)网络中挖掘一些虚拟块来为我们的钱包提供资金。
$ bcoin-cli rpc generatetoaddress 10 n2eoT9D8txT5ZymDvCFPA8PHs2CmTV6oJT
此命令将在 regtest 网络中挖掘 10 个区块,地址为您的 coinbase 地址。现在我们可以检查我们的钱包余额。
检查您的钱包余额:
$ bwallet-cli --id=primary balance --account=default
它将返回JSON包含您的帐户余额的响应:
{ |
现在让我们创建第二个钱包,一个使用Segregated Witness. 这个钱包类型的简要说明是 在这里.
创建隔离见证钱包
你可以随意命名这个钱包(这里我们将它命名为 test1
$ bwallet-cli mkwallet test1 --witness=true
它将返回包含JSON您的新钱包详细信息的响应,
{ |
获取这个新钱包的地址:
$ bwallet-cli --id=test1 --account=default address
现在,我们有了新的钱包地址,让我们从第一个钱包向第二个钱包发送一些硬币。
汇款
$ bwallet-cli send --id=primary --value=1000 --address=<your segwit wallet address> |
现在,检查我们的segwit wallet.
$ bwallet-cli --id=test1 balance |
它显示了一个JSON响应,
{ |
因此,我们创建了两个钱包,并将一些 regtest 硬币从一个钱包发送到另一个钱包,我们还挖掘了一些 regtest 区块。