【区块链 | 预言机】从零开始使用Chainlink预言机(2)- 智能合约中使用更安全的随机数-代码实战

news2024/12/22 23:09:42

智能合约中使用更安全的随机数(代码实战篇)

Chainlink最近推出一款革命性的产品,VRF—Verifiable Random Function可验证随机数,给智能合约带来了真正安全的随机数。本文我们就来介绍一下如何在智能合约中使用VRF吧。

我们先简要介绍一下Chainlink VFR的工作流程。

  1. 首先,智能合约应用,也就是我们的Dapp,需要先发起一个获取随机数的请求,这个请求需要给定一个合约地址,这个合约称为VRFCoordinator合约。
  2. 与VRFCoordinator合约所关联的Chainlink链下节点,会(通过椭圆曲线数字签名算法)生成一个随机数,以及一个证明。
  3. Chainlink节点将上面生成的随机数和证明发送到VRFCoordinator合约中。
  4. VRFCoordinator合约收到随机数和证明后,会对通过证明来验证所生成随机数的合法性。
  5. 随机数验证成功后,会将随机数发送回用户的智能合约应用

整个过程中有两次的交易提交确认的过程,用户合约需要支付LINK给VRF合约作为交易费用。

下面我们就通过写一个猜数字的小游戏,来学习如何使用Chainlink VRF。

首先,新建一个truffle项目,安装Chainlink开发包

mkdir vrf; cd vrf
truffle init
npm install @cha

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/66379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

科普:什么是ChatGPT?(文末有彩蛋)

科普:什么是ChatGPT?(文末有彩蛋) ChatGPT介绍 ChatGPT是OpenAI开发的一个大型预训练语言模型。它是GPT-3模型的变体,GPT-3经过训练,可以在对话中生成类似人类的文本响应。ChatGPT 旨在用作聊天机器人,我们可以对其进…

STM32F103定时计算方法

//TIM2时钟配置 void TIM2_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //定时器TIM2初始化 TIM_TimeBaseStructure.TIM_Period 499; //装载值(4991)500us TIM_TimeBaseStructure.TIM_Prescaler 63; //预分频&am…

WuThreat ITDR 可以快速构建多场景的身份认证与威胁检测能力

什么是WuThreat身份安全云? WuThreat 身份安全云融入身份认证和身份威胁检测与响应(ITDR)的技术,快速为企业的Web、APP等业务构建一体化多身份场景的认证与安全解决方案。WuThreat在身份认证与威胁检测领域是全球的创新领导者&am…

servletContext 对象的解释

大家好,今天来分享一下servletContext 作用 关于 servletContext 对象, 他代表是整个web 项目,他可以和servlet 或者程序的容器进行通信 同时也可以管理web项目 当一个web项目当中有很多servlet, 那这些servlet之间需要通信 就…

第二证券|六大券商热议“第三支箭”:再融资重启修复市场预期

房地产利好方针接连出台,“第三支箭”为商场再添强心针。上星期,证监会决定在房地产股权融资方面调整优化五项办法。上市房企纷繁呼应,已有近10家房企火速筹划再融资。 时隔多年,监管再度重启房企股权融资,对房地产商场…

Java搭建宝塔部署实战基于RuoYi开源博客管理系统源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套Java开发的RuoYi开源博客管理系统源码,是一个朋友发来给我,让我帮他测试怎么在宝塔搭建部署的,顺便录制出一个视频教程出来,搭建的方法还是比较简…

【基础算法】几种特殊数(素数、公约数、完全数、亲密数) C++实现

●素数 素数又称为质数,它指在一个大于1的自然数中,除了1和它自身外,没法被其他自然数整除的数。比1大,但不是素数的数称为合数。0和1既不是素数,也不是合数。因为素数的分布没有明显的规律,所以在程序中一…

争议不断的AI绘画,如今成为了顶流?

今年以来,AIGC迅速崛起。所谓AIGC,即AI-Generated Content,指的是利用人工智能来生成内容,被认为是继专业产出内容(PGC)、用户产出内容(UGC)后的新型内容创作方式。不久前掀起热议的…

「小白学Python」Windows安装Python

前言 Python下载地址 https://www.python.org/ Python下载 打开上面的链接,打开 Python 的下载页面,如下图所示: 我们把鼠标放到 Downloads 上,然后点击 Windows,此时界面如下图所示: 这里,我…

使用python批量的转换图片的格式并保存

使用cv2.dnn实现GoogleNet图像分类 Face-recognition实现人脸识别 Opencv实现信用卡识别 Opencv实现停车位识别 DlibOpencv库实现疲劳检测 Dlib库实现人脸关键点检测(Opencv实现) OpencvYOLO-V3实现目标跟踪 YOLO-V3实时检测实现(open…

str(n)cpy的注意事项以及memset的简单使用

目录 strcpy strncpy memset 前言:因为C语言不能像C的string那样重载、等运算符,所以C语言提供了用于字符串拷贝的函数strcpy与strncpy,但是这两个函数都存在着一些问题; 我们需要先知道,字符串的结束标志是\0&…

五年数据库专家,带你深入高性能 MySQL 架构系统,不要等到面试再追悔莫及

MySQL 作为互联网中非常热门的数据库,在高并发业务场景下,一条好的 MySQL 语句能为企业节省大量的运作时间和成本,这也是为何互联网大厂面试官最爱考察数据库底层和性能调优的原因。因此,了解其底层原理和架构的设计非常重要&…

2022年全球城市变迁研究报告

第一章 全球城市概述 全球城市 (Global City),又称为世界城市 (World City)、国际大都市或国际都会城市,是指在财富、社会、经济、文化及政治层面直接影响全球事务的城市。近年来,随着全球化的扩张,城市文明与软实力的影响达到鼎…

redis的key过期事件不建议实现延时消息的原因

官网的解释 https://redis.io/docs/manual/keyspace-notifications/#timing-of-expired-events 简单的意思就是不能保证时效性,key过期事件可能会往后推个几分钟才触发,特别是数据量越来越大的时候。 而且一旦客户端处理失败,这个事件也不…

Linux 将 /home 目录与 / 根目录磁盘合并

1. Linux 下的 /home 目录与 / 目录 一般情况下进入 Linux 系统下的 / 目录,会看到如下目录列表。 [rootlocalhost /]# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var可以看到其中包含 home 目录&…

SpringBoot实现WebSocket

一、什么是websocket WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议) 它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的 Websocket是一个持久化的协议 二、新建SpringBoot工…

STM32读保护的解除和出现的原因,使用串口和ST-LINK Utility解除读保护

STM32读保护的解除和出现的原因,使用串口和ST-LINK Utility解除读保护STM32读保护读保护保护出现的现象出现的原因读保护解决方法1、重新下载CH340驱动2、FlyMcu串口下载软件接触读保护使用STM32 ST-LINK Utility软件解除读保护注意STM32读保护 读保护保护出现的现…

4-(1,2,2-三苯基乙烯基)苯甲醛;​CHO醛基偶联AIE材料

中文名 4-(1,2,2-三苯基乙烯基)苯甲醛 英文名 4-(1,2,2-triphenylvinyl)benzaldehyde 4-(1,2,2-三苯基乙烯基)苯甲醛物理化学性质 分子式 C27H20O 分子量 360.455 质量 360.151428 AIE聚集诱导发光材料的特点: 1.在固态下有强发光特性(粉末或高浓度&am…

【Linux03-基本工具之GCC】Linux下的C语言编译器

前言 接上篇,继续学习基本工具。 三、gcc 是什么 Linux下的C语言编译器(C的编译器是g,用法选项基本一样)。 既然是编译器,我们就再来加点餐…… 链接其实分为两种类型:静态链接和动态链接&#xff0…

内切相减原理绘制CAD图形

CAD中的内切相减的原理你们知道是什么意思吗?这个就需要用CAD实际图形的绘制过程来理解了,这个图形就用到了这个,还用到了CAD直线、修剪、圆等命令共同绘制出来。 目标图形 操作步骤 1.使用CAD直线命令绘制一条长度30的垂直直线AC&#xff…