前言:本文适用于对JavaScript,Web3和以太坊智能合约有基本了解的开发者。
DeFi已成为以太坊生态系统非常流行的用例。在撰写本文时,DeFi协议已锁定价值超过10亿美元。迄今为止,使用开放的,去中心化的替代选择替代现有金融产品的前景已经非常受欢迎。
这些DeFi平台之所以如此出色,原因之一就是因为它们易于开发人员使用。由于它们的开源特性,开发者可以更好地了解,任何愿意学习如何使用它们的人都可以使用它们。
DeFi领域目前最大的公司之一是CompoundFinance,目前其生态中锁定的价值约为1.15亿美元。所有人都可以为其协议提供资产并从中获取利息,但是这个过程如何做到的?
动态 | 匿名程序员发布新BCH客户端:匿名程序员Freetrader宣布推出了一个新BCH客户端,并将其命名为Bitcoin Cash Node。除了移除通过区块奖励的5%资助开发者的代码,该客户端和当前的主要BCH客户端ABC之间没有任何区别。(trustnodes)[2020/2/21]
Compound怎么玩的?
Compound目前支持9种代币:BAT,DAI,ETH,REP,SAI,USDC,USDT,WBTC,ZRX。这些是您可以赚取利息的数字资产。
让我们以DAI为例。当你向协议提供DAI后,DAI将被锁定,直到您决定取回它为止。当DAI被锁定时,您需要同意协议可以借出这些价值,从而赢得整个流动性池的利息。你可以把它想象为一种储蓄帐户。
存入其中后,您可以随时查看池中总共锁定了多少DAI,当前利率是多少,借用其他资产等。
动态 | Block.One鼓励程序员探索在EOS网络上运行以太坊智能合约:Block.One宣布将向能在EOS网络上运行以太坊智能合约的开发人员提供20万美元。这项竞赛被称为EOSIO智能合约挑战赛,能解决这个问题的第一个开发者将获得奖励。(Decrypt)[2020/2/4]
技术实现
从技术角度来看,这种资产供应过程是什么样的?
该协议使用了ERC20兼容合约用于每个受支持的市场。它们称为cToken。它们每个都有一个外部函数:mint,这是供应的价值的发送目的地。此函数用于接收供应的价值,根据交易所汇率计算等值的cToken数量,并将它们交换为供应的价值。
例如,如果汇率为1:1,则供应1个ETH,发送方将收到一个cETH。
mint的反向函数为redeem函数。当用户想要提取其锁定的价值时,根据当前汇率,使用所需数量的cETH代币进行赎回,返还等价的ETH。
动态 | GitHub勒索案后续:目前赎金不足3美元,已有“程序员”将代码恢复:据thenextweb消息,此前报道,黑客入侵GitHub 392个代码存储库,从受害者那里勒索比特币,不过最新数据显示,到目前为止,攻击者收到的钱甚至连一杯咖啡都买不到。黑客列出的比特币地址仅仅在5月3日收到了一笔付款,金额仅为0.00052525BTC(约为2.95美元)。据Bleeping Computer称,攻击者通过使用从第三方存储库管理服务泄露的帐户凭证,可以访问许多代码存储库 - 包括GitHub,GitLab和Bitbucket。攻击者继续擦除代码并提交历史记录,只留下一个包含赎金通知的文件。勒索者要求受害者支付0.1BTC(撰写本文时为560美元),并承诺在收到赎金后恢复被盗的存储库。GitLab的一个用户发现代码并没有真正被删除,并且已经设法恢复了他们的存储库。到目前为止,其他人似乎都没有被敲诈勒索所。从黑客迄今收取的赎金来看,程序员似乎不是实施愚蠢勒索局的最佳目标。[2019/5/6]
注意:还有一个redeemUnderlying函数,使用基础资产单位而不是cToken单位作为输入。
一程序员称Oscar Mayer代币与自己早期产品相同:据 CCN 报道,在卡夫亨氏旗下肉制品公司Oscar Mayer宣布推出培根币(Bacoin)后,一名程序员在社交媒体上表示自己早在 2014 年就推出了同名的代币。他称自己的产品早在 2014 年就已在网络上公开,Oscar Mayer 明显是借鉴了自己的内容,因此要求公司删除所有与培根币相关的信息。他同时认为 Oscar Mayer 只是将该代币作为一种噱头,并不会用到任何区块链技术。目前卡夫亨氏集团尚未对此作出回应。[2018/5/4]
编写代码
前提条件:本演练假定读者对JavaScript,Web3和以太坊智能合约有基本的了解。
我们将按照以下步骤为CompoundFinance提供和兑换ETH:
加载cETH合约。
通过调用mint,锁定ETH并接收cETH代币来提供ETH。
读取我们的cETH余额。
读取我们锁定的ETH余额。
通过提供cETH从协议中赎回我们的ETH。
步骤1:加载cETH合约
每个代币合约在每个网络上都有一个不同的地址。cToken合约的ABI可从https://compound.finance/docs/abi/<network>/<cToken>公开获得。
在我们的场景中,使用cETH和Kovan测试网,我们的URL是https://compound.finance/docs/abi/kovan/cETH。
在Compound的官方文档中可以找到每个网络上每个合约的地址。
使用web3,我们像这样初始化合约实例:
constcEthInstance=newweb3.eth.Contract(cEthABI,addr);
步骤2:提供ETH
图1显示了使用web3的send函数创建cToken的容易程度:
图1:铸造cToken
在此阶段,我们的ETH将开始根据当前利率赚取利息。
步骤3:读取我们的cETH余额
由于cToken合约兼容ERC20,因此它们提供了一个称为balanceOf的函数。我们可以通过调用并向其传递我们的帐户地址来检查我们的cETH余额:
letb=awaitcEthInstance.methods.balanceOf(account).call();
步骤4:读取锁定的ETH余额
cToken合约还提供了一个称为balanceOfUnderlying的函数,该函数使用其拥有的cToken和当前汇率返还帐户的基础资产价值:
letu=await
cEthInstance.methods.balanceOfUnderlying(account).call();
步骤5:从协议中赎回我们的ETH
将步骤4中的值u用作图2中的redeemAmount,我们可以调用redeemUnderlying来赎回我们的ETH:
图2:赎回过程
或者,我们可以使用
redeem代替
redeemUnderlying并将第3步中的值
b作为
redeemAmount。
结论
随着DeFi变得越来越容易使用并被许多人采用,在任何开发人员的工具箱中,学习如何与这些协议进行交互都是一种宝贵的工具。
如果您对区块链开发感兴趣,我会撰写有关入门和构建产品组合的教程,演练,提示和技巧。查看以下的区块链开发资源:https://medium.com/blockcentric/blockchain-development-resources-b44b752f3248
当区块链被定义为新基建,我们可以明确感受到一个信号:区块链与实体行业的结合开始变得愈加紧密。对于区块链行业来讲,这其实是一件好事.
6月11日,知名公募基金先锋基金宣布使用区块链技术发行了一笔1.46亿美元的ABS,参与机构还有纽约梅隆银行(BNYMellon)、花旗集团(Citi)、道富银行(StateStreet)等.
尽管众多OTC人士已多次强调,切勿使用支付宝、微信、传统银行等进行出入金,但还是有很多用户使用支付宝出入金,主流平台也都涵盖支付宝首付款渠道.
今年4月2日,知名区块链行情数据排名网站CMC被币安交易所以3亿美元的高价收入囊中。仅仅过去六周,5月15日,CMC火速更新了交易所排名的规则,调整了交易所流动性因素,增加了网站流量因子,包括浏.
作者:WilliamM.Peaster 译者:La 校对:Typto 翻译机构:DAOSquare2014春季,我从西佛罗里达大学的创意写作学位毕业.
强大的网络基础,机构投资者的积累以及BTC年初至今的表现都表明比特币的前景是乐观的。 CointelegraphMarkets和链上数据提供商lookintobitcoin发布的数据发现,随着链.