HPB 随机数接口文档
本文档提供两种方式获取HPB随机数,对应两种接口。
一种是通过RPC接口获取历史随机数;
一种是通过智能合约使用最新随机数。
接口定义
通过RPC接口获取历史随机数
接口名称 :hpb_getRandom
参数 :块号 ,整形数字或者字符串”latest”
返回值:随机数,string,
使用“latest”查询最新块中的随机数
调用示例:
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"hpb_getRandom","params":["latest"],"id":1}' <http://127.0.0.1:8545>
返回示例:
{"jsonrpc":"2.0","id":1,"result":"0x45e5b62b748859b8eaf245406f5734244c5fef80d65f973b0a96407cf733db51"}
查询指定块号的随机数
调用示例:
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"hpb_getRandom","params":["0x3f21"],"id":1}' http://127.0.0.1:8545
返回示例
{"jsonrpc":"2.0","id":1,"result":"0x45e5b62b748859b8eaf245406f5734244c5fef80d65f973b0a96407cf733db51"}
通过智能合约使用最新随机数
在智能合约中使用最新的随机数,方式十分简单,只需要调用block.random即可返回随机数。
合约需要使用HPB官方的solidity编译器进行编译才能生效。
合约示例
pragma solidity ^0.5.1;
contract MYTEST{
bytes32 random;
function getrandom()public {
random = block.random;
}
function print() view public returns(bytes32){
return random;
}
}
上述合约示例通过在HPB主网上部署后,执行getrandom函数,则将最新的随机数写入random变量。然后通过print函数打印随机数。
THE END!