临近 EthCC 时, 我们将为幸运的中奖者赠送一张门票.
同时, 我们意识到这是一个展示开发者可以如何用 Hyper Oracle 构建应用的好机会.
在这篇文章中,我们将展示通过基于 Hyper Oracle 的技术栈, 以以太坊智能合约和 Hyper Oracle zkGraph 为核心, 进行抽奖的完整应用流程.
你可以在这里查看应用的源码和以及区块链浏览器中的链接: https://gist.github.com/fewwwww/472a08039680bf6c79d5379c8533a2fd.
为了让 zkGraph 实现随机数生成的计算, 我们首先需要将数据放在链上.
我们从开发一个基本的智能合约开始. 合约的核心部分会发出一个事件 (emit event), 其中会包含我们输入的随机数的种子数据.
然后我们直接将合约部署到以太坊主网 (0x65747849E7033cd1da6bF5Aeb753460F61743B18). 部署后, 我们通过调用智能合约上的一个函数, 将随机数 ( 在我们的案例中, 我们使用原始推文的转发数 ) 输入到智能合约中.
这个交易发出了我们输入的数字作为 event 数据. 你可以在区块链浏览器中看到我们刚刚发送的交易的事件数据.
我们现在知道了 event 在以太坊链上的交易哈希, 我们需要在 zkGraph 中写一个 handleEvent 函数来处理 event 数据.
在我们的 handleEvent 代码中, 有三个主要部分:
对于数据随机化, 我们通过使用今天的日期和时间来增加额外的复杂性. 在整个 zkGraph 的开发过程中, 开发人员可以自由地编写更复杂和精密的操作: 索引, 自动化, 甚至机器学习!
这个例子仅仅是通过最简的形式来展示你可以用 zkGraph 做什么. 在最后阶段, 我们部署这个 zkGraph, 使其可执行, 并生成零知识证明!
Hyper Oracle’s MVP 是一个易于上手的开发平台, 供开发者使用库编写 zkGraph 代码并进行部署.
对于使用 MVP, 你可以查看我们的 MVP 测试指南.
我们把刚才写的 zkGraph 代码粘贴到 MVP 的代码编辑器中, 并在右边输入相应的源合同地址和源事件名称.
接下来, 我们使用代码编辑器来生成编译好的 WASM 代码, 并点击 “SET UP” 将其部署到我们的节点上.
在输入正确的交易哈希值 ( 发出事件的哈希值 ) 后, 我们可以进行 zkGraph 的计算, 并为其计算生成一个零知识证明.
我们可以看到, 我们已经知道了抽奖的最终赢家, 也就是输出状态数据中显示的第 9 个成员.
作为最后一步, 我们部署了一个链上验证者智能合约来验证零知识证明. 这是为了确保执行是正确的, 从而证明抽奖的输出是根据 zkGraph 中的代码来进行的.
这就是用 Hyper Oracle 和 zkGraph 构建一个应用程序的流程.
在现实的例子中, 整个开发过程可能是:
现在开始构建 zkGraph!
我们很想听听你目前是如何使用智能合约自动化的, 以及你想使用哪些功能. 因此, 我们创建了一个简短的开发调查, 以更好地了解您的需求, 以及我们如何定制我们的产品以满足您的要求.
在 Twitter 上关注我们并加入我们的 Discord, 以了解 Hyper Oracle 的最新情况. 在我们的网站上了解更多关于 Hyper Oracle 的信息.
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。