手把手指南 | P2P 衍生品应用

本文详细介绍如何使用P2P衍生品Beta应用程序,包括比特币regtest的设置、钱包创建、合约签署及结算等步骤。文章目标读者为初学者,指导用户在同一台计算机上运行两个不同用户并创建合约。

步骤指南 | P2P 衍生品应用

正如我们在博客中宣布的,我们已经推出了 P2P 衍生品 Beta 版应用。本文将以循序渐进的方式指导你进行设置和使用。此外,你还可以观看下面的教程视频。

本文面向初学者,并提供使用该应用程序与比特币 regtest 和 Crypto Garage Oracle 和服务器的指南。你可以在同一台计算机上运行两个不同的用户,并在他们之间建立合约。

如果你想使用 testnet 或自己运行 Oracle 和服务器,请参考我们的 Github

条款与条件协议

在使用应用程序之前,请确保阅读条款与条件

应用程序下载

你可以点击此处下载应用程序。

Bitcoind 设置(用于 regtest)

该应用程序需要连接到一个正在运行的 bitcoind 实例。

你可以点击这里下载比特币核心软件。根据你的操作系统,还有其他的安装或下载方式,可以通过搜索引擎轻松找到。

安装好比特币核心软件后,你可以使用 Github 仓库中的脚本 来启动节点,然后创建一些钱包用于测试。(请注意,这些是 bash 脚本,因此无法在 Windows shell 中运行。如果在 Windows 上使用,你可能可以使用 git bash 来运行它们,但目前尚未测试。)

首先创建一个文件夹(命名为 `p2pderivatives` 或你喜欢的名称),并创建两个子文件夹 `bitcoind``scripts`)。将 ` bitcoin.regtest.conf ` 文件放入 bitcoind 文件夹中。将 ` start_bitcoind.sh `` stop_bitcoind.sh ` 文件放入 scripts 文件夹中。在 `p2pderivatives` 文件夹中运行以下命令:

chmod +x ./scripts/start_bitcoind.sh
chmod +x ./scripts/stop_bitcoind.sh
./scripts/start_bitcoind.sh

创建钱包

你可以创建两个独立的钱包,以便在同一台计算机上使用两个用户进行测试。在这里,我们将创建一个名为 “alice” 的钱包和另一个名为 “bob” 的钱包用于交易,以及一个名为 “carol” 的钱包用于在 regtest 上生成区块。

bitcoin-cli -datadir=./bitcoind -conf=”bitcoin.regtest.conf” createwallet “alice” “false” “false” “str0nGP@ssw9rd”bitcoin-cli -datadir=./bitcoind -conf=”bitcoin.regtest.conf” createwallet “bob” “false” “false” “str0nGP@ssw9rd”bitcoin-cli -datadir=./bitcoind -conf=”bitcoin.regtest.conf” createwallet “carol” “false” “false” “str0nGP@ssw9rd”

区块生成

你可以通过生成区块到他们的地址来为钱包提供资金。你可以在 `p2pderivatives` 文件夹中使用以下命令执行此操作。

bitcoin-cli -datadir=./bitcoind -conf=bitcoin.regtest.conf generatetoaddress 101 $(bitcoin-cli -datadir=./bitcoind -conf=bitcoin.regtest.conf -rpcwallet=carol getnewaddress)

现在 bitcoind 正在运行,并且你已经创建了三个名为 “alice”“bob”“carol” 的钱包。

注册和登录

你需要注册自己的 ID 和密码进行登录。

为了在同一台计算机上创建两个不同用户之间的合约,请启动两个应用程序并分别注册两个不同的用户。 不需要注册任何个人信息。

钱包配置

如前所述,该应用程序需要连接到一个正在运行的 bitcoind 实例。请填写“钱包配置”部分中的项目。请注意,该应用程序只能在比特币 regtest 和 testnet 上使用。如果你使用的是默认配置,其中 bitcoind 实例在本地运行,你可以留空“IP 地址”和“端口”字段。

假设你已经创建了名为 “Alice”“Bob” 的钱包,你需要输入以下值来配置你的钱包。

一方
RPC 用户名      :user
RPC 密码      :pass
钱包            :alice
钱包密码 :str0nGP@ssw9rd另一方
RPC 用户名      :user
RPC 密码      :pass
钱包            :bob
钱包密码 :str0nGP@ssw9rd

完成“钱包配置”后,你的屏幕将切换到以下屏幕。点击左上角的“新建合约”来创建合约。

合约协议和抵押品缴纳

你需要选择你的对手方,并设置合约信息。按下图说明填写每个项目,然后点击“发布”。

以下是创建要导入应用程序的 CSV 文件的方法。

CSV 文件创建

为了创建合约,你需要创建一个 CSV 文件,其中包含根据到期时 BTC-USD 价格结果得出的比特币分配金额。点击这里可以找到两个 CSV 模板,digital.csvspread.csv

CSV 文件根据合同到期时的 BTCUSD 价格定义双方比特币的分配金额。每个模板定义如下分配。

digital.csv

spread.csv

每个值都可以由用户自由设置。创建 CSV 文件后,请将其保存在本地驱动器中。在我们的示例中,Alice 上传了 digital.csv 文件。

请注意使用的值范围应与建立合同时的 BTCUSD 汇率相适应,因为如果到期时的汇率超出范围,应用程序将无法结算合约(合约抵押品将在七天后退还)。

合约协议和抵押品缴纳

Alice 与 Bob 发布合约后,Bob 的屏幕上会显示已提供的合约。如果 Bob 接受它,应用程序将传输所需的信息并广播一笔将抵押品锁定在区块链上的交易。

合约详情(Bob 的屏幕)

在这种情况下,Alice 和 Bob 各自贡献了 1 BTC 作为抵押品。

如果 2020 年 7 月 11:49 AM UTC 的 BTCUSD 价格在 9000~10000 之间,2BTC 将分配给 Alice,如果在 10000~10999 之间,2BTC 将分配给 Bob。

区块生成

为了使合约得以结算,你必须在 regtest 上生成区块。你可以在 `p2pderivatives` 文件夹中使用以下命令执行此操作(假设你之前创建了一个名为 ”carol” 的钱包):

bitcoin-cli -datadir=./bitcoind -conf=bitcoin.regtest.conf generatetoaddress 7 $(bitcoin-cli -datadir=./bitcoind -conf=bitcoin.regtest.conf -rpcwallet=carol getnewaddress)

请注意,应用程序在确认资金交易之前会等待 6 个确认,因此你需要生成至少 6 个区块。

到期时结算

在合约到期时,Oracle 将宣布合约结果并提供合约签名。应用程序将使用此信息来关闭合约。

如果双方在到期时都在线,他们将相互通信并共同创建一个关闭交易,并由一方广播(状态显示为 “相互关闭”)。

如果一方下线,在线方将单方面广播交易以关闭合约(状态显示为 “单方面关闭”)。

在这两种情况下,双方都将收到合同中规定的对应金额。

在以下示例中,Alice 贡献了 1BTC 作为抵押品,到期时 BTCUSD 价格为 9118。价格在 9,000 到 10,000 之间,因此 Alice 获得了 2BTC 作为赔付。

Alice 的抵押品为 1BTC,赔付为 2BTC,因此 PnL 为 1BTC。

到期时的结果(Alice 的屏幕)

如果你想检查 Alice 和 Bob 的余额,请从 `p2pderivatives` 文件夹执行以下命令并生成区块。

bitcoin-cli -datadir=./bitcoind -conf=bitcoin.regtest.conf generatetoaddress 6 $(bitcoin-cli -datadir=./bitcoind -conf=bitcoin.regtest.conf -rpcwallet=carol getnewaddress)

现在你可以看到我们的 P2P 衍生品应用的整个交易流程,从合约创建到结算。希望你能尝试一下,并测试各种金融合约的交易。

  • 原文链接: medium.com/crypto-garage...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
cryptogarage
cryptogarage
江湖只有他的大名,没有他的介绍。