当前位置: 首页 > news >正文

区块链-C++挖矿软件XMRIG源码分析

在这里插入图片描述

C++挖矿软件源码分析

  • 3rdparty
  • backend
  • grgon2
  • Obfusheader.h
  • main 程序 xmrig.cpp
  • xmrig命名空间
  • process类
  • Entry::Id
  • App类
  • Core
    • Controller
  • base
    • tool
    • kernel
      • interfaces
  • DonateStrategy.cpp
  • donate.h
  • /2/dmi
  • Cmake 跨平台的自动化构建系统
    • CMakeLists.txt
  • .cmake 13个引入
  • 算力
    • 哈希率 Hashrate
      • EH/s(ExaHashes per Second)
      • PH/s(PetaHashes per Second)
      • TH/s(TeraHashes per Second) 太哈希每秒
      • GH/s(GigaHashes per Second) 十亿哈希每秒
      • MH/S 百万哈希每秒
      • KH/s(KiloHashes per Second) 千哈希每秒
  • “挖矿”过程和行为
  • WDMS 2024(全球数字矿业峰会)
  • CPU / GPU / ASIC 矿机 / CDN
  • 哈希算法
  • RandomX
  • 交易所
  • 资源

3rdparty

“第三方”库或工具的集合

backend

挖矿算法、区块链交互、矿池通信

grgon2

密码哈希函数,也是密码哈希竞赛(PHC)的冠军,它以其高内存占用和计算密集型特性而著称,这使得它对于GPU和其他定制硬件的破解攻击具有很高的抵抗力。

作为工作量证明(Proof of Work, PoW)算法的一部分

Obfusheader.h

编译时混淆终极利器
git clone https://github.com/ac3ss0r/obfusheader.h.git


INLINE void secureFunction() {// 安全操作...
}#include "obfusheader.h"int main() {// 示例:使用RND宏生成编译时常量随机数constexpr int randomNumber = RND(0, 10);std::cout << "Random Number: " << randomNumber << std::endl;// 使用MAKEOBF创建加密字符串并解密显示const char* obfuscatedString = (char*)MAKEOBF("Hello, Secure World!");std::cout << "Decrypted String: " << obfuscatedString << std::endl;return 0;
}

main 程序 xmrig.cpp

argc代表命令行参数的数量,argv是一个指向字符串数组的指针,这些字符串包含了传递给程序的命令行参数

xmrig命名空间

在这个作用域内,你可以直接使用xmrig命名空间中的所有成员(类、函数等),而不需要在它

相关文章:

区块链-C++挖矿软件XMRIG源码分析

C++挖矿软件源码分析 3rdpartybackendgrgon2Obfusheader.hmain 程序 xmrig.cppxmrig命名空间process类Entry::IdApp类CoreControllerbasetoolkernelinterfacesDonateStrategy.cppdonate.h/2/dmiCmake 跨平台的自动化构建系统CMakeLists.txt.cmake 13个引入算力哈希率 HashrateE…...

C语言指针的介绍

零.导言 在日常生活中&#xff0c;我们常常在外出时居住酒店&#xff0c;细心的你一定能发现酒店不同的房间上有着不同的门牌号&#xff0c;上面写着像308&#xff0c;512之类的数字。当你定了酒店之后&#xff0c;你就会拿到一个写有门牌号的钥匙&#xff0c;凭着钥匙就能进入…...

八大排序算法——堆排序

目录 前言 一、向上调整算法建堆 二、向下调整算法建堆 三、堆排序 前言 堆排序是基于堆结构的一种排序思想&#xff0c;因此要为一个乱序的数组进行排序的前提是数组必须要是一个堆&#xff0c;所以要先对数组进行建堆操作 一、向上调整算法建堆 时间复杂度&#xff1a;O…...

U盘文件不翼而飞?这些数据恢复工具帮你找回!

U盘因其便携性是我们日常工作和生活中不可或缺的工具。不过有时候它也会出点小状况。如果你U盘里的数据突然不见了&#xff0c;不要着急&#xff0c;可以先试试这几款数据恢复工具&#xff01; 福昕数据恢复 直达链接&#xff1a;www.pdf365.cn/foxit-restore/ 操作教程&…...

在Java中 try catch 会影响性能吗?

1、在Java中&#xff0c;异常处理确实会对性能产生影响&#xff0c;但在正常执行的代码路径中&#xff0c;即没有发生异常的情况下&#xff0c;try-catch块的性能影响是微不足道的 2、但是&#xff0c;如果出现异常被抛出时&#xff0c;Java虚拟机需要执行一些额外的操作来处理…...

吞吐量最高飙升20倍!破解强化学习训练部署难题

**强化学习&#xff08;RL&#xff09;对大模型复杂推理能力提升有关键作用&#xff0c;然而&#xff0c;RL 复杂的计算流程以及现有系统局限性&#xff0c;也给训练和部署带来了挑战。近日&#xff0c;字节跳动豆包大模型团队与香港大学联合提出 HybridFlow&#xff08;开源项…...

redis的数据过期策略

Redis对数据设置了数据的有效时间,数据过期之后,就需要将数据从内存中删除掉.可以按照不同的规则进行删除,这种删除规则就被称之为数据的删除策略(数据过期策略),而这种策略有两种:惰性删除和定期删除 惰性删除:设置key过期时间后,我们不去管它,当需要该key时,我们在检查其是否…...

三周精通FastAPI:27 使用使用SQLModel操作SQL (关系型) 数据库

官网文档&#xff1a;https://fastapi.tiangolo.com/zh/tutorial/sql-databases/ SQL (关系型) 数据库 FastAPI不需要你使用SQL(关系型)数据库。 但是您可以使用任何您想要的关系型数据库。 这里我们将看到一个使用SQLModel的示例。 SQLModel是在SQLAlchemy和Pydantic的基础…...

Kubernetes金丝雀发布

华子目录 Canary金丝雀发布什么是金丝雀发布Canary发布方式基于header&#xff08;http包头&#xff09;灰度发布基于权重的金丝雀发布 Canary金丝雀发布 什么是金丝雀发布 金丝雀发布也称为灰度发布&#xff0c;是一种软件发布策略主要目的是在将新版本的软件全面推广到生产环…...

树形DP讲解

文章目录 树形DP讲解一、引言二、树形DP基础1、树的定义2、树形DP的基本思想3、代码示例&#xff1a;子树大小 三、经典例题解析1、树的平衡点1.1、代码示例 2、没有上司的舞会&#xff08;树的最大独立集&#xff09;2.1、代码示例 四、总结 树形DP讲解 一、引言 树形动态规…...

容器:如何调试容器

调试容器&#xff0c;主要是指的调试Dockerfile&#xff0c;调试Dockerfile中的各个命令的执行&#xff0c;大小等 1、docker history查看构建过程和所有的中间层 2、docker run rm -it -u root XXX sh&#xff0c;通过临时容器的方式启动&#xff0c;可以调试中间层文件 3、do…...

用图说明 CPU、MCU、MPU、SoC 的区别

CPU CPU 负责执行构成计算机程序的指令&#xff0c;执行这些指令所指定的算术、逻辑、控制和输入/输出&#xff08;I/O&#xff09;操作。 MCU (microcontroller unit) 不同的 MCU 架构如下&#xff0c;注意这里的 MPU 表示 memory protection unit MPU (microprocessor un…...

牛客周赛 Round 65

文章目录 超市思路&#xff1a;Solved&#xff1a; 雨幕思路&#xff1a;Solved&#xff1a; 闺蜜思路&#xff1a;Solved&#xff1a; 医生思路&#xff1a;Solved&#xff1a; 降温&#xff08;easy&#xff09;思路&#xff1a;Solved&#xff1a; F-降温&#xff08;hard&a…...

超级经典的79个软件测试面试题(内含答案)

1、软件的生命周期(prdctrm) 计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne) 测试用例 用例编号 测试项目 测试标题 重要级别 预置条件 输入数据 执行步骤 预期结果 2、问&#xf…...

【Mac】安装 F5-TTS

1、下载项目 项目地址&#xff1a;【GitHub】 SWivid F5-TTS 2、创建并激活 Python 虚拟环境 # 创建 Python 虚拟环境 userMac F5-TTS-main % python3 -m venv f5-tts# 激活进入 Python 虚拟环境 userMac F5-TTS-main % source f5-tts/bin/activate (f5-tts) userrMac F5-TT…...

Leaflet查询矢量瓦片偏移的问题

1、问题现象 使用Leaflet绘制工具查询出来的结果有偏移 2、问题排查 1&#xff09;Leaflet中latLngToContainerPoint和latLngToLayerPoint的区别 2&#xff09;使用Leaflet查询需要使用像素坐标 3&#xff09;经排查发现&#xff0c;container获取的坐标是地图容器坐标&…...

存储引擎技术进化

B-tree 目前支撑着数据库产业的半壁江山。 50 年来不变而且人们还没有改变它的意向 鉴定一个算法的优劣&#xff0c;有一个学派叫 IO复杂度分析 &#xff0c;简单推演真假便知。 下面就用此法分析下 B-tree(traditional b-tree) 的 IO 复杂度&#xff0c;对读、写 IO 一目了…...

CentOS 9 Stream 上安装 Maven

CentOS 9 Stream 上安装 Maven 在 CentOS 9 Stream 上安装 Maven&#xff0c;可以按照以下步骤进行&#xff1a; 更新系统软件包&#xff1a; sudo dnf update安装 Maven&#xff1a; CentOS 9 Stream 默认的包管理器中已经包含 Maven&#xff0c;你可以直接安装&#xff1a; s…...

强势改进!TCN-Transformer时间序列预测

强势改进&#xff01;TCN-Transformer时间序列预测 目录 强势改进&#xff01;TCN-Transformer时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现TCN-Transformer时间序列预测&#xff1b; 2.运行环境为Matlab2023b&#xff1b; 3.单个变量时间序…...

MyBatis的不同参数传递封装

MyBatis参数传递 传参方式 1. 使用 #{} 占位符 这是 MyBatis 中最常用的参数传递方式。它将参数直接替换到 SQL 语句中的占位符位置。 单个参数&#xff1a; <select id"selectUserById" resultType"User">SELECT * FROM users WHERE id #{id}…...

TI SAR ADC模型(Matlab) 包含各类非理想因素,时钟偏差,增益偏差

TI SAR ADC模型&#xff08;Matlab&#xff09; 包含各类非理想因素&#xff0c;时钟偏差&#xff0c;增益偏差&#xff0c;失调偏差 模型参数均可自由设置直接上干货吧&#xff0c;今天聊聊怎么用Matlab折腾带非理想特性的SAR ADC模型。玩过ADC的都知道&#xff0c;现实中的转…...

AI绘画工作流:OpenClaw调度千问3.5-35B-A3B-FP8生成SD提示词

AI绘画工作流&#xff1a;OpenClaw调度千问3.5-35B-A3B-FP8生成SD提示词 1. 为什么需要自动化提示词生成 在Stable Diffusion创作中&#xff0c;最耗时的环节往往不是渲染过程&#xff0c;而是反复调试提示词&#xff08;prompt&#xff09;。我曾在一次商业插画项目中&#…...

被头条、站长论坛力荐!爱娃子博客:五年深耕,藏着普通人最动人的生活真相

在流量至上、内容同质化严重的当下&#xff0c;想找到一个不迎合热度、不堆砌噱头&#xff0c;却能让人反复品读、获得共鸣的博客&#xff0c;早已成为很多人的奢望。而今天要给大家推荐的爱娃子博客&#xff0c;正是这样一处被各大平台力荐的“心灵栖息地”——它不仅被今日头…...

面向对象分析模型深入分析

面向对象分析模型深入分析 面向对象分析(Object-Oriented Analysis, OOA)是系统分析师在需求阶段的核心工作方法。它强调从问题域中的客观实体出发,以“对象”为基本单元建立业务模型,而不是从功能或数据流出发。下面从核心概念、三大模型、建模流程到实战案例进行全面解析…...

数据转换器(ADC/DAC)核心术语与工程实践解析

1. 数据转换器基础概念解析在电子工程领域&#xff0c;数据转换器&#xff08;ADC/DAC&#xff09;是连接模拟世界与数字系统的关键桥梁。作为一名从业十余年的硬件工程师&#xff0c;我经常遇到新手对这些专业术语感到困惑的情况。本文将系统梳理56个核心术语&#xff0c;结合…...

Flink的反压机制

目录 1. 什么是反压? 2. Flink 反压机制的演变 第一代:基于 TCP 的传播(Flink 1.5 之前) 第二代:基于信用制的反压(Flink 1.5+,当前版本) 3. 基于信用制的反压详解 核心组件 工作流程(对应上图) 优势 4. 如何识别和处理反压? 识别(通过 Flink Web UI) …...

OpenClaw社交媒体管理:Gemma-3-12b-it自动回复评论与生成周报

OpenClaw社交媒体管理&#xff1a;Gemma-3-12b-it自动回复评论与生成周报 1. 为什么选择OpenClaw管理社交媒体 去年运营个人技术账号时&#xff0c;我每天要花1小时手动回复评论和整理周报。直到发现OpenClaw这个开源自动化框架&#xff0c;配合Gemma-3-12b-it模型&#xff0…...

5分钟掌握LibreHardwareMonitor:完全免费的硬件监控终极方案

5分钟掌握LibreHardwareMonitor&#xff1a;完全免费的硬件监控终极方案 【免费下载链接】LibreHardwareMonitor Libre Hardware Monitor is free software that can monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer. 项目地…...

嵌入式调试实战:常见错误与高效排查方法

1. 程序员调试中的那些"荒唐"错误 作为一名从业多年的嵌入式工程师&#xff0c;我深知调试过程中的酸甜苦辣。那些看似简单的问题往往耗费我们最多时间&#xff0c;而最终解决方案却常常让人哭笑不得。今天就来分享几个真实的调试故事&#xff0c;希望能给同行们带来…...

Linux五种I/O模型详解与性能对比

1. Linux I/O 模型基础概念解析在深入探讨五种I/O模型之前&#xff0c;我们需要先理解几个关键的基础概念。这些概念是理解不同I/O模型差异的基石&#xff0c;也是很多开发者在实际工作中容易混淆的地方。1.1 用户态与内核态Linux系统将运行环境分为用户态(User mode)和内核态(…...