门罗币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)

大家都在看

  • CentOS7安装MySQL5.7并配置账户等

    注意: 有的Centos版本默认安装了mariadb, 可以先将其卸载 检查mariadb是否安装 yum list installed | grep mariadb 卸载mari…

    Linux 2023年6月6日
    090
  • centos7安装zabbix-agent客户端

    1.官方下载zabbix-agent安装包链接:wget https://cdn.zabbix.com/zabbix/binaries/stable/5.4/5.4.6/zabbi…

    Linux 2023年6月13日
    0134
  • zabbix自定义监控mysql主从状态和延迟

    zabbix自定义监控mysql主从状态和延迟 zabbix自定义监控mysql主从状态和延迟 zabbix自定义监控mysql主从状态 zabbix自定义监控mysql主从延迟 …

    Linux 2023年6月13日
    0127
  • C语言怎么给函数添加形参的默认值

    如果不是机缘巧合,当年转到C++之后,恐怕很难再有机会还写C的代码。面向对象在现代coding中,就像圣经一样,在码农的口中自带光环,code起来左一个语法糖,右一个范式编程,各种…

    Linux 2023年6月6日
    0124
  • Docker部署Redis

    执行以下命令,创建并启动镜像。如果本地没镜像,会自动拉取 docker run \ -itd \ –restart=always \ –name=redis \ -p 6379…

    Linux 2023年6月7日
    093
  • tomcat

    1. tomcat简介 2. tomcat的部署 2.1 java环境的安装 2.2 tomcat部署 2.3 访问Host Manager界面 2.4 访问Server Stat…

    Linux 2023年6月13日
    0131
  • redis 开机启动安装

    先make把环境装上,然后可以选择用utils文件夹下的./install_server.sh命令进行开机启动安装 1、编写redis.conf配置文件 1)、 设置密码,打开re…

    Linux 2023年5月28日
    0102
  • pysimpleGui FilesBrowse函数原始说明

    FilesBrowse: (button_text=’Browse’, target=(ThisRow, -1), file_types=((“…

    Linux 2023年6月14日
    076
  • Linux之Keepalived高可用

    一、高可用介绍 一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。 硬件通常使用:F5 软件通常使用:Ke…

    Linux 2023年5月27日
    0122
  • linux DMA接口

    1.1. 一致性DMA映射(Consistent DMA mappings ) 主要用于映射长时间使用的区域。 CPU和DMA controller不需要考虑cache的影响。 1…

    Linux 2023年6月6日
    077
  • 使用docker 5分钟搭建一个博客(mysql+WordPress)

    一.系统环境 二.前言 三.搭建博客 3.1 创建wordpress和mysql容器 3.2 在wordpress界面设置个人博客信息 3.3 WordPress容器创建命令的简化…

    Linux 2023年6月7日
    0138
  • springBoot 获取注解参数的原理

    判断每个参数带有注解是哪个,是否存在相应的解析器 寻找合适的处理适配器 DispatcherServlet中的 doDispatch方法 // Determine handler …

    Linux 2023年6月7日
    0109
  • [非原创]2048游戏自动化算法

    function AI(grid) { this.grid = grid; } // static evaluation function AI.prototype.eval = …

    Linux 2023年6月13日
    0116
  • Python 多线程

    import threading import time def userTest(aa,bb): print(aa) time.sleep(3) print(bb) if __n…

    Linux 2023年6月6日
    092
  • Linux命令

    Linux命令是对Linux系统进行管理的命令,对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核…

    Linux 2023年5月27日
    0100
  • win的系统自动启动任务计划!!!

    posted @2022-04-19 16:56 钟小川 阅读(18 ) 评论() 编辑 Original: https://www.cnblogs.com/zhongxiaoch…

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