XMR新算法RandomX设计原理
RandomX设计
为了最小化专用硬件的性能优势,工作证明(PoW)算法必须通过定位现有通用硬件的特定功能来实现设备绑定。这是一项复杂的任务,因为我们必须针对来自不同制造商的不同架构的大类设备。
有两种不同类型的通用处理设备:中央处理单元(CPU)和图形处理单元(GPU)。RandomX针对CPU,原因如下:
- CPU是一种不那么专业化的设备,它更普遍且可以广泛使用。CPU绑定算法更平等,允许更多参与者加入网络。这是原始CryptoNote白皮书[ 1 ] 中所述的目标之一。
- 不同CPU架构之间存在大型公共硬件指令子集。关于GPU,同样不能说。例如,NVIDIA和AMD GPU没有通用的整数乘法指令[ 2 ]。
- 所有主要的CPU指令集都有很好的文档,可以使用多个开源编译器。相比之下,GPU指令集通常是专有的,可能需要供应商特定的闭源驱动程序才能获得最佳性能。
1.设计考虑因素
CPU限制工作的最基本思想是“工作”必须是动态的。这利用了CPU接受两种输入的事实:数据(主输入)和代码(指定对数据执行的操作)。
相反,典型的加密散列函数[ 3 ]并不代表CPU的合适工作,因为它们的唯一输入是数据,而操作序列是固定的,并且可以通过专用集成电路更有效地执行。
2.虚拟机架构
本节介绍RandomX虚拟机(VM)的设计。
原文链接:https://github.com/tevador/RandomX/blob/master/doc/design.md
XMR新算法RandomX设计原理相关推荐
- 计算机操作系统的新技术新知识,计算机操作系统教程:核心与设计原理
计算机操作系统教程:核心与设计原理 语音 编辑 锁定 讨论 上传视频 <计算机操作系统教程--核心与设计原理>是2007年清华大学出版社出版的图书,作者是范策.许宪成.黄红桃. 书 ...
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
为什么80%的码农都做不了架构师?>>> kafka入门:简介.使用场景.设计原理.主要配置及集群搭建(转) 问题导读: 1.zookeeper在kafka的作用是什么? 2. ...
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建--转载
问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...
- 架构解读丨Volcano作业资源预留设计原理
摘要:本文重点讲解了基于v1.1.0的目标作业资源预留特性的设计和最佳实践.讲解过程中,全面介绍了特性设计过程中的考量因素和算法设计. 资源预留(Reservation)是批处理系统的一类常见需求,也 ...
- 分布式红锁的加锁失败的设计原理
分布式红锁的加锁失败的设计原理 1.先把3台 redis key全部清空(为了不受debug干扰,必须先删除锁) 127.0.0.1:6379> flushdb OK 都设置为30分钟超时 过期 ...
- PrivacyIN Week2 | 张宇鹏博导开讲经典零知识证明协议设计原理
前言 隐私研究院[PrivacyIN]第一期ZK训练营课程精讲内容上线,本期课堂邀请到美国德州农工大学(Texas A&M University)计算机科学与工程学院的助理教授张宇鹏,主要介绍 ...
- java虚拟机原理pdf_揭秘Java虚拟机 JVM设计原理与实现pdf
揭秘Java虚拟机 JVM设计原理与实现 内容简介 <揭秘Java虚拟机:JVM设计原理与实现>从源码角度解读HotSpot的内部实现机制,本版本主要包含三大部分--JVM数据结构设计与实 ...
- 计算机操作系统精髓与设计原理
计算机操作系统精髓与设计原理 高速缓存: 主要解决处理器和内存的速度不匹配的问题.处理器的速度一致快于存储器的访问速度,这需要在速度.价格和大小方面进行折中.高速缓存区试图使访问速度接近现有的最快的存 ...
最新文章
- 理解 Linux 的虚拟内存
- 基于 JWT + Refresh Token 的用户认证实践
- linux用户和组的管理详解
- thymeleaf 获取yml中的值_SpringBoot引入Thymeleaf
- 双系统重装windows后如何恢复ubuntu启动项
- Codeigniter 4.0-dev 版源码学习笔记之六——控制器
- SAP Commerce Cloud Spartacus UI 4.0.1 版本的安装
- 一块电路板从“出生”到“成年”
- 如何使用jstack分析线程状态
- ip变更会影响账号登陆吗_【教程】PUBG账号被盗导致封禁申诉解封教程
- 实践GoF的23种设计模式:SOLID原则(上)
- 计算机应用技术课程本科,《计算机应用技术I》课程教学大纲(共本科29级用)().doc...
- SQL Server 数据库增删改查语句
- ORACLE SQL优化大全
- 基于opencv 的OCR小票识别(1)
- 正规手游代理该怎么选?
- python的ols_看懂python3 之statsmodels包的OLS
- 三、Reminders 读写
- 计算机硬盘分区类型,常见磁盘分区格式的区别是什么?
- Session/Cookie/Token还傻傻分不清?
热门文章
- Js中访问对象的两种方法
- 精锐教育宣布暂停营业,又一教培行业巨头倒下
- NC维护云平台技术分享之 NC维护云管家通信框架
- CAS单点登录(一):启动CAS认证中心服务
- ISME:南农张瑞福组揭示芽孢杆菌通过代谢互作刺激常驻根际微生物促进植物生长!...
- 【虚幻引擎】UE4/UE5插件
- ElementUI 组件 el-autocomplete 实现文本框历史查询建议
- C语言 sscanf函数
- TXAA,MSAA,SMAA,FXAA
- 小米node2红外_感应光、感应你,小米人体传感器2体验分享