npm 包 @gohelpfund/helpcore-channel 使用教程

阅读时长 4 分钟读完

如果你想使用 Bitcoin Cash(BCH)的 Payment Channel 实现,那么 @gohelpfund/helpcore-channel 是一个不错的选择。本文将详细介绍如何使用它。

安装

首先,你需要在你的项目中安装 @gohelpfund/helpcore-channel 这个 npm 包。你可以使用以下命令安装:

示例代码

在开始介绍使用示例之前,让我们先了解一下下面几个基本概念:

  • Funding TX(资金交易):建立支付通道时,需要向区块链上写入一笔资金交易,作为支付通道的初始状态。这个过程叫做 Funding。
  • Commitment Transaction(承诺交易):建立支付通道后,每次支付的交易都需要写入一笔承诺交易。这个交易包含双方对当前支付通道余额的承诺。
  • Refund Transaction(退款交易):在支付通道关闭之前,如果一方长时间没有向对方发送承诺交易,对方可以主动发起关闭。这时,需要写入一笔退款交易,将支付通道中的余额全部退还给双方。

现在,我们来看一个简单的示例:建立一个支付通道,并进行一次支付。假设 Alice 和 Bob 都使用 bitcore-lib-cash 来构建各自的交易,我们先导入必要的模块:

Funding

现在,我们需要为支付通道创建 Funding TX。假设 Alice 想在 Bob 那里建立一个支付通道,并向其支付 1 BCH。首先,我们需要从 Alice 的私钥创建一个脚本,并将其作为输出脚本添加到 Funding TX 中:

-- -------------------- ---- -------
----- --------------- - --- -------------
----- ----------- - --------------------------------------------------------
----- -- - --- -----------------------------
  ------------- ------ ----- -- ------------- --------
  ------------
    ------- ------------
    --------- ---------
  --
  -----------------------

在此代码中,txId 和 scriptPubKey 需要分别替换为 Alice 已有的某个 UTXO 的 TXID 和 ScriptPubKey。satoshis 为支付给 Bob 的金额。注意,建立 Funding TX 之前,Alice 必须在其钱包中确保有足够的 BCH 余额。当然,这里我们只提供了 Alice 的创建代码, Bob 也需要创建自己的 Funding TX,详情请示请参考官方文档。

Commitment

现在,我们可以建立一个 Payment Channel,并在其上发送一笔承诺交易。假设 Alice 想向 Bob 发送 0.5 BCH:

这里,value 表示向 Bob 发送的金额,单位是 satoshis。privateKeys 是一个数组,表示支付方的私钥列表。在此示例中,只有一个私钥。

Refund

最后,当双方一直没有进行支付时,可以关闭 Payment Channel,并退回所有资金。假设 Alice 主动关闭这个 Payment Channel,这时需要写入一笔 Refund TX:

在此代码中,privateKeys 依旧是一个私钥列表。需要注意的是,当创建 Refund TX 时,必须指定自己的私钥,否则将无法构建交易。

总结

该 npm 包提供了简单易用的 Payment Channel 实现,方便开发者快速构建 BCH 支付应用。本文介绍了如何使用它建立一个 Payment Channel,并发送 Commitment 和 Refund 交易。希望本文能够对您有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671d730d0927023822e03

纠错
反馈