【问题标题】:Retrieve the random number generated by Chainlink VRF in 1 transaction在 1 笔交易中检索 Chainlink VRF 生成的随机数
【发布时间】:2021-10-05 09:57:27
【问题描述】:

我试图在与 Chainlink VRF 的 1 笔交易中获得一个可靠的随机数。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
import "@chainlink/contracts/src/v0.8/VRFConsumerBase.sol";
contract RandomNumberConsumer is VRFConsumerBase {
    
    bytes32 internal keyHash;
    uint256 internal fee;
    
    uint256 internal randomResult;
    
    constructor() 
        VRFConsumerBase(
            0xdD3782915140c8f3b190B5D67eAc6dc5760C46E9, // VRF Coordinator
            0xa36085F69e2889c224210F603D836748e7dC0088  // LINK Token
        )
    {
        keyHash = 0x6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f4;
        fee = 0.1 * 10 ** 18; // 0.1 LINK (Varies by network)
    }
    function getRandomNumber() public returns (bytes32 requestId) {
        require(LINK.balanceOf(address(this)) >= fee, "Not enough LINK - fill contract with faucet");
        return requestRandomness(keyHash, fee);
    }
    function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
        randomResult = randomness;
    }

    function letsGo() public {
        bytes32 requestId;
        requestId = getRandomNumber();
        fulfillRandomness(requestId, 123456);
    }
}

区块链有没有办法获取randomResult?

我正在专门查看我的 letsGo 函数。

【问题讨论】:

  • 你的uint256 internal randomResult; 是内部的,你能把它改成public 吗?另外,你的letsGo 什么也没做......
  • 我可以公开,我的问题是,是否可以在区块链中找到随机数?我的 let's go 只是一次性启动进程。
  • chainlink VRF 是一个 2 交易过程。第一个请求随机数的事务,第二个返回随机数的事务。 1 次无法得到随机数。
  • 号码是123456吗?
  • 不,randomResult 就像 515118454651515164848941000151515118454651515164848941000151

标签: blockchain ethereum solidity remix chainlink


【解决方案1】:

chainlink VRF 是一个 2 交易过程。

第一个事务请求随机数,第二个事务返回随机数。 1 次无法得到随机数。

您可以在文档中阅读有关basic request model 的更多信息。

您的letsgo 功能将不起作用。

【讨论】:

  • 但是,我的功能正在运行,并且 randomResult 是用随机数实现的
  • 你完成自己的请求,然后节点也完成你的请求
猜你喜欢
  • 1970-01-01
  • 2022-10-21
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 2010-12-06
  • 2010-12-20
  • 1970-01-01
相关资源
最近更新 更多