http://www.7klian.com

如何利用VRF在以太坊上生成随机数

在最近的一篇文章中,Chainlink公布宣布了其新的可验证随机函数(VRF)。开拓人员此刻可以利用该成果将其集成到多个测试网上的DApp中,从而使智能合约可以或许检索可在链上验证的随机数。这意味着不再有裂痕,并担保了随机性。
那么该成果如何实现的?
当功效返回时,该值将存在而且可以通过挪用以下要领举办检索:
bytes32 keyHash = “0xced103054e349b8dfb51352f0f8fa9b5d20dde3d06f9f43cb2b85bc64b238205”;
利用左侧菜单,单击Solidity图标,然后选择0.6.2编译器版本,如图4所示。

在“Custom Token”下,添加地点:0x20fE562d797A42Dcb3399062AE9546cd06f63280。其余具体信息应自动填写。提交后,假如您要求LINK到正确的地点,那么您的帐户中应该会看到100 LINK。图7显示了一个具有70 LINK的帐户。

Metamask不知道LINK令牌在Ropsten上的位置,因此我们需要添加它。在“ Metamask”中,在您的帐户名称左侧,单击burger标记,然后单击底部的“Add Token”。
    }
chainlink/develop/evm-contracts/src/v0.6/VRFConsumerBase.sol”;
· Key hash: 0xced103054e349b8dfb51352f0f8fa9b5d20dde3d06f9f43cb2b85bc64b238205
seed = 123456789;

这将提示您应接管的来自Metamask的毗连请求。
假如您想在Javascript中生成一个随机数,代码很是简朴:
正如我在步调1前面提到的,函数挪用需要通报一些地点和其他值作为参数。
VRFConsumerBase仍在后期测试中,因此软件包尚为对外提供。这就是为什么我们利用Github的HTTP URL举办导入的原因。
// make call to request randomness

按顺序将这些值粘贴到三个输入框中:0xced103054e349b8dfb51352f0f8fa9b5d20dde3d06f9f43cb2b85bc64b238205、10000000000000000000000、123456789(或您但愿的seed是什么)。然后点击“Transact”!

为了使第4点乐成,您的条约需要实现一个已知函数,以便VRF可以返回功效验证。可是如安在您的项目中实现呢?
因此我们的挪用代码将如下所示:
让我们建设一个名为RandomGenerator的新智能合约,在这里我们将挪用VRF并吸收功效。
Math.random();
        reqId = requestId;
    VRFConsumerBase(_vrfCoordinator, _link) public {
问题源于以下事实:生意业务被挖掘时,需要由网络上的多个节点来确认。这意味着每个节点都必需得出沟通的共鸣。因此假如函数确实是随机的,则每个节点将得出差异的共鸣,从而导致未能确认的事务。
}
        randomNumber = randomness;

步调1:建设消费者合约
另一个叫做fulfillRandomness,这是VRF在
生成数字时挪用的函数。我们可以重写它,以便在挪用随机数时对其执行操纵。

    uint256 public randomNumber;
import “https://raw.githubusercontent.com/smartcontractkit/
}

生意业务完成后,我们需要期待VRF生成随机数并将其发送回我们的合约。几分钟后,单击我们在Remix中发送生意业务的橙色按钮下方的蓝色“ randomNumber”按钮,查抄您的合约是否收到了随机数,如图12所示。

以下是事件的顺序:
· Seed: [whatever_you_want_your_seed_to_be]
结   论

2. VRF会生成该数字并举办验证。

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

相关文章阅读