一、文章结构
本文将通过上、中、下三篇文章带领大家一步步开发实现一个中心化的Oracle服务,并通过一个抽奖合约演示如何使用我们的Oracle服务。文章内容安排如下:
- 上篇:Oracle简介及合约实现
- 中篇:使用go语言开发Oracle服务
- 下篇:抽奖合约调用Oracle服务示例
前两篇文章中,我们实现了Oracle合约,开发了Oracle服务,在这边文章中,我们以一个抽奖合约为例,介绍在抽奖合约中,怎么通过Oracle服务获取一个随机数(中奖数)。
二、联调准备
首先我们需要搭建测试环境、部署合约、运行服务。我是在本地进行联调测试的,可以参考我的环境。
1、区块链网络
我使用的是ganache,在本地创建了一个以太坊私链。
ganache的按照和使用详见官方文档:https://www.trufflesuite.com/ganache
2、部署合约
区块链网络创建好后,需要把我们的Oracle合约和抽奖合约部署到网络上。我用的是Remix,链接到本地网络进行部署的。
如下图所示。
大家也可以使用Truffle工具进行合约的自动化部署
2.1 部署Oracle合约
Oracle合约源码地址:https://github.com/six-days/ethereum-con