📢 Gate广场 #NERO发帖挑战# 秀观点赢大奖活动火热开启!
Gate NERO生态周来袭!发帖秀出NERO项目洞察和活动实用攻略,瓜分30,000NERO!
💰️ 15位优质发帖用户 * 2,000枚NERO每人
如何参与:
1️⃣ 调研NERO项目
对NERO的基本面、社区治理、发展目标、代币经济模型等方面进行研究,分享你对项目的深度研究。
2️⃣ 参与并分享真实体验
参与NERO生态周相关活动,并晒出你的参与截图、收益图或实用教程。可以是收益展示、简明易懂的新手攻略、小窍门,也可以是行情点位分析,内容详实优先。
3️⃣ 鼓励带新互动
如果你的帖子吸引到他人参与活动,或者有好友评论“已参与/已交易”,将大幅提升你的获奖概率!
NERO热门活动(帖文需附以下活动链接):
NERO Chain (NERO) 生态周:Gate 已上线 NERO 现货交易,为回馈平台用户,HODLer Airdrop、Launchpool、CandyDrop、余币宝已上线 NERO,邀您体验。参与攻略见公告:https://www.gate.com/announcements/article/46284
高质量帖子Tips:
教程越详细、图片越直观、互动量越高,获奖几率越大!
市场见解独到、真实参与经历、有带新互动者,评选将优先考虑。
帖子需原创,字数不少于250字,且需获得至少3条有效互动
预言机系统:区块链与现实世界的关键桥梁
预言机系统在区块链技术中的关键作用
预言机是区块链领域中一种重要的基础设施,它可以为链上智能合约提供外部信息。作为连接智能合约和链外世界的中间件,预言机在区块链生态中扮演着不可或缺的角色,其核心功能是为智能合约提供所需的外部数据。
举个例子,假如我们在以太坊上部署了一个需要获取某日原油交易量数据的智能合约。由于智能合约本身无法直接访问链下的现实世界数据,这时就需要借助预言机来实现这一功能。具体流程是:智能合约会将所需日期的原油交易量写入事件日志,然后链下会启动一个进程来监控这个事件日志。当检测到相关请求时,该进程会通过提交链上交易的方式,调用合约的对应方法,将指定日期的原油交易量信息传输到智能合约中。
在众多预言机项目中,Chainlink占据了最大的市场份额。Chainlink是一个去中心化的预言机网络,旨在以最安全可靠的方式为区块链提供现实世界的数据。除了实现基本的预言机功能外,Chainlink还围绕LINK代币构建了一个通过经济激励形成良性循环的生态系统。在Chainlink网络中,预言机服务需要通过转移LINK代币来触发,而LINK是以太坊上的一种ERC677代币。基于LINK代币实现的预言机功能属于请求/响应模式。
ERC677标准在ERC20的基础上增加了transferAndCall方法,将支付和服务请求合二为一,更好地满足了预言机业务场景的需求。当用户调用transferAndCall进行转账时,除了常规的ERC20转账外,如果接收方是合约地址,还会调用该地址的onTokenTransfer方法。
在链上oracle请求过程中,当预言机消费者使用transferAndCall方法支付费用并请求服务时,预言机合约的onTokenTransfer方法会首先进行一系列安全检查,包括验证转账是否为LINK代币、检查请求数据长度是否合规、验证function selector等。通过这些检查后,才会通过delegatecall来调用oracle合约的oracleRequest方法。
oracleRequest方法会生成唯一的requestId,设置请求过期时间,并将相关信息记录到commitments映射中。最重要的是,它会发出一个包含请求数据的OracleRequest事件。这个事件中的数据通常采用CBOR(简洁二进制对象表示)格式编码,便于链下节点解析处理。
链下节点在响应请求时,会调用fulfillOracleRequest方法。该方法首先会进行一系列验证,包括检查调用者权限、验证请求有效性等。验证通过后,会更新可提取的代币数量,删除对应的commitment记录,并最终调用请求者合约的回调函数。
对于开发者而言,如果只需使用现有的币对价格数据,可以直接调用Chainlink提供的Price Feed接口。每个交易对都有一个独立的Price Feed(也称为Aggregator),实际上是一个AggregatorProxy合约。这些接口提供了获取价格精度、描述、版本号以及最新价格数据等功能。大多数应用场景下,合约可能只需读取最新价格,通过调用latestRoundData()方法即可获得。值得注意的是,以美元计价的交易对通常采用统一的8位精度,这简化了不同代币间的精度处理问题。