多抵押 Dai 核心合约在以太坊 Kovan 测试网发布

March 30, 2019

介绍

过去的几个月,Maker 集中精力在以太坊 Kovan 测试网络上开发和发布多抵押 Dai (MCD) 核心合约及其与 Maker 核心产品和工具的互动。

在多抵押 Dai 于主网正式发布前,我们希望与社区保持完全地透明,并始终如一地向社区成员介绍 Maker 未来几个月内发展路线图,这些更新将涵盖我们的最新部署及其功能,并提供示例 Demo 和操作指南。

众所周知,区块链项目的主要挑战之一是智能合约的发布。从很多层面看,它更像是发布硬件而不是软件。多抵押 Dai 是一个自动运行的去中心化系统,一旦部署到区块链上,它就会自主运行。在构建这样的系统时,获取反馈至关重要 - 不仅来自内部团队,还来自整个Maker社区。如果您有任何问题,欢迎向我们提出问题与反馈。欢迎加入我们的微信讨论小组以及 chat.makerdao.com 上面的 #product-feedback 频道。

我们将按计划发布涵盖 Maker 智能合约、前端应用程序、工具和服务。每个 Kovan 版本都将代表一个代码库的版本,当前版本是v0.2.2。

简而言之,每次的部署将经历一系列步骤,直到将系统实现完备的状态。在第一次部署中,我们引入了治理提案和执行投票,将债务上限从 0 提高到合适的数值,并允许用户从不同的抵押物种类中生成 Dai。

下面是最新 v.0.2.2 版本的信息。

多抵押 Dai 谍照

多抵押 Dai 的最新进展

概述:已部署的组件(v0.2.2)

在最新的 Kovan 测试版本里,我们更新了与多抵押 Dai 系统进行交互的工具。这些更新包括:

多抵押 Dai 合约

https://github.com/makerdao/dss/tree/master

多抵押 Dai 命令行界面

https://github.com/makerdao/mcd-cli/releases/tag/0.2.2-rc.1

Dai.js 代码库

https://github.com/makerdao/dai.js/releases/tag/v0.13.2%2Bmcd-0.2.2

治理插件

https://github.com/makerdao/dai-plugin-governance/releases/tag/v0.5.2%2Bmcd-0.2.2

治理面板

https://github.com/makerdao/governance-dashboard/releases/tag/0.2.2

多抵押 Dai 的 CDP 面板

https://github.com/makerdao/mcd-cdp-portal/releases/tag/0.2.2

多抵押 Dai 合约

核心系统合约

MKR 治理代币合约

DAI 稳定币合约

ETH 抵押合约

抵押品1合约

访问完整的合约列表,请查看: http://www.mocky.io/v2/5c93fe42310000c24c554801

如何上手多抵押 Dai

开始使用并交互上述工具,你需要获取一些 Kovan 测试网络的ETH 以及模拟代币 COL1,COL2,COL3,COL4,COL5 和 MKR 代币。注:MKR持有人最终将通过 Maker 风险团队的投票确认最终的抵押品类型。

一旦你有了相应的 Kovan 代币,就可以继续以下指南的步骤,比如锁定一些抵押品、生成 Dai、偿还 Dai,以及取回抵押品。

在下面的指南中,我们将使用多抵押 Dai 命令行(MCD-CLI)和多抵押 Dai 面板工具(MCD-PORTAL)执行上述步骤。

如何获取 Kovan-ETH 和 K-Collat​​eral 代币

获取 Kovan ETH

有很多方法可以获取 Kovan ETH,包括:

标准 Faucet 方法: https://faucet.kovan.network/

Gitter方法: https://gitter.im/kovan-testnet/faucet

获取 Kovan 抵押代币

我们部署了一个特殊的 Faucet,你可以获得一些在测试网抵押的代币,这些代币是用来模拟以太坊主网上存在的真实代币。

K-Collat​​eral 代币 Faucet:0xDF31eF13A608728b6fEE5d2596Ddbb1e0d8BDe3

在开始之前,您必须首先在本地设置Seth:https://dapp.tools/seth/

注意:您可以使用 seth 调用 gulp(address) 函数。address 地址代表本次合约部署COL1至COL5抵押品类型的地址。

说明:

首先,请按照 MCD-CLI 中 README.md 文件的说明,确保已正确设置seth:(https://github.com/makerdao/mcd-cli#installation)。 

在CLI中运行以下命令,接收COL1代币:

      i,将 COL1 地址设置为env变量:

      $ export COL1A = 0xb3844361e19ab82fce3dddd81637b85bcb554da7

      ii,将 Faucet 地址设置为env变量:

      $ export FAUCET = 0xDF31eF13A608728b6fEE5d2596Ddbb1e0d8BDe31

      iii,调用 gulp(address)函数:

      $ seth send $FAUCET ‘gulp(address)’ $COL1A

      iv,运行以下命令验证 COL1 余额:

      $ seth –from-wei $(seth –to-dec $(seth call $COL1A ‘balanceOf(address)’ $ETH_FROM)) eth 

      iiv,你将会看到类似的结果

      50.000000000000000000

现在,你已经获得一些 COL1 K-Collat​​eral 模拟代币了。

注:如果您想要一些 K-MKR 代币,可以将 COL1 代币地址替换为 MCD_GOV 代币地址,按照上述过程进行操作。收到 Kovan 测试抵押代币后,可以在多抵押 Dai 面板 (MCD-PORTAL) 和多抵押 Dai 命令行 (MCD-CLI) 上进行操作。

Dai.js 代码库和治理插件

通过 Dai.js 库和治理插件工具,可以创建 CDP、发行 Dai 以及与MKR治理系统交互。

多抵押 Dai 插件

多抵押 Dai 插件可以与多抵押 Dai 合约进行交互。学习如何使用 dai.js 库创建和操作CDP (通过 DSProxy 和 CDP Manager),并了解如何读取多抵押 Dai 的系统数据,

请点击链接: https://github.com/makerdao/dai.js/tree/dev/lib/dai-plugin-mcd

MKR 治理插件

dai.js 插件可用于与MKR治理系统交互。该插件可以将 Dai 治理集成到前端应用程序中,例如 Maker 治理面板。您可以使用它来投票、提案、查询投票合约以及创建投票代理等等。

按照以下链接获取安装说明和示例:https://github.com/makerdao/dai-plugin-governance

治理面板

治理面板是 Maker社区进行投票的前端页面,并显示当前的投票提案。面板支持最新的多抵押 Dai 的 Kovan 测试版,并包括执行投票。

你可以通过以下两种方式访问治理面板:

部署本地面板

https://github.com/makerdao/governance-dashboard

访问演示页面

https://dai-gov-staging.now.sh/?mcd=true

多抵押 Dai 的 CDP 面板

多抵押 Dai 作为一套无需准入的智能合约系统,已经有独立团队开发其前端界面。为了让 Dai 的 Kovan 版本可以得到大家的测试,我们提供了多抵押 Dai 的 CDP 前端面板,该面板目前用来临时的演示。 面板将随着每个 Kovan 版本进行更新。在第一个版本中,你可以锁定抵押品并生成 Dai 。

面板网址: https://mcd-cdp-portal-staging.now.sh

你还可以通过这里的指南配置本地的面板:  https://github.com/makerdao/mcd-cdp-portal

(注:目前部署的版本还处于早期迭代阶段。目前的功能仅限于开启新的 CDP 并显示 CDP 的模拟数据。我们将在接下来的几周内提供更多功能,也会考虑来自社区的的反馈意见添加到即将发布的版本中。 )

多抵押 Dai 命令行界面

你也可以通过命令行界面(CLI)与多抵押 Dai 合约进行交互,锁定 ETH 等资产以及其他模拟抵押代币(COL1,COL2,COL3,COL4,COL5)、生成 Dai、查看 CDP等等。

操作说明: https://github.com/makerdao/mcd-cli

以下说明将指导你完成多抵押 Dai 的一个完整周期操作。我们将使用 COL1 模拟抵押品创建 Dai  款,然后偿还 Dai 款。由于 MCD-CLI 基于seth,需要先配置所需要的变量。

开始

首先,在 Terminal 终端添加所需的变量,或者在〜/ .sethrc 中预设变量。

设置变量的命令

ETH_FROM=<add your ETH address>

ETH_KEYSTORE=<add the path to your keystore file>

ETH_PASSWORD=<add the path to password file with file name>

MCD_CHAIN=kovan

SETH_CHAIN=kovan

设置完成后,可以使用以下命令运行 CDP。

在开始前,请检查是否已从 Faucet 获得一些 COL1 模拟代币。

1.将 COL1 模拟代币存入到COL1适配器。你可以将60这一数值改为其他数值。

运行:

$ mcd -ilk = COL1-A gem join 60

输出示例:

vat 60.000000000000000000 Unlocked collateral (COL1)

ink 0.000000000000000000 Locked collateral (COL1)

ext 0.000000000000000000 External account balance (COL1)

2.锁定 COL1 抵押品代币,然后从 VAT 中生成1个dai。

运行:

$ mcd -ilk = COL1-A frob 60 1

输出示例:

ilk  COL1-A                                                          Collateral type

urn  16Fb96a5fa0427Af0C8F7cF1eB4870231c8154B6000000000000000000000000 Urn index

ink  60.000000000000000000                                            Locked collateral (COL1)

art  1.000000000000000000                                            Outstanding debt (Dai)

printf: ‘58234907888888888888888889’: Numerical result out of range

spot 0.000000009223372036854775807                                Price with safety mat (USD)

rate 1.000000000000000000000000000                              COL1 DAI exchange rate

fill 0                                    Collateralization Ratio (%)

rap  0.000000000000000000                                  Accumulated stability fee (Dai)

dai  1.000000000000000000000000000000000000000000000    Vat Dai

gem  0.000000000000000000

2a. 授权 MCD_JOIN_DAI 从 urn 容器中取出生成出的 Dai 。

这将把 MCD_JOIN_DAI 和 MCD_VAT 变量以及相应的合约地址添加到 Terminal 终端。

运行:

$ seth send $MCD_VAT ‘hope(address)’ $MCD_JOIN_DAI

注:在我们全部完成多抵押 Dai 的开发前,这是一个临时的方案。

3.取出 Dai 并将其发送到你的 ETH 个人账户。

运行:

$ mcd dai exit 1

输出示例:

vat 0.000000000000000000000000000000000000000000000 Vat balance

ext 1.000000000000000000 ERC20 balance

注意:如果您想偿还债务并解锁抵押品,请按照以下步骤操作。

4. 添加 Dai 到 urn 容器里。

运行:

$ mcd dai join 1

输出示例:

vat 1.000000000000000000000000000000000000000000000 Vat balance

ext 0.000000000000000000 ERC20 balance

5.消除 Dai 的债务并从 VAT 解锁 COL1 抵押品。

运行:

$ mcd -ilk = COL1-A frob - -60 -1

输出示例:

ilk  COL1-A                                                          Collateral type

urn  16Fb96a5fa0427Af0C8F7cF1eB4870231c8154B6000000000000000000000000 Urn index

ink  0.000000000000000000                                            Locked collateral (COL1)

art  0.000000000000000000                                            Outstanding debt (Dai)

printf: ‘58234907888888888888888889’: Numerical result out of range

spot 0.000000009223372036854775807                                Price with safety mat (USD)

rate 1.000000000000000000000000000                      COL1 DAI exchange rate

fill 0                                    Collateralization Ratio (%)

rap  0                                                Accumulated stability fee (Dai)

dai  0.000000000000000000000000000000000000000000000          Vat Dai

gem  60.000000000000000000                Unlocked collateral (COL1)

6.最后从 COL1 适配器中取出 COL1 抵押代币。

运行:

$ mcd –ilk=COL1-A gem exit 60

输出示例:

vat 0.000000000000000000 Unlocked collateral (COL1)

ink 0.000000000000000000 Locked collateral (COL1)

ext 60.000000000000000000 External account balance (COL1)

运行上述命令后,请确认初始抵押品(COL1)已退回到钱包中。

以上便是 CDP 操作指南,我们期待在接下来的几周内进一步介绍多抵押 Dai 的进展。

March 30, 2019