Coinbase 成熟期 · 全链
链上规则已到期,但钱包仍会把新挖出的币锁定 6,480 个区块。
区块 979,920 已经过去,临时的链上规则结束了。但随之发布的中继策略并不受那个窗口限制,仍要求 6,480 个确认才允许花费奖励。这是客户端的行为,不是本矿池的规则,上游也还没有解决。
PyBLØCK 已经做了什么。 我们的节点已经在运行 v29.4.3.knots20260508,自 2026-10-27 起。我们说过会在 RC2 升级,也确实升级了。
这对你到底意味着什么。 这已经生效,并没有等到区块 973,440:我们的节点不再转发确认数少于 6,480 的任何奖励的花费。这关乎我们的节点是否中继,而不是这笔币是不是你的:在区块 973,440 之前挖出的奖励仍按通常的 100 个确认成熟,你的余额会显示为可花费,因为它确实可以。你的币没有被冻结,也不在我们手里。它们有效,在链上已经属于你,任何其他钱包或节点照样会广播它们——网络上大多数节点还没有升级。改变的是我们的节点,不是你的所有权。
为什么在这里比别处更好过。 你的奖励直接写进区块的 coinbase,付给你的地址:在链上它已经属于你,我们这里不代管任何东西:我们无法花掉它,也不会先拿走自己的那份。托管型矿池则是把整笔 coinbase 收下,之后再从自己的余额付给你;在那笔 coinbase 被锁定期间,它得用储备金垫付每一笔支出。我们不垫付任何东西,所以这里没有什么会被耗尽。
为什么日期比 45 天更早:规则数的是区块,不是时间。按通常 10 分钟一个块算,6,480 个区块大约是 45 天,但这条链目前出块更快(按近期节奏约 45 天),所以解锁会提前。固定不变的是区块高度;这里的每个日期都只是估算,会随链一起变动。
在此之前,区块奖励在 100 个区块(约 16 小时)后就可以动用。这是 Bitcoin BLAKE2b 客户端的规则,不是本矿池的:它适用于链上每一笔 coinbase,无论是谁挖的,我们这边也无法更改。你应得的部分不变——变的只是它在能动之前要放多久。支出仍然直接写进区块本身的 coinbase,付到你的地址,我们不代管任何东西。这也意味着你的份额和我们的一样被锁住:我们不会先拿。
为什么这在区块 973,440 之前就开始了。 这个版本在钱包和中继这一侧,把长等待应用到每一笔奖励上,这是有意为之,并且独立于链上规则——提案里写得很清楚。为了确认,我们在自己的一个隔离节点上跑了这个版本:无论奖励是什么时候挖出的,分界线都正好落在 6,480 个确认,而且在激活仍在未来时就已经生效。所以这不是会在旗帜日之前被修好的事:这就是客户端的做法,而不是本矿池的规则。
同一份公告还说,不自己跑节点和 gateway 的人不算真正在挖矿,将来可能完全拿不到报酬。那是在 这项改动本身 中声明的意图——不是代码,今天也不存在任何实现它的机制。我们不会假装知道它会怎么执行。告诉你,是因为你该看到完整的情况。如果它真的变成规则,你会先在这里读到。
我们的建议,仅供参考。 既然你无论如何都要等更长的成熟期,那么现在正是自己跑一个节点和 DATUM gateway 的好时机。不是因为这样可以免除等待——并不能,谁这么告诉你谁就错了:这条规则适用于链上每一笔 coinbase,无论区块是谁打的。真正的理由是它对你更划算。你的节点自己挑选交易,所以我们永远看不到你的选择,就算想审查也做不到。而且你留下的更多,因为当 node-runner 就是你自己时,没有 node-runner 的抽成:CAROUSEL 99%,而走我们的 stratum 是 22%(CHIRP 无论哪种方式都是 100%:它已 100% 运行在 DATUM 上)。等待时间两边一样;不同的是解锁时这个区块有多少是你的,以及是谁决定了里面装什么。怎么跑起来 →
自己跑节点和 gateway 正是 WAVICLES 一直在做的事,现在 CAROUSEL 和 CHIRP 也可以了——一键安装器见 PATUM。
区块由你的节点构建。矿池只负责定分配:工作窗口内的所有人按工作量分 · 手续费:自带节点 0%,走 PyBLØCK 的 stratum 0% · 直接在 coinbase 里付款。矿池从不经手一个 sat。
| 矿工 | 算力 · 10 分钟 | 窗口占比 | 将收到 | 最后一个 share |
|---|---|---|---|---|
| 窗口内还没有工作 — 接入节点后,分配会显示在这里。 | ||||
| 区块 | 时间 | 构建者 | 付给矿工 | 矿池输出 | 获付矿工数 |
|---|---|---|---|---|---|
| WAVICLES 还没有爆块 — 第一个会显示在这里和区块页。 | |||||
自区块 977,350 起,通过 PyBLØCK 公共 SV1 端口提交的工作,其份额的 77 % 归矿池。使用你自己的 DATUM 网关(PATUM)挖矿即可避免。
| Gateway | 软件 | Share 数 | 工作量 | 已连接 | 最后一个 share |
|---|---|---|---|---|---|
| 当前没有 gateway 连接。 | |||||
CONVOYMining/datum_gateway 的 master 分支 2026-09-02 或之后的版本编译(commit b9ea7dc+)。旧版本在握手后会报 "Invalid data structure in configuration" — pull、重新编译、重新连接;配置不用改。| gateway 日志中的现象 | 原因 | 解决办法 |
|---|---|---|
Invalid data structure in configuration → Waiting on DATUM server… 0 | CONVOY 版本早于 2026-09-02 | 更新到 master(≥ b9ea7dc),重新编译,重新连接 |
decryption failed | pool_pubkey 错误或被截断 | 复制完整的 128 位十六进制密钥(点击配置块),重启 gateway |
| 握手成功但矿池这边 0 share | 矿机指向了矿池而不是你的 gateway | 矿机要连 gateway-IP:stratum端口,绝不能连 :28915 |
| 矿机在你的 gateway 上算了 30 多分钟仍然 0 share | DATUM 默认的 share 下限 vardiff_min = 16384 是 SHA-256 ASIC 的量级;BLAKE2b 的 GPU 或 CPU 永远达不到 | "stratum": {"vardiff_min": 1}(2 的幂;1 就是 PyBLØCK 自己的 GPU gateway 用的值),重启 gateway |
| 某个区块的 coinbase 是"仅矿池" | 模板没给付款输出留出空间 | 在你节点的 bitcoin.conf 里加 blockreservedweight=100000 |
| 连上后每隔几分钟掉线,每次都换一个新的 gateway 密钥 | gateway 在握手后立刻重启:它的节点没有返回 BLAKE2b 工作(RPC 配置错误、未同步,或缺少 blake2b 规则) | 看 "DATUM Pool MOTD" 之后的 gateway 日志;在节点上运行 bitcoin-cli getblocktemplate '{"rules":["segwit","blake2b"]}' |
| 你的身份有工作量但付款为 0 / "not payable" | 你 gateway 上的矿机用户名是 worker 名,不是地址 | 矿机用 Bitcoin-BLAKE2b 地址登录(bc1q… / 1…);点号后加 worker 名没问题:bc1q….rig1 |
| 一个区块里获付的身份很少 | coinbase 预算对付款列表来说太小 | 已于 2026-09-14 在矿池侧修复:现在每个 gateway 都拿到 16 KB 的等级(约 400 笔付款),原版 CONVOY 也包括。你这边无需改动。 |
blockreservedweight=100000。Knots 默认只给约 55 个 coinbase 输出留空间。你矿机的固件决定一个 coinbase 能承载多少笔付款:现代固件(Whatsminer、S21、ePIC)接受大 coinbase,能付清整个窗口;原版约 730 字节的 coinbase 只装得下约 15 笔,之后在装得下的人之间按比例分配 — 矿池从不截留。窗口大时你的 coinbase 可能承载数百个输出(每笔 bech32 付款 = 124 WU);为它预留权重,这样它永远不会挤掉交易。Bitcoin-BLAKE2b 的模板目前约 110 kWU,空间绰绰有余。mining.pool_address 里,它决定你脱离矿池挖矿时谁拿到钱,没有有效值 gateway 根本起不来。在每台矿机上作为 Stratum 用户名,它决定窗口内记给谁。两个都要填。然后看上面的 Node runner 表:share 在涨就说明成了。mining.pool_address。必填。填无效值时 gateway 会打印 Could not generate output script for pool addr 并在一秒内退出,所以只要你的 gateway 在运行,这一项就已经对了。它也是矿池不可达时你挖到的任何区块 100% 付款的地址,见下文。x。点号后加 worker 名没问题:bc1q….rig1。按我们上面发布的配置(pool_pass_full_users: true),这个用户名就是我们计酬的对象,所以你 gateway 上的每台矿机都按它登录用的地址收款。pool_pass_full_users 设为 false,你 gateway 上的所有矿机都会记到 mining.pool_address,无论矿机填什么。矿机全是你自己的就该这样设,你在帮别人托管就不该。bad-username 被拒绝,那些 share 一分钱也赚不到。所以打错一个字就是在悄悄浪费真实算力,直到你去看。改完用户名后一定要复查:你在 Node runner 表里的那一行应该 share 在涨、reject 保持不动。:28915,那是你的 gateway 和我们通信的地方,矿机绝不该连那里;或者它们是 GPU/CPU,永远达不到默认的 share 下限(那是按 SHA-256 ASIC 设计的)。最后这种情况设置 "stratum": {"vardiff_min": 1} 并重启。看你 gateway 自己的 Clients 标签页是区分第一种和其他情况最快的办法:如果是空的,问题在你 gateway 的这一侧,不在我们之间。pooled_mining_only 决定。保持我们发布的 true,你的 gateway 会断开矿机而不是无矿池挖矿。设为 false,你的节点会自己继续构建区块,挖到的任何区块 100% 付给 mining.pool_address。两种都没错。前者防止你的算力去你没选的地方;后者让它继续赚钱。这也是那个字段必须是你真正掌控的地址的第二个原因。7491a509 或更新的 commit。更早的版本会算错 BLAKE2b coinbase 的字节数并截断付款列表,用它爆块会让窗口里的大部分人拿不到钱。我们在握手阶段就拒绝这些版本并说明原因,而不是等你爆块才发现。注意,如果 master 仍带着这个 bug,单纯 git pull master 是不够的。OCEAN 系分支和 StartOS 软件包同样可用。wavicles_api.php?mode=snapshot&hash=…,区块存在后无法更改。max_payees)重算的分配 == 快照中的收款人,每个收款人都在链上获付。python3 tools/verify_wavicles_block.py --height H \ --conf bitcoin.conf --url https://b.pyblock.xyz/wavicles_api.php