#钱包 #bark #aspd #rpc-client #ark

bark-wallet

aspd 的 RPC 客户端

1 个不稳定版本

0.0.0 2024年7月25日

#2 in #bark

Download history 119/week @ 2024-07-22 12/week @ 2024-07-29

每月131 次下载

CC0 许可

1KB

rust-ark

Ark 第二层支付协议的 Bitcoin 实现。

此仓库包含一个 ASP 服务器 aspd、一个客户端钱包 bark 和一个包含所有实现所需的原始代码的库。

演示

脚本 ark_demo.sh 为与 ark 互动创建了一个良好的环境。

source ark_demo.sh

首先,您必须设置一个 regtest bicoind 节点。如果您已经有了一个 regtest-node,您可以使用它。您只需确保 txindex 已启用。但是,如果您启动一个新的 regtest 节点,教程将更容易遵循。

bd --daemon

您可以使用 type - 来查看别名的作用。在这种情况下,它将告诉您 bdbitcoind -regtest -datadir=/ark/test/bitcoindatadir -server -txdindex 的别名。

您可以使用别名 bitcoin-cli(别名 bcli)与节点交互。

bcli getnetworkinfo

然后,我们使用 aspd 命令创建和配置一个 ark-server。我们的 ark-server 将在 regtest 上运行,并使用我们之前启动的 bitcoin-node。

aspd create \
    --network regtest \
    --datadir ./test/arkdatadir \
    --bitcoind-url $BITCOIND_URL \
    --bitcoind-cookie $BITCOIND_COOKIE

可以使用以下命令启动服务器:

aspd start --datadir ./test/arkdatadir

服务器将立即开始工作,但需要一些资金才能正常工作。您可以在日志中找到链上地址,并向其发送一些资金。

bcli generatetoaddress 1 <asp-addr>

资金只有在生成 100 个额外区块后才能使用。

bcli generatetoaddress 100 mtDDKi5mDjZqGzmbnfUnVQ8ZhCPMPVsApj

接下来,您可以启动一些客户端。要创建客户端,请使用以下命令

bark --datadir ./test/bark create \
    --regtest \
    --asp http://localhost:3535 \
    --bitcoind $BITCOIND_URL \
    --bitcoind-cookie $BITCOIND_COOKIE

bark --datadir ./test/bark2 create \
    --regtest \
    --asp http://localhost:3535 \
    --bitcoind $BITCOIND_URL \
    --bitcoind-cookie $BITCOIND_COOKIE

这些将创建独立的钱包,并打印出您可以使用链上地址来 像 ASP 一样 充值的链上地址。请注意,客户端可以在没有链上余额的情况下接收链下 Ark 交易,但执行单方面退出需要一点链上资金。

您可以使用以下命令找到钱包

BARK1_ADDR=$(bark --datadir ./test/bark1 get-address)
bcli generatetoaddress 1 $BARK1_ADDR
bcli generatetoaddress 100 mtDDKi5mDjZqGzmbnfUnVQ8ZhCPMPVsApj

要使用链上钱包,有一些可用的命令

BARK2_ADDR=$(bark --datadir ./test/bark2 get-address)
bark --datadir ./test/bark1 send-onchain $BARK2_ADDR "0.1 btc"
bark --datadir ./test/bark2 balance

一旦我们有资金,我们就可以进入 Ark,之后余额将显示链上和链下元素。

bark --datadir ./test/bark1 onboard "1 btc"
bark --datadir ./test/bark1 balance

请记住,如果您不定期生成区块,所有交易都只会留在内存池中...

bcli generatetoaddress 1 mtDDKi5mDjZqGzmbnfUnVQ8ZhCPMPVsApj

然后,让我们进行一些链下转账

## Should be empty..
BARK2_PK=$(bark --datadir ./test/bark2 get-vtxo-pubkey)
# For now every client has just a single pubkey.
echo "${BARK2_PK}"
bark --datadir ./test/bark1 send-round ${BARK2_PK} "0.1 btc"
bark --datadir ./test/bark2 balance

您会注意到发送时会有轻微的延迟,这是因为客户端需要等待下一轮的开始,目前不支持轮外支付。轮间隔可以在 aspd 配置中更改。

无运行时依赖