视频教程

youtube播放地址:https://youtu.be/a41DMDfJjsU

专线机场推荐(支持挖矿): https://b.m123.org
美国家宽住宅VPS推荐: https://v.m123.org
GIA高速VPS推荐: https://d.m123.org

Bitcoin Corehttps://bitcoin.org/zh_CN/download
SPV钱包客户端https://electrum.org/#download
比特币测试网区块浏览器https://mempool.space/zh/testnet4
cpuminer挖矿工具https://github.com/pooler/cpuminer/releases/tag/v2.5.1

solo独立挖矿

bitcoin.conf

testnet4=1
server=1
txindex=1

[testnet4]
rpcuser=user1
rpcpassword=pass1
rpcport=18442

挖矿指令minerd.exe -a sha256d -D -o http://127.0.0.1:18442 -u user1 -p pass1 --coinbase-addr btcaddress

RPC挖矿劫持脚本

from flask import Flask, request, jsonify
import requests
import threading
import time
import json
import logging
import hashlib
import os 
from datetime import datetime, timedelta,timezone

REAL_RPC_URL = 'http://127.0.0.1:18442'
REAL_RPC_USER = 'user1'
REAL_RPC_PASS = 'pass1'
LISTEN_PORT = 55555

latest_curtime = None
printed = False
submitted = False
delayed_blocks = []

app = Flask(__name__)
app.config['PROPAGATE_EXCEPTIONS'] = True

def real_rpc(method, params=[]):
    response = requests.post(
        REAL_RPC_URL,
        auth=(REAL_RPC_USER, REAL_RPC_PASS),
        json={"jsonrpc": "1.0", "id": "proxy", "method": method, "params": params}
    )
    response.raise_for_status()
    return response.json()['result']

@app.route('/', methods=['POST'])
def proxy_rpc():
    data = request.get_json()
    method = data.get("method")
    params = data.get("params", [])
    global latest_curtime
    global printed
    global submitted

    if method == "getblocktemplate":
        result = real_rpc("getblocktemplate", params)
        
        #如果不想打包内存池中的交易则取消下面两行注释
        #result["coinbasevalue"] = 50 * 100_000_000  # 50 BTC
        #result["transactions"] = [] 

        #设定区块时间,必须晚于上一区块20分钟,才能触发挖矿难度1
        prev_hash = result["previousblockhash"]
        prev_block = real_rpc("getblock", [prev_hash])
        prev_time = prev_block["time"]
        latest_curtime = result["curtime"] = prev_time + 1201  # 上一个区块时间 + 20 分钟 + 1秒
        
        #将挖矿难度设置为1
        result["bits"] = "1d00ffff"
        result["target"] = "00000000ffff0000000000000000000000000000000000000000000000000000"
        
        if not printed:
            print("上一区块哈希:", prev_hash)
            print("最大目标哈希:", result["target"])
            print("正在挖掘区块:", result["height"])
            printed = True

        return jsonify({
            "result": result,
            "error": None,
            "id": data.get("id")
        })

    elif method == "submitblock":
        if not submitted:
            block_hex = params[0]   
            block_bytes = bytes.fromhex(block_hex)
            block_hash = hashlib.sha256(hashlib.sha256(block_bytes[:80]).digest()).digest()[::-1].hex()
            
            nonce_bytes = block_bytes[76:80]
            nonce = (nonce_bytes[0] |
                (nonce_bytes[1] << 8) |
                (nonce_bytes[2] << 16) |
                (nonce_bytes[3] << 24))
            print(f"✅ 挖矿成功!新区块哈希: {block_hash},Nonce随机数为: {nonce}")
            

            block_time = latest_curtime
            submit_time = block_time - 7200  # 2小时后再提交

            print(f"⏰ 新区块时间戳:{datetime.utcfromtimestamp(block_time)+timedelta(hours=8)}")
            print(f"⏰ 提交区块时间:{datetime.utcfromtimestamp(submit_time)+timedelta(hours=8)}")
            delayed_blocks.append((submit_time, block_hex, data.get("id")))
            submitted = True
        
        return jsonify({
            "result": None,
            "error": None,
            "id": data.get("id")
        })

    else:
        try:
            result = real_rpc(method, params)
            return jsonify({
                "result": result,
                "error": None,
                "id": data.get("id")
            })
        except Exception as e:
            print(f"Failed to call method '{method}':", str(e))
            return jsonify({
                "result": None,
                "error": str(e),
                "id": data.get("id")
            })



def submit_worker():
    while True:
        if not delayed_blocks:
            time.sleep(1)
            continue

        delayed_blocks.sort(key=lambda x: x[0])
        now = int(time.time())
        next_entry = delayed_blocks[0]
        target_time, block_hex, rpc_id = next_entry

        if now < target_time:
            sleep_time = target_time - now
            print(f"💤 等待 {sleep_time} 秒后提交区块...")
            time.sleep(sleep_time)
            continue

        # 已达到目标时间,提交符合条件的区块
        while delayed_blocks and delayed_blocks[0][0] <= int(time.time()):
            target_time, block_hex, rpc_id = delayed_blocks.pop(0)
            now_str = datetime.now(timezone(timedelta(hours=8))).strftime("%Y-%m-%d %H:%M:%S")
            print(f"⏰ 到点提交区块: 当前时间 {now_str}")
            try:
                result = real_rpc("submitblock", [block_hex])
                print("✅ 提交结果:", result)
            except Exception as e:
                print("❌ 提交失败:", str(e))
        os._exit(0)

if __name__ == '__main__':
    threading.Thread(target=submit_worker, daemon=True).start()
    log = logging.getLogger('werkzeug')
    log.setLevel(logging.ERROR) 
    print(f"RPC劫持端口:{LISTEN_PORT}")
    app.run(host='0.0.0.0', port=LISTEN_PORT, threaded=True, use_reloader=False)

矿池挖矿

挖矿指令minerd.exe -a sha256d -D -o stratum+tcp://pool -u user.0 -p x

主要矿池:https://mempool.space/zh/mining

solo矿池挖矿/solo乐透挖矿/彩票挖矿

已挖到的区块https://mempool.space/mining/pool/solock
ckpool矿池:https://solo.ckpool.org/
public-pool矿池(难度0.1):https://web.public-pool.io/

Bitaxe项目:https://github.com/bitaxeorg/bitaxeGamma
NerdMiner项目:https://github.com/BitMaker-hub/NerdMiner_v2

Linux挖矿指令:./minerd -a sha256d -D -o stratum+tcp://pool -u user.0 -p x -t 1 -B

视频文稿(忽略)

上期我们介绍了比特币网络的运行流程以及挖矿原理,并且通过regtest本地测试网体验了比特币挖矿,感兴趣的朋友可以回看,由于篇幅原因,未能更详细的介绍比特币挖矿,所以本期就来更深入了解比特币挖矿的各种方式,同时介绍一些投入很低甚至零成本的挖矿方式,普通用户也能参与,记得看到最后

先来回顾一下上期讲的比特币挖矿流程,当我打开比特币全节点钱包软件时,软件会尝试接入比特币网络,然后从邻居中获取所有的区块信息,以及其他人的转账交易信息,并保存在自己的电脑内存池中,此时我想参与比特币挖矿,于是我打开挖矿软件,挖矿软件会连接钱包软件,并对他说,好哥们我要挖矿了,把相关数据给我,钱包软件会将上一个区块的哈希,挖矿难度、挖矿奖励、时间戳,以及内存池中的交易等信息发给挖矿软件,挖矿软件拿到数据后,将他们打包成区块头,接着计算这些交易总共包含了多少手续费,假设为1,然后创建一条给自己转51枚比特币的铸币交易,再将所有的交易计算出一个哈希值,并将计算结果插入到区块头中,然后不断修改区块头里的随机数来找到符合条件的区块哈希,假设在随机数100的时候,挖矿软件计算出的区块哈希比bits规定的值还要小,于是就算是挖矿成功了,他会把这个区块数据返回给钱包软件,钱包软件收到区块信息后,会将其广播到邻居节点,邻居节点验证区块没有问题,同样会将其广播到他的邻居节点,以此类推,所有比特币网络的节点都将收到我打包的区块,这样我的区块就算是加入到这条全网维护的区块链上了,还在计算这个区块的矿工发现已经被人捷足先登了,于是会立刻放弃当前区块的计算,转而打包下一个区块,这都是上期讲过的,更详细的解释可以回看上期视频

为了加深大家的理解,接下来就实际演示整个挖矿过程,先进入这里下载比特币核心客户端,选择适合自己操作系统的版本,下载之后一直点击下一步安装就行了,我已经安装好了,跟着视频演示找到快捷图标位置,由于主网目前有80多万个区块,同步时间比较久,这里我们用测试网做演示,鼠标右键测试网的图标,选择属性,默认使用测试网3,已经被人玩烂快要弃用了,在testnet后面加一个4,表示使用测试网4,修改之后双击运行客户端,首次运行需要下载测试网的所有区块,由于测试网4是去年才启用的,目前区块只有七万多,十分钟左右就能同步完成,让他在后台自动同步,我们先来创建一个钱包,随便给个名称,点击创建,在接收这里新建一个收款地址,这个就是我的比特币收款地址,接着等待区块同步完成,当右下角出现对勾就表示同步完成了,我们可以在窗口下的信息中查看,目前区块总数将近8万,这个就不是上期视频演示的单机版了,内存池中有别人发起的真实交易信息,数量还在不断增加,我们也可以进入这个网页,以可视化方式更直观的查看测试网4的区块信息,当前最新的区块是79619,和我们钱包软件的区块信息是同步的,接着进入这个网址下载挖矿软件,目前用普通家用电脑挖比特币已经没有多大意义了,算力太低几乎不可能挖到,现在都是用专业的ASIC矿机,不过我们主要是学习用途,所以还是使用早期的cpu挖矿软件,下载适合你系统的版本,由于挖矿软件经常被木马捆绑在一起,所以提示文件有风险,选择保留,如果你不放心的话可以在虚拟机做演示,另外挖矿软件是投毒的重灾区,不要随意去网上下载,他们可能会用同样的话术让你信任木马,打开后只有一个可执行文件,将其解压到桌面,接着我们还需要配置钱包软件,让挖矿软件能从钱包软件获取挖矿所需的数据,进入这个数据目录,在当前目录创建一个名为bitcoin.conf的配置文件,使用文本编辑器打开,这是我给大家准备的配置信息,相关资料我会放在视频下方的说明栏,这里是和钱包软件进行通信要用到的用户名密码以及端口,粘贴到配置文件中,点击保存,接着退出钱包软件重新运行,这样钱包软件就开了一个通信的接口,然后运行挖矿软件,在软件所在目录点击鼠标右键,选择在终端打开,这条就是挖矿指令,将其复制粘贴到刚开的命令行中,比特币计算区块哈希使用的算法是sha256 double,这是和钱包软件通信的RPC接口信息,这个是生成coinbase铸币交易所使用的钱包地址,也就是挖矿奖励要给谁,把它改成你的钱包地址,回车执行的一瞬间,挖矿软件会根据刚才讲的流程,从通信接口找钱包软件要相关数据构建区块,用你的钱包地址生成铸币交易奖励,然后不停修改区块头中的随机数,直到区块头的哈希小于目标值就算是挖矿成功,此时正在不断进行挖矿,我的电脑总共有20个线程,每个线程的算力大概是8 MH/s,总算力约为 160 MH/s,也就是每秒可以计算1.6亿次哈希,哈希计算十分消耗资源,我们可以在任务管理器中查看cpu的占用情况,cpu的占用率达到了100%,所有线程都在满负荷工作,耗电量也会跟着变高,所以挖矿非常费电,如果挖矿工具支持用GPU计算哈希,那么GPU也会满速跑,按ctrl+c结束挖矿任务,结束之后cpu的占用马上就降下来了,我们可以使用-t指定使用多少线程,比如设置1个,此时就只会占用一个线程进行挖矿,相应的算力和功耗也会下降很多,我们可以往上翻翻刚才的挖矿日志,这里可以看到,挖矿软件从钱包软件获取到的bits目标值是这个,也就是计算出来的哈希必须要小于这个数,前面有15个0,而我们刚才挖到的是这个数,前面只有8个0,很明显要比下面的目标值大,所以会一直持续计算,直到小于目标值,但显然这个难度太高,以我这个算力可能一辈子都挖不到,大家可能从肉眼看觉得并不难,现在都已经计算出8个0了,再多算出7个0就行了,这样想的朋友就太too young了,这个难度是指数级增加的,如果我们以计算8个0做为难度基准,那多算7个0的难度增加了8亿多倍,而这还只是测试网的难度,主网的话目前多了11个0,难度更是增加了万亿倍以上,完全就是疯了,所以说现在个人几乎不可能单独挖到区块,一般都是加入矿池,这个等会再细讲

如果说测试网的难度高到普通用户都无法挖的话,那他就失去了测试网的意义了,所以测试网有条规则是如果20分钟后还没有人挖到区块,就将挖矿难度重置为1倍,也就是挖到8个0就算成功了,但是这个机会转瞬即逝,因为很多人都在盯着这个时间点提交区块,所以我写了一个python脚本来劫持挖矿软件从钱包软件获取的挖矿难度,并且在规定的20分钟之后再提交区块,这一步有难度的话可以不用跟着操作,看我的演示效果即可,将其全选复制,在桌面创建一个python文件,将内容粘贴进去,点击保存,再开一个终端,使用python运行脚本,记住劫持端口是55555,接着重新运行挖矿软件,给10个线程做演示,另外要把通信端口改成劫持端口55555,回车执行,此时就相当于挖矿软件找劫持脚本获取数据,劫持脚本又找钱包软件获取数据,并且将获取到的挖矿难度修改为8个0返回给挖矿软件,现在挖矿软件正在不停修改随机数来挖第79525区块,可以看到不到一会就挖到了,挖出来的区块哈希必须小于这个目标值,可以看到确实符合要求,随机数是这个,相当于计算了3亿多次就找到了符合难度的哈希值,我们也可以在钱包软件里使用这条指令查看真实的挖矿难度,这个target就是目标值,前面有15个0,但挖矿软件收到的目标值是python脚本改成的8个0,还有上期讲过的bits就是对应展开后的target,正如之前讲的, 我们必须在上一个区块被挖出的20分钟之后再提交,测试网才会接受难度为1,也就是8个0的区块,脚本已经自动计算好了,等到2点5分42秒的时候会自动提交到网络中,至于这个时间的话是区块里的实际时间戳,比特币网络规定时间戳可以设置为当前时间的未来2小时,这不重要知道就行了,时间到了之后脚本就会将区块提交给钱包软件,钱包软件再广播到测试网中,于是我就有50枚比特币入帐了,按10万美元一枚算的话我现在已经是千万富翁了,还费劲剪什么视频,不剪了草,ok以上就是本期,什么?测试网的比特币没有价值?不好意思刚才说话声音有点大,欢迎回到视频

打开钱包软件,可以看到我这里已经有100枚比特币了,因为刚才我测试的时候已经挖过了,可以鼠标双击查看刚才的挖矿收入,总共是50多一点,多出来的那点就是别人转账时设置的手续费,来到窗口下的控制台,输入这条指令获取最新区块的哈希值,和我们刚才挖出来的对应上了,再通过getblock指令查看该区块的详细信息,这些就是打包在该区块的交易,这个bits就是目标难度为1的8个0,nonce就是挖矿软件计算出来的随机数,和这里对应上了,这里的第一笔交易就是挖矿软件插入的coinbase铸币交易,使用这条指令查看交易详情,总共50多枚比特币发送到了这个尾数为qvm的钱包地址,也就是我的钱包地址,这就是实际的比特币挖矿原理,早期挖矿难度比较低,大家都是通过家里的电脑进行挖矿,那时候比特币并不值钱,很多人挖到了但没有好好保存,痛失逆天改命的机会

接下来再给大家拓展一下主网很少见,但测试网却时时刻刻都在上演的区块链分叉问题,大家可以看到我这里总共挖到了4个区块,按理来说我应该有200枚比特币了,但我的钱包却只有100枚比特币,可以看到这个交易被丢弃了,我们挖的区块并没有成功加入区块链,而且别看我现在已经挖到了100枚比特币,只要我不继续挖这100枚也会消失,当前的区块高度是79525,这个是我挖出来的区块,接着我们在网页版看看79525这个区块,你会发现这个结尾是5199的哈希值并不是我刚才挖出的,我的是ddc5,这种情况说明区块链产生了分叉

上期我们讲过比特币网络中只会维护一条最长的区块链,由于这是测试网,20分钟还没人挖出区块的话就会接受挖矿难度为1的区块,假设你我他都在挖同一个区块,也都鸡贼的使用脚本控制在20分钟之后提交区块,那么等时间一到,我们会同一时间向网络中广播自己挖到的区块,区块在网络传播需要时间,最近的邻居节点会优先收到我们各自的区块,由于链条长度一样,谁也不能说他的就是主链,等下一个区块再作决定,下一个区块我们又都在20分钟之后同时提交了区块,还是一样长,再下一个区块他不挖了,而我和你又同时挖出了区块,为了遵循最长链原则,使用他区块链的邻居节点会转而使用我们其中的一条链,他这条短的区块链就作废了,之前两个区块的挖矿奖励也就没有了,这种分叉的情况会一直持续下去,直到我或者你退出竞争,或者有人通过算力锁定之前的区块链,我们刚才讲了20分钟没有挖到到区块的话就会将难度调整为1,这时我的邻居出现了一个算力很高的人,高到可以按正常难度挖出区块,所以他不需要等20分钟,在第10分钟的时候就在我的区块链上以正常难度挖出了下一个区块,这时我的区块链将是最长的,比特币网络将会接受这条最长链为主链,而你从分叉开始挖出来的所有区块全都作废了,挖矿奖励也全都作废了,接着又开始从这条最长的链开始分叉了,这个分叉过程在测试网中一直不断上演,所以别看现在79525的区块哈希是5199,当你看到这个视频的时候可能已经变了(确实变了),由于主网并没有定时降低挖矿难度的机制,所以这种区块分叉的情况在主网上很少出现,大家了解即可

可以在明细中看到他也是通过难度1的8个0挖到的区块,并且区块时间戳和我的一样,大家都卡在同一个时间提交,再上一个也是卡着20分钟使用难度1提交的区块,这个带标签的一般是算力比较高的矿工,可以看到他是以上亿倍难度提交的区块,所以没有20分钟的限制,只要挖到了就能直接提交区块,当他在哪条链上挖到之后,就相当于锁定了之前的所有区块了

接着我们重新运行脚本和挖矿软件再演示一下,非常简单又挖到了一个区块,同样必须等到20分钟之后才能使用难度1提交区块,当我提交之后,又获取到了50枚比特币,网站也更新了一个区块,哈希尾数为3c1e,而我挖出来的是a93d,显然不是我的区块,但不妨碍我现在有150枚比特币了,现在就差一个高算力的邻居来帮我锁定之前的区块,如果你要挖测试网的话建议主动连接一些扩散速度比较快的节点,这里就不展开讲了

以上就是通过测试网给大家演示solo独立挖矿的流程,也就是你一个人挖,挖到的所有奖励都是你一个人的,早期比特币就是这么挖的,但由于全网的算力增长过于变态,现在solo挖矿难度太大了,目前的主流挖矿方式是接入矿池,假设我开了个矿池,你们使用挖矿软件接入了我的矿池,首先还是一样矿池先找钱包软件获取挖矿数据,然后创建一条给自己51枚比特币的铸币交易,注意铸币交易中接收挖矿奖励的钱包地址是我的,接着将这些信息分别发送给你们,并且给你们设置一个挖矿难度,假设实际挖矿难度是15个0,也就是哈希值开头最少有15个0,但我告诉你们只要挖到8个或者8个以上的0就将区块发给我,由于8个0的挖矿难度很低,你们会不断挖到符合条件的区块哈希,偶尔可能会挖到9个0或者10个0,每次挖到符合条件的区块信息都会提交给我,由于真实的挖矿难度是15个0,所以我并不能将这些区块提交到比特币网络中,但是我会记录你们每个人提交了多少share份额给我,也就是说你们挖到的区块本身并没有什么作用,只是为了让我知道你们确实在为我工作,并且根据你们提交份额的频率来统计你的算力是多少,就这样一直不停的挖,直到其中某个人幸运的挖到了哈希值开头有15个0的区块,当他把这个区块提交给我之后,我会立刻将其广播到比特币网络中,于是就成功挖到了一个区块,由于铸币交易中使用的是我的钱包地址,所以挖矿奖励的51枚比特币会发给我,我再根据大家的算力来分配挖矿奖励,当然我得抽点手续费,接着给你们发送下一个区块的挖矿信息,以此类推,这就是矿池的工作原理

进入这里可以看到目前主要的矿池,这两个矿池的算力最大,一半多的区块都被他们挖出来了,随便点击某个矿池查看详细信息,比如他挖到了哪些区块,矿池会在coinbase铸币交易中插入对应的标签,就以这个鱼池为例,要接入这个矿池的话先注册一个账号,注意这里不是广告,我只是给大家演示矿池的工作原理,我不建议个人参与矿池挖比特币,没有一定规模可能电费都赚不回来,有规模又得承担比较大的风险,而且中国大陆地区明令禁止挖矿,我已经注册过了就直接登陆,登陆之后可以在这里看到你的算力以及收益情况,由于我并没有参与挖矿所以没有任何数据,可以在账户设置中添加比特币的钱包地址用于接收挖矿奖励,还可以设置结算模式,一般分为两种,一种是即使矿池没有挖到区块,也会根据算力分配奖励,适合追求稳定收益,另一种是必须成功挖到了区块才会根据算力分配奖励,适合幸运值比较高的矿池,可以点击这里查看详细介绍,接着就可以来到矿工管理添加矿机了,所谓的添加矿机就是把之前独立挖矿的通信地址改成矿池的通信地址,使用的通信协议是stratum,把这里替换成矿池地址,用户名替换成这个,如果你有多台矿机的话,点后面可以随便进行编号,这里有说明,至于密码的话可以随便填无关紧要,毕竟没人会填你的账号替你挖矿,将修改好的挖矿指令复制到命令行中执行,从日志中我们可以看到链接了这个矿池,并且给我们分配的挖矿难度是65536倍,也就是12个0,对于主网万亿倍难度的来讲这个算是很低了,但对于我这cpu来讲难度还是太高了,基本无法给矿池提交份额,没有提交份额的话矿池也统计不了你的算力,这里不会有任何显示,也不会有任何收益,另外即使你购买专业矿机挖矿也很难回本,可以看到目前1t的算力收益才0.05刀,500T算力的矿机回本周期达到了500多天,建议找个班上,这就是矿池的使用方式

solo独立挖矿的优点是只要挖到了,那么该区块的所有奖励都是你一个人的,缺点是需要运行全节点钱包软件,也就是要下载600G的区块并且维护比特币网络,而且只有挖到了区块才有收益,没有挖到就是0收益,矿池挖矿的优点是不需要下载600G区块,只要连上矿池就行了,并且只要提供算力就有收益,缺点是收益得按算力分配,现在收益太低了可能都无法回本

有些朋友想独立挖矿获取区块所有奖励,又不想运行全节点下载600G区块,就可以试试solo和矿池结合的模式,也叫solo矿池,你不需要运行钱包软件,直接连接矿池挖矿即可,如果挖到了区块,那么该区块的所有奖励都是你的,不需要和矿池中其他人分享收益

以这个开源的ck矿池为例,他用的就是这种模式,但如果你独立挖到了区块就会收取2%的手续费以维持矿池的运行,假设我要进行solo挖矿,又懒得运行钱包软件下载所有区块,于是就接入这个矿池,我会把我的钱包地址发给他,然后矿池会创建铸币交易,其中98%的挖矿奖励发给我的钱包地址,2%的奖励发给矿池设置的钱包地址当作手续费,接下来的步骤就和刚才讲的矿池工作流程一样了,如果我挖到了就将获得区块的98%的收益,没有挖到的话就是0收益,这可不像是普通矿池就算没挖到也会按算力给你分配奖励,因为每个人都在给自己的钱包挖矿,并不是给矿池挖矿,说白了就是在算力有限的情况下搏一把大的,要么下海干活,要么会所嫩模

将网页翻译成中文,可以看到矿池的主要用途,访问这里可以看到当前矿池的运行状态,点击这里查看该矿池挖到的区块,平均每个月都有人独立找到区块,点击查看相关区块,这些区块都是ck池挖出来的,最新的区块是2周前挖出的,你要是能挖出的话这26万美元,200万人民币就都是你的了,刚才说过这个矿池是要收手续费的,可以看到铸币交易有两个接收地址,第二个就是2%的手续费

接着我们同样来演示一下solo矿池的挖矿流程,刚才也说过我们不需要使用全节点的钱包客户端,可以使用这个开源的spv客户端,不用下载之前的600G区块,选择适合的版本安装即可,操作简单我就快进了,安装之后打开软件,先创建一个标准钱包,这个密语种子要记下来,不能暴露给别人,我这里视频演示就无所谓了,关于这是啥之后讲钱包再细说,点击下一步之后需要手动重新输入一次刚才的种子,最后点击完成,在视图下启用地址标签,这些都是我的比特币钱包地址,随便选一个,复制下来,之前矿池的指令这里填的是用户名,而cksolo池不需要注册,直接把你的比特币地址填进去就行了,后面的001不用管,矿池也要替换成ck的地址,使用这个即可,将原来的鱼池替换掉,复制这条指令,到命令行执行,可以看到这个矿池设置的难度是10000,对于我这cpu算力来讲还是比较困难,但这是solo池,我们可以不用给他提交份额,反正他也不会按算力给我们奖励,他将难度设置为10000的目的只是为了做数据统计,实际上我们都在奔着比特币网络真实的难度在挖矿,挖到了就都是你的,没挖到就什么都没有,这就是solo矿池的使用方式

如果你想在网页上看到自己的算力来确定挖矿工作是否正常,建议大家使用难度设定比较低的solo矿池,比如这个public-pool,同样也是开源的,难度设定只有0.1,对小算力设备友好,而且还不需要手续费,配置方式和ck池一样,只要把矿池地址改成这个就行了,其他保持不变,执行这条指令,可以看到这个矿池的难度设置为0.1,很快就能找到符合这个难度的区块哈希,于是会将份额提交给矿池,矿池根据收到份额的频率来计算出我的算力水平,复制你的比特币钱包地址,填入这里,点击查看,就能看到在线的矿机数量以及算力信息了,由于挖的时间比较短,算力的统计结果会有一些偏差,通过在这种对小算力比较友好的矿池挖矿,就可以在网页上看到我们的挖矿是否在正常工作了

你如果想参与solo矿池挖矿的话,可以使用硬件设计和固件都开源的Bitaxe项目,用的是矿机专用的ASIC芯片,有多个不同的型号,比如这个bitaxeGamma,20w的功耗有1t的算力,有硬件知识的朋友可以自己定制pcb板、焊接元器件、烧录固件做一个出来,也可以直接网上买别人做好的,价格在1千左右,不过需要提醒你的是这钱大概率会打水飘,可能一辈子也挖不到区块,如果你相信自己能中彩票就可以尝试,毕竟真的有人中过,而且我觉得比彩票靠谱,至少是透明的没有黑幕

还有一个叫做nerdminer的开源项目,主要是针对esp32开发板的挖矿系统,你家的智能音箱、智能灯泡等物联网设备可能就用了esp32板子,你可以去买这些板子,然后将nerdminer系统刷入板子即可,类似我们给路由器刷入openwrt系统,不过这种板子的算力很低,只有几十k,网上也有人卖刷好了的板子,价格一百左右

如果你不想花钱的话,可以借助家里的一些闲置设备,比如我的电脑24小时不关机,就可以用cpuminer开一个线程在后台运行,或者有闲置的手机也可以运行挖矿程序,不过运行在家里的话得解决网络问题,有些机场屏蔽了挖矿流量,推荐使用本频道推荐的机场,没有屏蔽挖矿流量可以正常连接

有些朋友使用vps自己搭建节点,可以将挖矿程序运行在vps上,不影响节点正常使用,还能时时刻刻彩票开奖岂不美哉,反正也不需要额外投入什么,而且不管是网络还是供电都要比直接运行在家里稳定的多,由于网络问题导致挖到的区块没有提交成功那就亏大了,我就以这台美国住宅ip的vps为例,使用lscpu指令可以查看核心数和线程数,这台是2核4g的入门款vps,这个配置就算是机房ip的vps也得20刀了,如果你需要干净的住宅ip可以回看这期视频介绍,使用我的链接注册还有5%的优惠,我可以用它开一个线程进行挖矿,不会将cpu资源占满,注意有些商家禁止使用vps挖矿,cpu长期占满的话会导致vps被封,大部份vps都是x86_64的架构,选择对应的挖矿软件,右键复制链接地址,在vps上使用wget指令下载软件,接着使用tar指令将软件解压出来,得到minerd挖矿主程序,接着就可以使用这条指令运行挖矿程序了,加上-t 1设置一个线程防止cpu占满,再加上-B将其放在后台运行,回车执行,此时这台vps就开始24小时不间断挖矿了,单个线程的算力大概9mh/s,使用htop指令查看后台进程,可以看到只会占用一半的cpu,另外如果你使用的vps只有一个核心,或者你想进行更精准的控制,防止影响其他进程,比如只占用cpu的10%,可以使用cpulimit工具,使用apt install cpulimit命令安装,安装之后使用这条指令查看挖矿程序的进程id,然后使用这条指令限制挖矿程序的cpu占用率为10%,回车执行,接着重新使用htop查看占用率,就能看到是10%左右,相应的算力也下降到了10%,只要你的vps不关机,他就时时刻刻的在帮你挖矿,8m算力和8k算力从挖到的概率来讲没啥区别,都是无限趋近于零,能不能中主要是看你命里有没有。

最后修改:2025 年 05 月 09 日 12 : 21 PM