华为区块链招聘:通过Truffle开发框架来使用Chainlink

  Truffle 是区块链公司 ConsenSys 的一家子公司,它已经为以太坊区块链开发了一个开源区块链开发环境和测试框架。近日,微软和Truffle宣布结为伙伴关系,为微软 Azure 生态系统引入区块链开发者工具。这两家组织正在进行的投资包括用于测试的本地区块链节点,并提供测试数据、智能合约的撰写和持续部署、调试及测试。

  在使用Chainlink时,强大的开发工具可以帮助您的智能合约在链上安全地部署成功。Truffle旨在提供一个易于使用的dApp框架,以帮助开发人员更好地开展其dApp的开发工作。

  Truffle非常易于上手,Truffle Boxes的特点决定了您可以直接在终端下载dApp样板。为了帮助您使用Chainlink,我们提供Chainlink Truffle Box样板。其中包含了一个名为“MyContract”的的Chainlinked智能合约示例以及预制的测试套件。首先需要打开终端并安装Truffle。

  npm install truffle -g

  接下来,创建一个新的目录,并通过下面的命令从box中获取Chainlinked示例合约:

  mkdir Chainlink

  cd Chainlink

  truffle unbox smartcontractkit/chainlink

  开箱之后,您会发现有一些新目录会自动创建。其中包含了很多非常有用的示例代码,可以帮助您快速开始Chainlinked智能合约的开发。

  本文我们主要会介绍“MyContract”合约,代码文件可以在*contracts*目录下找到。其中包含了一些基本的Chainlink功能,可以帮助我们深入理解Chainlinked合约是如何工作的。

  ## 测试

  首先,测试合约以确保其一切正常。您可以通过以下命令执行此操作:

  npm test

  这将在样本合约上运行各种测试用例,例如创建带有和不带LINK代币的请求,将这些请求发送到oracle合同地址以及测试合同所有权。

  *注意:你可能会遇到一些LINK代币合约的各种编译警告,这是因为我们用的是最新的Solidity编译器版本,而不是合约创建时候的编译器版本,因此我们可以忽略这些警告。LINK代币合约已经部署,我们只是想这些合约提供给本地测试。

  *需要注意的是,每次运行测试之后,我们都重新部署了每一个合约。这是为了我们可以进行真正的单元测试, 我们不想我们的测试依赖于其他测试的输出。另外,重新部署每个合约需要时间,但这仅用于测试目的,不会影响我们的实际性能运行时间。

  现在让我们来看一下“MyContract”的这些测试用例的更多细节,您可以在*test/MyContract_test.js*下找到。如果您之前使用过Mocha.js,您会发现语法很熟悉。Truffle基于Mocha测试框架,具有智能合约的特有功能。让我们来看看其中的一些新功能。

  

  定义MyContract合约所使用的变量。注意其中jobId值是演示所用的占位符,不是真正可用的JobId。您可以在这里找到真正可用的JobId。

  contract()函数的功能和Mocha中describe()函数实现的功能类似,但它结合了Truffle中的clean-room-feature。在Truffle的文档中这样解释:

  - 在每个contract()函数运行之前,您的合约将重新部署到以太坊网络,其中的测试以原始的合约状态运行。

  - contract()函数提供了可以用来编写测试的可用帐户列表。

  此外,我们的示例“MyContract”需要来自其他智能合约的输出。为此,我们将使用artifacts.require()方法,该方法实质上将特定智能合约的输出作为合同抽象导入。此数据存储为Truffle可以使用的JSON 二进制对象查看到。阅读更多有关artifacts.require()如何在这里工作的信息。

  

  助手合约存储为常量引用,现在我们可以开始创建测试用例。为此,我们需要正确理解关键的测试方法,例如*describe(),beforeEach(),it()和context()*。

  - *describe()* 允许我们将测试用例组合在一起。它需要两个参数,第一个是我们的测试组名称的字符串,第二个是回调函数。这个方法涉及的测试用例是创建请求,完成请求,取消请求以及取回LINK。

  - *beforeEach()*在每个单独的测试范围之前运行。对于许多测试来说,在运行测试用例之前,必须首先执行一些操作(例如等待链LINK的转账)。

  - *it()*用于单个测试用例。这些用于测试我们在不同状态下的合约以及明确他们想要完成的任务。你会注意到当我们运行npm test时,每个*it()函数*的参数中的字符串都会输出为日志,这有助于我们清楚地看到我们的测试时间线。

  - *context()*是*describe()*的别名,但是用于合同执行的更具体的状态。换言之,它提供了另一种更容易阅读和更有条理的测试方法。

  ## 写在最后

  Truffle提供了一个功能强大的工具箱,可帮助您的Chainlinked智能合约正确的运行。得益于Mocha.js这样的流行的且文档丰富的世界级测试框架,开发人员会非常容易的实现相关的开发工作。使用Truffle boxes,dApp公司能够轻松地为其开发人员提供有用的示例,帮助发展区块链生态系统。

文章内容系本站作者个人观点,不代表本站对其观点赞同或支持,文章的版权归该作者所有。如需转载,请注明文章来源。本文地址:http://www.cis.net.cn/kejikuaixun/43389.html
留言与评论(共有 条评论)
验证码:

最新文章

通过Truffle开发框架来使用Chainlink

科技快讯
Truffle是区块链公司ConsenSys的一家子公司,它已经为以太坊区块链开发了一个开源区块链开发环境和测试框架。近日,微软和Truffle宣布结为伙伴关系,为微软Azure生态系统引入区块链开发者工具。这两家组织正在进行的投资包括用于测试的本地区块链节点,并提供测试数据、智能合约的撰写和持续部署、调试及测试。在使用Chainlink时,强

区块链投资如何在不受加密货币波动影响的情况下获得技术

科技快讯
如果投资于加密货币您觉得还是太不稳定的话,请考虑加密货币背后的区块链技术。许多大公司已经在投资区块链技术了,而且越来越多的行业将会从这个技术中获益。像英特尔、亚马逊和微软这样的科技公司拥有承载区块链的服务器、微芯片和技术,而戴姆勒(Daimler)、IBM和万事达(Masterca

HighVibe Network(HV)基于区块链的意识社区

科技快讯
HighVibeNetwork是基于区块链的生态系统,旨在提升人类意识。这是沉浸式数字与现实世界网络,利用多个相互联系且充满活力的市场之优势:瑜伽、冥想、正念、虚拟现实(VR)、在线学习、数字音乐、个人发展、健康、营养等。HighVibeNetwork解决了当前市场替代方案面临的主要难题,帮助合作伙伴在我们的代币经济中有所建树并无缝利用我们

央行数字货币即将发行(央行数字货币发行了吗)

科技快讯
中国的央行英文简称为“DC/EP”,“DC”是“DigitalCurrency(数字货币)”的缩写,“EP”是“ElectronicPayment(电子支付)”的缩写,中国央行数字货币的主要功能就是作为电子支付手段。在运营投放、管理模式和技术选择上,中国的央行数字货币有自身的特点。1、双层运营投放体系:4点考虑和4个

投资者安全避风港比特币与黄金那个更好

科技快讯
在比特币炒作的过程中,一些投资者浮现了这样一种想法--有一天,加密货币可以取代黄金,成为世界上最广泛接受的投资资产之一。随着2017年的价格暴涨,加密货币现象引起了所有投资者的注意,他们也探索了超越区块链的应用。

EOS暴跌50%,火币摊上爆仓大事儿!

科技快讯
EOS主网上线在即,然而,EOS近日一反常态,不涨却暴跌50%!腰斩啊腰斩!!于是,币友们直接泪目了...大家纷纷讨论EOS暴跌原因:1、韩国最大交易所Upbit被调查,EOS交易量在该交易平台占到了全网的10%,所以EOS下跌是无法避开的结果。2、EOS的下跌或许是“温州帮”所为,先找热点,找概念,然后用大资金的蛮力推动市场价格的变化,让价格在短时间内迅

史上最详细的区块链技术架构分析

科技快讯
数据层是最底层的技术,主要实现了两个功能:数据存储、账户和交易的实现与安全。数据存储主要基于Merkle树,通过区块的方式和链式结构实现,大多以KV数据库的方式实现持久化,比如比特币和以太坊采用的leveldb。账户和交易

三大平台关闭新注册入口,币市整体大跌

科技快讯
先回应一下后台的问题,再来说今天的大跌。最近后台有很多人留言,说我之前看好xrp,后来下车后买了eth,虽然确实都赚了,但是道理上有点想不通。这是之前币先生对xrp和eth的看好分析:去年12月29日的文章:有的朋友觉得想不

Token的价值

科技快讯
关于Token的价值,很多区跨链领域的新人都会感到困惑,到底Token有什么用?作者Nicktomaino对Token进行划分,分为传统资产类、应用类、工作类以及混合类。当然,大家有不同的分类方法,百家之言,不妨看看,也欢迎留言提出你

跨境电商支付公司(海外电商支付)

科技快讯
作者:国际新经济研究院高级研究员付饶社交媒体巨头Facebook的加密专案Libra连遭打击,巨头eBay和支付公司PayPal、Visa、MasterCard和Stripe在两周内宣布退出Facebook推出的稳定币