门罗币XMR最新挖矿算法RandomX设计原理

Randomx算法-门罗币XMR的挖矿新算法

RandomX算法设计目标是抗ASIC+降低GPU优势。

Monero门罗币XMR计划于2019年的10月份启用最新的RandomX 算法以取代原来的CryptoNight挖矿算法,以继续优化抗ASIC+降低GPU优势来保持门罗POW网络的分散性

算法流程分析

最外层循环8次

内层循环2048次

0.输入0-60字节的 K、任意长度字符串 H(包含nonce)。

1.使用K初始化Dataset。

2.使用 HHash512(blake2b)算法生成种子 seed1

3.设置生成器 AesGenerator1R参数为 seed1

4.使用生成器 fillAes1Rx4参数 seed1生成 Scratchpad和参数 seed2

5.设置生成器 AesGenerator4R参数为 seed2

6.设置浮点默认舍入模式。

7.1使用生成器 fillAes4Rx4参数 seed2生成 entropy128字节 + program(2K=8*256)8*RANDOMX_PROGRAM_SIZE (执行参数和随机代码) 。

7.2 解析参数 entropy

7.3 JIT编译program为机器码。

8.执行虚拟机。

9.使用虚拟机 regfile和Hash512(blake2b)算法生成种子 seed2

10.使用 seed2设置生成器gen4的状态。

11.重复7-10步骤RANDOMX_PROGRAM_COUNT(8)次,最后一次执行时跳过9、10步骤。

12.调用 hashAndFillAes1Rx4算法计算 Scratchpad的特征值 A

13.将特征值A覆盖regfile的一部分。

14.使用虚拟机 regfile和Hash512(blake2b)算法生成哈希结果 R

流程图

门罗币XMR最新挖矿算法RandomX设计原理

Original: https://www.cnblogs.com/fanguang/p/12107860.html
Author: 反光
Title: 门罗币XMR最新挖矿算法RandomX设计原理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578087/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • shell中的##*,%%*问题

    假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值:${file#/}:删掉第一个 / 及其左边的字符串…

    Linux 2023年5月28日
    077
  • .NET Core 3.0, 发布将于今晚开始!

    期待已久的.NET Core 3.0即将发布! .NET Core 3.0在.NET Conf上发布。大约还有9个多小时后,.NET Conf开始启动。 第1天-9月23日 9:0…

    Linux 2023年6月7日
    095
  • Linux运行Jar包方式

    1 运行Jar包 第一种方式 java -jar xxx.jar 最基本的方式,程序运行的信息会一直输出在控制台,ctrl+c中断或者关闭窗口时,程序中断执行。 第二种方式 jav…

    Linux 2023年6月7日
    0111
  • jquery ajax提交数据给后端

    大家好,今天铁柱兄给大家带一段jquery ajax提交数据给后端的教学。 初学javaweb的同学前端提交数据基本上都是用form表单提交,这玩意儿反正我是觉得不太好玩。而Jav…

    Linux 2023年6月13日
    091
  • 【设计模式】Java设计模式-桥接模式

    【设计模式】Java设计模式 – 桥接模式 😄 不断学习才是王道🔥 继续踏上学习之路,学之分享笔记👊 总有一天我也能像各位大佬一样🏆原创作品,更多关注我CSDN: 一个…

    Linux 2023年6月6日
    0132
  • Spring Session Redis

    http://www.infoq.com/cn/articles/Next-Generation-Session-Management-with-Spring-Session Or…

    Linux 2023年5月28日
    0102
  • 正则: 匹配英文、数字和所有特殊字符

    r”’\[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;’\\[\]·~!@#¥%……&*()——\-+={}|《》?…

    Linux 2023年6月15日
    0136
  • Gumbel_Softmax 概要

    解决argmax不可导,无法进行反向传播的问题 出现的原因: argmax(x,y)不可导的根本原因是其向量空间不是光滑的,有尖锐的点和面;而是某些任务中,argmax会被插入到反…

    Linux 2023年6月7日
    0117
  • docker容器资源限制:限制容器对内存/CPU的访问

    服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 x86_64…

    Linux 2023年6月7日
    088
  • 用户管理

    用户组 种类 基本组: 一个用户一定要有一个基本组 ,且只有一个 附加组: 一个用户可以没有附加组,一个用户可以有多个附加组 分别基本组和 附加组?[root@localhost …

    Linux 2023年6月6日
    0160
  • [转] OSDI, SOSP与美国著名计算机系的调查报告

    看到一个很久之前的文章,重新排版后转发一下,希望能带来一些帮助;文章有时效性,出现的数据多为历史数据。资源来源自网络,侵删。 序言 按照USnews的分类,Computer Sci…

    Linux 2023年6月13日
    0110
  • 利用Hugo与GitHub仓库搭建免费的个人博客

    软件下载 配置环境变量 检验环境变量 创建博客文件 创建站点文件夹 下载主题 新建博客 将个人博客部署到github存储仓库 保姆级 基于Win10环境下的Hugo免费博客搭建 软…

    Linux 2023年6月7日
    0128
  • 使用PowerShell收集多台服务器的性能计数器

    写在前面 当管理多台Windows Server服务器时(无论是DB、AD、WEB以及其他的应用服务器),当出现性能或其他问题后,参阅性能计数器都是一个非常好的维度从而推测出问题可…

    Linux 2023年5月28日
    094
  • 用powershell实现,管理github自动化

    用powershell实现,管理github自动化 搜索关键字如下:PowerShellForGitHub powershell 传教士 原创文章。始于 2021-02-04 允许…

    Linux 2023年6月14日
    092
  • 【Redis】单线程理解及可能影响性能的操作

    一. Redis的单线程 二. 可能影响单线程性能的操作 1. bigKey操作 2. 复杂命令 3. 大量key集中过期 4. 淘汰策略 5. 主从全量同步生成RDB 6. AO…

    Linux 2023年5月28日
    0140
  • 最小化安装killall不可用

    最小化安装killall不可用 最小化安装 Centos7.4后,发现killall命令不可用使用了以下命令,查看软件包名: yum search killall 查找后发现应使用…

    Linux 2023年6月13日
    0107
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球