Chain:技术指南:如何创建通用的区块链智能合约?

区块链智能合约可以通过集成去中心化Oracle来访问链外的数据。在用户深入研究如何使用它们之前,了解整体情况下区块链智能合约的重要性以及需要Oracle访问数据的原因非常重要。

如今,世界各地每天都在进行大量交易,并且通常受协议或合同约束。这可能是由供应商的服务条款,监管框架或两者的结合所驱动。这些协议的参数并不总是清晰或透明的。他们最终取决于组织及其按照事先约定的条件采取行动的意愿。

越来越多的合同被数字化。区块链技术的兴起引入了智能合约,该系统可防止篡改,透明和公平地管理此类协议。智能合约是通过数学而不是组织来管理的。合同生效后,他们将自动实施合同参数,为所有各方创建一个更公平的结构。

智能合约的挑战在于,它们通常依赖于将现实世界的数据与区块链桥接的能力,以便智能合约可以识别质量,评估可靠的数据并触发商定的结果满足健康)状况。过去,这是一个过于复杂和困难的过程,从而限制了其广泛采用。

ETH 2.0测试网Medalla客户端Prysm推出非技术指南:8月5日晚间,Bitfly(Ethermine矿池母公司)官方发推宣布,Prysmatic Labs已推出针对Windows用户的ETH 2.0测试网Medalla客户端Prysm的非技术指南,以帮助用户参与Medalla质押。[2020/8/6]

关于Chainlink

Chainlink是一个开源抽象层,它提供了一个框架,可以轻松地将区块链与外部API连接起来。您可以将Chainlink视为TCP/IP中传输层的等效区块链,以确保可靠地进出数据。Chainlink旨在成为智能合约的标准数据层,释放其影响外部世界的真正能力,并将其转变为具有外部意识的通用智能合约。

智能合约可以完全改变信任和自动化在业务中的处理方式,但是它们对区块链事件应用范围的限制严重限制了它们的潜力。开发人员希望与之交互的大多数内容都存在于“现实世界”中,例如定价数据,运输条件,全球事件等,以创建通用的智能合约。这些合同具有外部意识,因此在掌握世界数据时可以处理各种常规任务。Chainlink网络为Solidity和其他区块链开发人员提供了构建去中心化Oracle的框架。

天启资本首席交易员TraderT:高频交易不止于技术指标,应多观察和思考:7月2号19:00,合约帝金牌讲师、天启资本首席交易员TraderT做客MXC抹茶社区,就个人在数字货币合约市场的投资心得进行分享。

TraderT表示,投资主要分为三个步骤:仓位管理;严格的止损;严格的提款本金固定及充值纪律。交易员进行一次交易的判断流程通常是制定计划,包括预判行情、开单计划、止盈止损的点位、突发事件下是否入场等综合因素。每个人都有自己的哈姆雷特,每个人对于技术分析的理解都不同。我做高频交易的思路是,作为“Day Trader”每天需要观察什么,做什么,如何进行高频交易,而不是完全通过技术指标去分析。[2020/7/2]

这些Oracle可用于在以太坊网站上实时从分散式应用程序检索数据。

链环适配器

默认情况下,适配器是每个Chainlink节点支持的数据操作功能。在这种情况下,节点是分散的。它们满足数据请求,并且Chainlink网络由越来越多的节点组成。它的节点由许多独立的运营商运营。通过该适配器,所有开发人员都具有用于发送数据请求的标准接口,并且节点操作员将遵循该标准来处理数据。这些适配器包括HTTPGET,HTTPPOST,比较,复制和其他功能。适配器是dApp与外部世界数据之间的连接。

动态 | IBM区块链高级技术人员当选Hyperledger技术指导委员会主席:随着IBM在Hyperledger技术指导委员会(TSC)的席位增加引发争议,该委员会又选定另一名IBM官员担任其主席。据报道,IBM区块链和Web开放技术的高级技术人员Arnaud Le Hors将接替英特尔首席工程师Dan Middelton担任主席。(coindesk)[2019/9/12]

例如,这是HttpGet适配器的参数:

Get:获取包含APIURL的字符串以请求Get。

标头:包含键作为字符串和值作为字符串数组的对象。

queryParams:获取URL查询参数的字符串或字符串数组。

extPath:以斜杠分隔的字符串或字符串数组,以附加到作业的URL。

链环要求

为了使通用智能合约能够与这些适配器交互,还需要其他功能。从ChainlinkClient继承的所有合同都可以创建Chainlink.Request结构,该结构允许开发人员向Chainlink的去中心化Oracle发出请求。该请求应根据要发出的请求将所需的适配器参数添加到结构中。提交此请求需要一些基本字段,例如用作Oracle的节点的地址,jobId和约定的费用。除了这些默认字段之外,您还可以将所需的适配器参数添加到请求结构中:

动态 | 彭博:GTI Vera技术指标自6月份以来首次发出买入信号,可能预示着新的高点:近日比特币在全球金融市场中的避险属性已逐步显现。8月7日,彭博社发文称,基于上周末的交易活动,追踪正面和负面趋势的GTI Vera Convergence-Divergence指标产生了新的买入信号,这是该指标自6月份以来的首次买入信号,可能预示着比特币将达到新的高点。彭博分析师Mike McGlone表示,与其他风险资产相比,比特币的涨势正在上升,比特币应该仍然是其存储价值需求增长的主要受益者,与黄金相似。[2019/8/7]

使用这种结构,该请求是灵活的,并且可以被表述为适合各种情况的请求,这些情况涉及从任何API获取,发布和操作数据,因为该请求可以包含任何适配器功能。系统分散的原因是Chainlink的Oracle网络由许多这样的节点组成,开发人员可以根据需要自由选择节点和编号。正如高可靠性dApp经常需要的那样,这可以通过多个源实现冗余故障转移和错误检查。

动态 | CME公司创始人赵易天:“区块链+AI”等新技术指引未来音乐市场的发展走向:据中国文化报消息,日前,第二十八届中国国际专业音响·灯光·乐器及技术展览会(乐器展)在北京举办。CME公司创始人赵易天在会上表示,无论产品硬件研发还是音乐软件开发,都需要符合市场潮流与方向。他提到,MIDI新标准、“区块链+AI”等新技术指引着未来音乐市场的发展走向。例如,MIDI新标准将建立起智能化乐器互联,云服务能建立起无地域限制的双向连接,区块链可以实现节点间的价值传递等。[2019/6/14]

有关在ChainlinkClient合同中构造请求以及提交请求和接收响应所需的功能的更多信息,您可以查看Chainlink的完整HTTPGET请求示例。

对于常见请求,节点操作员可能已预先配置了现有的Oracle作业,在这种情况下,请求要简单得多。无需构建自定义请求结构并添加必要的适配器。不需要其他适配器参数,并且所选的分布式oracle集将基于创建请求结构时提供的jobId知道如何响应。

您可以使用分散的Oracle数据服务搜索现有的Oracle和受支持的作业,以找到所需的jobId。

外部适配器

但是,如果智能合约具有复杂的用例,并且默认适配器功能不能涵盖该用例,那么应该怎么做?如果需要执行一些高级数据操作怎么办?也许不是要提交给合同的原始数据,而是通过对数据点进行统计分析而生成的多个元数据。可能可以使用默认适配器来操作链上的数据,但希望降低成本。也许由于使用凭证来源,我不希望其API请求出现在链上,也不想在链上或Oracle作业规范中指定这些凭证。这是外部适配器起作用的地方。

由于外部适配器是与ChainlinkOracle节点脱链存在的代码段,因此只要数据输入和输出遵循适配器的JSON规范,它们就可以用他们选择的任何语言编写并执行人们可以想到的任何功能。。外部适配器充当Chainlink分散的Oracle网络与外部数据之间的接口,使节点操作员能够知道如何请求和接收JSON响应,然后在链上使用它们。

通过外部适配器在链外定义此接口规范将带来巨大的可能性:现在可以根据个人安全标准在链外存储API凭据,并且可以使用选择的语言以任何方式对数据进行编程,而无需使用任何以太坊费用用于资助链上交易。从某种意义上说,外部适配器就像分散的Oracle的另一层一样。它以低成本快速地将数据打包到区块链的外部,然后将其转换为整洁的JSON格式,供Chainlinkoracle使用。节点在链上进行了验证。

外部适配器是使Chainlink成为多功能分散式Oracle网络的重要组成部分。合同开发人员可以根据需要自由地实现这些适配器,或者从Chainlink市场上的现有适配器中进行选择。如果它是寻求创建外部适配器的智能合约开发人员,则Chainlink仅需要JSON接口来进行数据请求和返回数据。在这两个界面之间,开发人员可以自由创建和操纵数据以适合他们的用例。作为Oracle节点操作员,要支持外部适配器并处理其他请求,必须在节点用户界面中为其创建桥,并将适配器的桥名称添加到支持的任务中。

您可以在ChainlinkBuildExternalAdapter页面上访问创建外部适配器的完整示例。

Chainlink致力于为区块链和智能合约开发人员提供工具,以便他们可以根据实际需求使用实际数据支持通用智能合约。

Chainlink致力于为区块链和智能合约开发人员提供工具,以便他们可以根据实际需求使用实际数据支持通用智能合约。Chainlink的设计结合了通过默认适配器和可扩展外部适配器对任何API的直接调用,从而为开发人员提供了一个灵活的平台来创建所需的任何数据。这为智能合约打开了一个真实的数据世界,并给出了新的用例。

总结

如果您是一个智能合约开发人员,想要通过外部数据增加智能合约的效用,则需要尝试这个Chainlink示例练习,以部署与链下数据进行交互的通用智能合约。

Chainlink是MIT许可下的开源代码。因此,如果您想开发一种可以从Chainlink的分散式预言中受益的产品,或者想协助Chainlink网络的开发,则需要参考开发人员文档或参与有关Discord的技术讨论。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:15ms0-0:786ms