方舟 0 号 · 网页钱包
网页钱包使用指引
从打开钱包到转出一笔交易,一步一步来。方舟 0 号是测试网,仅供测试体验,随时可能重置。
用什么打开
钱包是一个网页,不用安装任何东西。电脑和手机上的浏览器,以及钱包 App 里的内置浏览器,都能打开它:
- 电脑:用 Chrome、Edge、Firefox 或 Safari 打开 wallet.ark0.si。
- 手机:用手机自带的浏览器、Chrome 或 Safari 打开同一个网址。
- 钱包 App:MetaMask、TokenPocket、imToken、OKX、Bitget 等 App 都带有内置浏览器,一般在「浏览器」「发现」或「DApp」页。在它的地址栏里输入 wallet.ark0.si 就能打开。
方舟 0 号钱包不会向钱包 App 请求连接、签名或授权。用钱包登录 已于 2026-10-14 停用(见下文):要你在钱包 App 里签一段文字才能打开方舟钱包的页面,都不是我们的,不要签;以前用钱包登录打开的钱包,谁拿到这个签名,谁就能花掉里面的币。水龙头从不要求签名、授权或付款:要你先做这些才发方舟 0 号币的页面,也不是我们的。打开后看一眼地址栏:应该是 wallet.ark0.si。
新建钱包的密钥在这个浏览器里随机生成,和钱包 App 完全无关。
浏览器太旧怎么办
钱包需要:Safari 15.4 及以上(iPhone、iPad 上即 iOS 或 iPadOS 15.4 及以上),Chrome 或 Edge 83 及以上,Firefox 96 及以上。安卓手机上,钱包 App 的内置浏览器一般用的是系统的 WebView。如果页面十几秒后还停在 正在确认网络……,或者提示浏览器太旧,请更新手机系统和浏览器,或者换一个浏览器打开;安卓手机还可以在应用商店里更新「Android System WebView」。
另外两点
- 不要在无痕模式或隐私模式里用:关掉以后,浏览器会删掉钱包。
- 在聊天 App 里点开链接时,如果打不开或被拦截,点右上角的菜单,选择在浏览器中打开。
第一步:打开你的钱包
打开钱包。页面顶上显示方舟 0 号测试网和当前的链尖高度,说明已经连上网络。第一次用,点 新建钱包:密钥在这个浏览器里随机生成,要靠备份码才能在别处打开。
钱包会生成以 tb1z 开头的地址:
- Schnorr 地址:用 Schnorr 签名花费。
- ML-DSA-44 地址:用 ML-DSA-44 签名花费,由这条测试网上的实验操作码 OP_CHECKMLDSA44 检查。它不属于 BIP-360;区块由经典签名授权,自高度 20000 起还须带 M2 的 ML-DSA-44 出块签名。链尖超过 M1 生效高度 6 个区块后,页面才显示这个地址。
- 混合地址:一个输出里有两片叶,叶版本都是 0xe0(绊线约束叶,这条测试网上的实验叶版本,不属于 BIP-360),一片用 Schnorr 签名花费,一片用 ML-DSA-44 签名花费。演练绊线由运营方在公告的时间触发:触发前花费走 Schnorr 叶;触发后钱包自动改走 ML-DSA-44 叶,币照样能花,只是手续费高得多。链尖超过 M3 生效高度 6 个区块后,页面才显示这个地址。
- SLH1 地址:一个输出里有两片叶,都在深度一、叶版本都是 0xc0。一片用 SLH-DSA-SHA2-128s 签名花费,由这条测试网上的实验操作码 OP_CHECKSLHDSA128S 检查,它不属于 BIP-360;另一片是 OP_RETURN,永远花不掉。链尖超过 M4-S 生效高度 6 个区块后,页面才显示这个地址;链尖退到这之前(比如发生了重组),或者读不到 M4-S 的状态时,页面收起这个地址,它的币标为 暂停使用:照常计入余额,但不花。从它转出时,每个币带一个 SLH-DSA-SHA2-128s 签名(7,856 字节),在后台签,每个要几秒,旧手机上更久,页面会显示进度。每个钱包只有一个 SLH1 地址:付给它的款在链上可以关联起来,转出时可能把其中几个币放进同一笔交易。用钱包登录打开的钱包,这个地址和 ML-DSA-44 地址、混合地址一样没有后量子保护(见下文)。方舟 0 号是测试网,仅供测试体验,随时可能重置。这个地址只放打算用来体验 M4-S 的币。
页面用 经典签名、后量子签名 · M1、经典 + 后量子签名 · M3 和 后量子签名 · M4-S 四种标记区分它们;地址上方的 为什么有多个地址? 讲了它们的区别。
这些地址都属于这个钱包,用同一个备份码恢复。已经有备份码,就不用新建,见换设备、换浏览器。
用钱包登录打开的钱包没有后量子保护
用钱包登录 已于 2026-10-14 停用。之前用它打开的钱包,种子来自你账户对一段固定文字的签名。账户在任何链上发过交易,公钥就已公开;谁能从公钥算出私钥,谁就能重新签出同样的签名,拿到这个钱包的全部密钥,ML-DSA-44 与 SLH-DSA 密钥也在内。所以这类钱包一律按没有后量子保护对待。还存在浏览器里的照常能打开,钱包页面上会注明。不要再在任何网站上签那段文字:谁拿到这个签名,谁就能花掉这个钱包里的币。
换成自带随机种子的钱包:
- 抄下这个钱包的备份码:登录已停用,以后只能用备份码打开它。用这个钱包签过迁移准备声明的,先撤回:在签署页点 撤回签名,换了新钱包再签。
- 点 忘掉这个钱包,再点 删除密钥,然后点 新建钱包,抄下新钱包的备份码。
- 在新钱包的任一地址下点 领测试币。
- 想把旧钱包的币也转过来:复制新钱包的 ML-DSA-44 地址或混合地址,忘掉新钱包;再用备份码恢复旧钱包,把每个地址上的币分别转到刚才复制的地址(勾选 全部转出);等这几笔都确认、余额显示为零,再忘掉旧钱包,用备份码恢复新钱包。
第二步:抄下备份码
不管是新建的,还是用钱包登录打开的,都要抄下备份码。钱包打开后,页面顶上会提醒你备份。在页面下方的 备份 里点 显示备份码,备份码以 ark0w1- 开头。把它抄在纸上,或者点 复制,存进密码管理器、备忘录这类你信得过的地方。
密钥只保存在这个浏览器里,我们的服务器没有副本,也帮不了你找回。清除浏览器的网站数据、清理钱包 App 的缓存、卸载浏览器或 App、换手机,都可能让钱包消失;iPhone 上的浏览器还可能自动清掉一段时间没打开的网站的数据。钱包没了,只能用备份码恢复。
备份码就是钱包本身:拿到它的人都能花掉这些币。不要把它发给任何人,包括自称客服或管理员的人。
第三步:领测试币
在任一地址下点 领测试币。水龙头会带着这个地址打开:通过人机验证后,点 领取。同一个地址 24 小时内只能领一次。领完后,点成功页上的 回到钱包 回到钱包。
想体验 M1,就领到 ML-DSA-44 地址,再在第五步从它转出:这一笔的签名由 OP_CHECKMLDSA44 检查。
如果人机验证一直加载不出来,先在钱包里点地址旁的 复制,再用另一个浏览器(比如手机自带的浏览器)打开水龙头,把地址粘贴进去领取;币照样领到这个地址。
第四步:查看到账
水龙头发出后几秒内,钱包就在 交易动态 里把这笔交易显示为「待确认」,余额处也显示待确认的金额:交易已进入内存池,还没被区块打包。下一个区块确认它,通常在两分钟之内,之后它计入那个地址的 已确认余额。钱包每 30 秒刷新一次,有交易在等待时每 10 秒一次,也可以点 刷新。
点 在区块浏览器里查看,能在区块浏览器里看到这个地址上还没花掉的币。区块浏览器不列历史交易;要看某一笔,用它的交易 ID 查。
第五步:转出
- 在 转出 里选择从哪个地址转出。
- 填收款地址。第一次试,可以点 我的另一个地址,转给自己的另一个地址。
- 填金额,或者勾选 全部转出。
- 点 检查,核对网络、收款地址、金额和手续费。
- 点 确认转出。页面依次显示核对、签名和广播;看到 已发出 就是发出去了,这笔交易随即以「待确认」出现在 交易动态 里,下一个区块确认后余额随之更新。点 查看这笔交易 能在区块浏览器里看到它。
手续费按每虚拟字节 2 聪(2 sat/vB)计;找零太少、不值得单独退回时,会一并算进手续费。ML-DSA-44 签名比 Schnorr 签名大得多,所以从 ML-DSA-44 地址转出的手续费也高得多。点 检查 后会显示实际的手续费和费率。
收款地址要是方舟 0 号上以 tb1q、tb1p 或 tb1z 开头的地址。其他测试网也用 tb1 开头的地址,钱包分辨不出对方在不在方舟 0 号上,转出前请确认。MetaMask 等 App 里 0x 开头的地址、比特币主网的地址,都收不到方舟 0 号的币。
换设备、换浏览器
在新的浏览器或设备上打开钱包,把备份码粘贴到 恢复 里,点 恢复钱包。这些地址和上面的币都会回来。用钱包登录打开的钱包,现在也只能这样恢复。如果那个浏览器里已经有一个钱包,页面不会显示 恢复:先确认那个钱包已经备份,或者币已经转走,点 忘掉这个钱包,再恢复。
同一个钱包可以在几个浏览器里恢复,但请只在一处转出:两处花同一笔币,最后只有一笔能确认。
不再在这台设备上用这个钱包,就点 忘掉这个钱包,再点 删除密钥。删除之前,请确认备份码已经抄好,或者币已经转走。
桌面与 Android 钱包
方舟 0 号钱包(Ark-0 Wallet)是装在设备上的钱包,有 Windows、macOS、Linux 和 Android 版,和这个网页钱包一样用在方舟 0 号测试网上。它的密钥由 24 个助记词生成,用你设的密码加密保存在本机,签名也在本机完成;每笔转账都要先在钱包里核对,再在操作系统弹出的对话框里确认。它同时向 wallet.ark0.si 和 wallet2.ark0.si 查询余额和交易状态,把两边的回答互相对照;一笔转账要过 6 个区块,并由钱包自己核对过这些区块的签名,才算最终确认。
- 打开下载页,下载适合你系统的文件。下载页列出了每个文件的大小、SHA-256 和安装方法;同样的文件也可以在 GitHub 的发布页上下载。
- 安装之前先核对,方法见下载页:
SHA256SUMS由方舟的发布密钥签名,和节点的发布是同一把密钥。 - 安装好后打开钱包:新建一个钱包并抄下 24 个助记词;或者选「恢复钱包」,输入助记词,也可以粘贴这个网页钱包的备份码,恢复出来的就是网页钱包里原来的那几个地址。
助记词和备份码一样:谁拿到它们,谁就能动用钱包里的币,我们也不会向你要。这 24 个词只能用在方舟 0 号钱包里,别的钱包用它们算不出同样的密钥。方舟 0 号钱包是实验性的软件,没有经过第三方审计。
签迁移准备声明
迁移准备声明只有一句话:
我支持现在就为比特币的后量子迁移做准备:在可验证的量子进展出现之前,把迁移路径、工具和演练做好,并公开每一步的证据。
认同的话,可以用你的方舟钱包签一下。签名全部公开;只要留着这个钱包或它的备份码,随时可以撤回。签不签都不影响任何权益。
- 打开签署页。它在标准版钱包的网站上,Lattice 版的网站上签不了。这个浏览器里还没有方舟钱包的话:已经有方舟钱包的(包括存在旧网址上的),先到钱包页用备份码 恢复钱包;没有的,再点 新建钱包。然后回到签署页。
- 看完 签名前请读 下面那几条,再点 核对公开记录。页面会下载完整的公开记录,在你的浏览器里对照,不会向服务器逐把查询你的声明公钥。
- 点 签署声明。页面会依次向服务器取一个挑战、算一小段工作量、用声明密钥签名、提交。算工作量一般要几秒钟,请让页面留在前台;这一步是为了让批量签名的成本变高。看到「已签署」和服务器收到的时间,就签好了。
- 想撤回,回到签署页点 撤回签名。
签之前,你可能想知道
- 不碰你的钱包 App,也不花任何币。签声明用的是方舟钱包在你浏览器里算出的一把专用密钥(声明密钥,ML-DSA-44)。签署和撤回都不会让 MetaMask、TokenPocket 等钱包 App 弹出签名或授权请求,不连接钱包 App,不授权任何合约,也不收手续费。在签署页上要是有钱包 App 弹窗让你签名或授权,那不是我们发起的,请直接拒绝。
- 这个签名只对这句话有效。签的是这句话的中英两版,签署页上有两版全文和它们的哈希可以核对;改动任何一个字,签名就无法通过验证。它不是交易,不上链,不能用来转走任何东西,也不能当成对别的事情的授权。
- 私钥不离开你的浏览器。服务器收到的是公钥、签名、动作和工作量(和访问任何网站一样,它也能看到你的 IP),拿不到你的钱包种子、备份码或私钥。声明密钥和收币用的密钥是分开推算的,单看公开记录,看不出一把声明公钥属于哪个钱包地址。
- 公开的是什么。公钥、签名、动作(签署或撤回)、服务器收到的时间(精确到小时),以及核对工作量用的挑战和 nonce,都写进公开记录 declaration.json,任何人都能下载、离线核对。我们不公开你的 IP,也不公开你的钱包地址。
- 不保证匿名。运营方和网络中转服务有可能把签名请求和同一个浏览器里的钱包活动对上。
- 风险和打开钱包页一样。签署页和钱包在同一个网站上,本站的脚本能接触到钱包种子。本站只加载自己的脚本,不加载任何第三方脚本或统计代码。
- 可以撤回。撤回要用签名时的那个方舟钱包,或者它的备份码。撤回后这把密钥不再计数,但历史记录不删。以后想再签,钱包会换一把新的声明密钥。
- 数字不代表人数。签署页显示的是带有效签名的公钥数。一个人可以生成多把密钥,运营方也能用自己的密钥签。请每人只签一次。
只在 wallet.ark0.si 上签。我们不会私信请你签任何东西,也不会向你要备份码:谁拿到了备份码,谁就能动用你这个方舟钱包里的币。
自己运行节点,见证演练
节点是运行方舟 0 号软件、自己核对每一个区块的程序。10 月 30 日拉演练绊线时,你的节点会按公开的规则自己判断,用不着相信我们的网站。见证的人越多,演练的记录越可信。
要准备的:一台能上网的 Windows、Mac 或 Linux 电脑。节点很小:程序加上链的数据不到 200 MB,占用内存不到 100 MB,第一次同步一般几分钟。最省事的是见证器:一个小工具,带着你这个系统用的方舟节点,解压出来就能跑,不用安装任何东西,还会在浏览器里显示你的节点看到了什么。想自己运行节点,所有命令都在英文的 JOIN.md 里,从源码编译也在内;下面按系统说明怎么做,命令与它一致。
见证器我们在 Windows、苹果芯片的 Mac(它的 Intel 版也在这台 Mac 上借 Rosetta 跑过)和 x86_64 的 Linux 上都跑过,在 x86_64 的 Linux 上还逐条跑过下面 Linux 的步骤(与 JOIN.md 相同)。Linux 的 ARM 版目前只在模拟环境里跑过;WSL 和 Docker 的步骤是照微软和 Docker 的官方说明写的,我们还没有亲自试过。遇到问题请告诉我们。
先说安全。节点会主动连我们的公网节点 node.ark0.si,但不接受别人连进来,不用在路由器上开端口。程序下载以后先核对签名和哈希,步骤里都有。请把它放在单独的目录里,别和你已有的比特币节点混在一起;方舟节点也用不着这台电脑上的任何钱包。我们的节点能看到连上来的 IP 地址(所有比特币节点都是这样),我们只统计有几个节点连上来,不公开地址。不想跑了,停掉节点、删掉目录就行。
Windows
见证器需要 64 位的 Windows 10 或 11,处理器是 Intel 或 AMD。双击它就会在后台启动节点,不用输入命令。
- 下载 ark0-witness-0.3.0-win64.zip(约 10 MB)。想核对的话,在下载文件夹里打开 PowerShell,运行
Get-FileHash .\ark0-witness-0.3.0-win64.zip,结果应为D6656931BEA2EE9EE2659C3D89107C5FD5A146B070B6DC5812274AC151BE606F,和发布页上签了名的 SHA256SUMS 里写的一样。 - 右键压缩包,选「全部解压缩」,打开解压出来的文件夹(里面如果还有一层同名文件夹,再打开它),双击
Ark0Witness.exe。不要在压缩包里直接双击:那样程序找不到旁边的bitcoind.exe,会提示你先解压。请解压到电脑本身的硬盘上:如果放在 FAT32 或 exFAT 格式的盘上(很多 USB 闪存盘是这种格式),窗口里会显示一条 Windows 错误提示,比如「参数错误。」或「The parameter is incorrect.」,节点启动不了。 - 程序没有代码签名,Windows 可能弹出「Windows 已保护你的电脑」:点「更多信息」,再点「仍要运行」。如果 Windows 直接拦下、没有「仍要运行」(开了「智能应用控制」),这台电脑就用不了见证器,请改用下面的 WSL。
- 会出现一个命令行窗口,浏览器自动打开状态页。这个窗口要一直开着,关掉它,节点就停了;电脑睡眠时节点同样会停。第一次要从头同步,通常几分钟,看网速。
- 状态页上能看到:节点同步到第几块、连了几个节点;第 1264 块的哈希是否与方舟 0 号一致;同步到第 30000 块(M3 生效处)以后,这一块在你节点上的哈希,旁边有区块浏览器的链接可以对照;两根绊线的状态,以及从下一块起,0xe0 版本叶子里的椭圆曲线签名是否仍被接受。在「验一笔交易」里粘贴交易原文、点「检查」,你的节点会判一判,只检查、不发送。「见证结果」下面点「复制」,就能发到社区群或 GitHub issue,里面没有 IP 地址,也没有文件夹名。页面上的时间都是 UTC。
- 不想用了:关掉命令行窗口,等几秒,删掉解压出来的文件夹,再删掉
%LOCALAPPDATA%\Ark0Witness(在文件资源管理器的地址栏粘贴%LOCALAPPDATA%并回车,就能找到它)。程序不往别处写文件,也不安装任何东西。
另一种办法:WSL。也可以借 Windows 自带的 Linux 环境(WSL)跑 Linux 版程序。Windows 10(2004 版及以后)和 Windows 11 都可以;ARM 处理器的 Windows 电脑(比如骁龙)跑不了。
- 在开始菜单里搜 PowerShell,右键选「以管理员身份运行」,输入下面这行并回车,装完按提示重启电脑:
如果提示要开启虚拟化,要先在电脑的 BIOS 里打开它。已经装过 Ubuntu 24.04 的,跳过这一步。wsl --install -d Ubuntu-24.04 - 重启以后,从开始菜单打开 Ubuntu(名字里带 24.04)。第一次打开要设一个用户名和密码;后面 sudo 要用这个密码,记住它。
- 在这个 Ubuntu 窗口里,照下面「Linux」的第 1 到第 5 步做,一字不差。
- 节点在后台运行,但请留着一个 Ubuntu 窗口(最小化就行):所有 Ubuntu 窗口都关掉以后,Windows 可能停掉整个 Linux 环境,节点也就停了。电脑睡眠时节点同样会停。
不想用了:在 Ubuntu 里照下面「Linux」最后一段删掉节点就行。这个 Ubuntu 如果是专门为方舟节点装的、里面没有你别的东西,也可以在 PowerShell 里运行 wsl --unregister Ubuntu-24.04,把它连同里面的一切整个删掉。
Mac
见证器能在 macOS 14(Sonoma)及以后的版本上运行,苹果芯片和 Intel 处理器的 Mac 都可以。
- 下载 ark0-witness-0.3.0-macos.zip(约 19 MB)。用 Safari 下载的,它会自己解压到「下载」文件夹里;用别的浏览器,就双击这个 zip。想核对的话,在「终端」里运行
shasum -a 256 ~/Downloads/ark0-witness-0.3.0-macos/*:Ark0Witness和bitcoind这两行,应该和发布页上签了名的 SHA256SUMS 一致。 - 双击
ark0-witness-0.3.0-macos文件夹里的Ark0Witness。程序没有经过苹果公证,所以第一次打开时,macOS 会说无法验证它:点「完成」(macOS 14 上是「取消」),不要点「移到废纸篓」。打开「系统设置」,进入「隐私与安全性」,往下滚,找到说 Ark0Witness 已被阻止的那条提示,点「仍要打开」,再输入密码确认。然后再双击一次Ark0Witness,点「仍要打开」(macOS 14 上是「打开」)。macOS 也可能问是否允许「终端」访问「下载」文件夹里的文件:点「允许」。旁边的节点不会弹出任何询问:见证器会先核对它,再运行自己的一份副本。 - 会打开一个「终端」窗口,浏览器显示状态页,和 Windows 上一样(见上文)。这个窗口要一直开着:关掉它,节点就停了(「终端」会先问一句,点「终止」);Mac 睡眠时节点同样会停。在另一个「终端」窗口里运行
caffeinate -i,它运行期间 Mac 不会睡眠,不过合上盖子仍会睡眠。 - 不想用了:关掉「终端」窗口,等一分钟,让节点停下,再删掉
ark0-witness-0.3.0-macos文件夹和~/Library/Application Support/Ark0Witness文件夹(在访达里选「前往」菜单里的「前往文件夹」,粘贴这个路径)。程序不往别处写文件,也不安装任何东西。
也可以在「终端」里做。用 curl 下载的文件不会被标记为来自互联网,所以 macOS 什么都不会问。下面几行会下载 zip、核对、解压并启动程序;按 Ctrl+C 或关掉窗口就会停止:
cd ~/Downloads &&
curl -LO https://github.com/duncan0k/bitcoin-p2mr-patches/releases/download/ark0-witness-0.3.0/ark0-witness-0.3.0-macos.zip &&
echo "61a7e1e3070a34e79a596e0e4343c21fccd164e7d4549026b9eb0d1c72d10c98 ark0-witness-0.3.0-macos.zip" | shasum -a 256 -c &&
unzip -q ark0-witness-0.3.0-macos.zip &&
./ark0-witness-0.3.0-macos/Ark0Witness
另一种办法:Docker。想照 JOIN.md 来做,就用 Docker Desktop 运行我们发布的容器镜像。镜像是给 Intel、AMD 这类 x86 芯片做的;苹果 M 系列芯片的 Mac 用 Rosetta 转译运行。
- 到 docker.com 下载 Docker Desktop(按芯片选 Apple Silicon 版或 Intel 版),装好后打开它。苹果芯片的 Mac:在 Docker Desktop 的设置里找到「Use Rosetta for x86_64/amd64 emulation on Apple Silicon」,确认已经勾选。
- 打开「终端」,下载签名文件:
核对签名要用 gpg。装了 Homebrew 的话,运行:mkdir -p ~/ark0 && cd ~/ark0 R=https://github.com/duncan0k/bitcoin-p2mr-patches curl -fsSL --remote-name-all $R/releases/download/ark0-node-m4r/SHA256SUMS $R/releases/download/ark0-node-m4r/SHA256SUMS.asc https://raw.githubusercontent.com/duncan0k/bitcoin-p2mr-patches/ark0-node-m4r/ark0/release-signing-key.asc
没装 Homebrew,就借 Docker 里的 gpg 来核对:brew install gnupg gpg --import release-signing-key.asc gpg --verify SHA256SUMS.asc SHA256SUMS
怎么看结果,见下面「Linux」的第 2 步。docker run --rm -v "$HOME/ark0:/w" -w /w debian:13 sh -c 'apt-get update -qq && apt-get install -y -qq gnupg > /dev/null && gpg --import release-signing-key.asc && gpg --verify SHA256SUMS.asc SHA256SUMS' - 按 SHA256SUMS 里记下的镜像哈希下载,这样跑的就是签名覆盖的那一个:
D=$(awk '/ark0-node-m4r-image-manifest.json/ {print $1}' SHA256SUMS) docker pull --platform linux/amd64 ghcr.io/duncan0k/ark0-node@sha256:$D - 写配置(整段复制,一次粘贴进去):
mkdir -p ~/ark0/data cat > ~/ark0/data/bitcoin.conf <<'EOF' signet=1 listen=0 [signet] signetchallenge=5121026fc5d8e79a9fbc8bc3dea07d82641d16717ce0b000c13c512d8e8c1788c6e5da51ae signetpowtargetspacing=90@8064 addnode=node.ark0.si:38433 EOF - 启动节点,再设一个简写
ark0,后面的命令都用它:
刚启动的几秒钟里,最后这行可能报错说节点还没准备好,稍等再运行一次。docker run -d --name ark0 --platform linux/amd64 --user "$(id -u):$(id -g)" -v "$HOME/ark0/data:/data" ghcr.io/duncan0k/ark0-node@sha256:$D -datadir=/data -printtoconsole echo 'alias ark0="docker exec ark0 bitcoin-cli -datadir=/data"' >> ~/.zshrc && source ~/.zshrc ark0 getblockchaininfo
Mac 睡眠时节点也会停。演练那天让它保持唤醒:在终端里运行 caffeinate -i 并留着这个窗口(合上盖子仍会睡眠)。重启 Mac 以后,先打开 Docker Desktop,再运行 docker start ark0。不想用了:运行下面三行,再在 Docker Desktop 里删掉这个镜像。
docker rm -f ark0
rm -rf ~/ark0
sed -i '' '/^alias ark0=/d' ~/.zshrc
Linux
见证器能在 64 位、glibc 2.35 及以上的 Linux 上运行,比如 Ubuntu 22.04、Debian 12、Raspberry Pi OS(bookworm),以及它们之后的版本:Intel、AMD 处理器用 ark0-witness-0.3.0-linux-x86_64.tar.gz(约 10 MB),64 位 ARM(比如装了 64 位系统的树莓派)用 ark0-witness-0.3.0-linux-aarch64.tar.gz(约 10 MB)。在终端里进入下载它的文件夹,运行下面几行,就会核对、解压并启动程序:
echo "f85ac708ba7a35b735a7bf841820c87d92c776d9d69f569932120f8f5874037d ark0-witness-0.3.0-linux-x86_64.tar.gz" | sha256sum -c &&
tar -xzf ark0-witness-0.3.0-linux-x86_64.tar.gz &&
./ark0-witness-0.3.0-linux-x86_64/ark0-witness
ARM 版:把三行里的 x86_64 都换成 aarch64,SHA-256 值换成 a768ce5b0976a8187ce4c2a29f75578f6bdd36a0d4926ac6f5be7e174bcfcb09。有桌面环境的话,浏览器会打开状态页;没有的话,在同一台电脑上用浏览器打开程序显示的网址。程序如果没有往下走,而是显示一条处理你的文件夹的 chmod 命令,就运行这条命令,再重新启动程序。终端要一直开着:关掉它,或者按 Ctrl+C,节点就停了。没有屏幕的电脑,比如通过 SSH 登录的树莓派,要转发状态页的端口:如果程序显示的是 http://127.0.0.1:41234/...,就在你自己的电脑上运行 ssh -L 41234:127.0.0.1:41234 you@raspberrypi,再在自己的电脑上原样打开程序显示的网址。想在退出登录以后让程序继续运行,就在 tmux 或 screen 里启动它。不想用了:停掉程序,再删掉解压出来的文件夹和 ~/.local/share/Ark0Witness。
下面几步用的是 JOIN.md 的预编译程序,要 x86_64 的 Ubuntu 24.04 或 Debian 13。更老的系统(比如 Ubuntu 22.04、Debian 12)跑不了它,请改用 JOIN.md 里的容器镜像或从源码编译。树莓派这类 ARM 机器,JOIN.md 没有预编译程序;上面的见证器带着能在这些机器上跑的节点。
- 装要用的软件:
sudo apt-get update sudo apt-get install -y curl gnupg libevent-core-2.1-7t64 libevent-extra-2.1-7t64 libevent-pthreads-2.1-7t64 libsqlite3-0 - 下载并核对签名:
输出里要有一行 Good signature from "Ark-0 release signing key (duncan0k) …",还要有下面这一行指纹,一个字符都不能差:mkdir -p ~/ark0 && cd ~/ark0 R=https://github.com/duncan0k/bitcoin-p2mr-patches curl -fsSL --remote-name-all $R/releases/download/ark0-node-m4r/ark0-node-m4r-x86_64-linux-gnu.tar.gz $R/releases/download/ark0-node-m4r/SHA256SUMS $R/releases/download/ark0-node-m4r/SHA256SUMS.asc https://raw.githubusercontent.com/duncan0k/bitcoin-p2mr-patches/ark0-node-m4r/ark0/release-signing-key.asc gpg --import release-signing-key.asc gpg --verify SHA256SUMS.asc SHA256SUMS
同时出现「This key is not certified with a trusted signature」的警告是正常的。指纹对不上,就停下,别往下做。Primary key fingerprint: 025D 989B 68FF 923F 8EF6 9D4B 28F6 5A19 58A2 361A - 核对并解开程序包,每一行都应该是 OK;核对不过,后面的就不会执行:
sha256sum --ignore-missing -c SHA256SUMS && tar -xzf ark0-node-m4r-x86_64-linux-gnu.tar.gz && sha256sum --ignore-missing -c SHA256SUMS - 写配置(整段复制,一次粘贴进去),再启动节点:
mkdir -p ~/ark0/data cat > ~/ark0/data/bitcoin.conf <<'EOF' signet=1 listen=0 [signet] signetchallenge=5121026fc5d8e79a9fbc8bc3dea07d82641d16717ce0b000c13c512d8e8c1788c6e5da51ae signetpowtargetspacing=90@8064 addnode=node.ark0.si:38433 EOF ~/ark0/ark0-node-m4r/bin/bitcoind -datadir=$HOME/ark0/data -daemonwait - 设一个简写
ark0,后面的命令都用它:echo 'alias ark0="$HOME/ark0/ark0-node-m4r/bin/bitcoin-cli -datadir=$HOME/ark0/data"' >> ~/.bashrc && source ~/.bashrc ark0 getblockchaininfo
停止节点:ark0 stop。再启动:运行第 4 步的最后一行。不想用了:先停止节点,等几秒,再运行下面两行。
rm -rf ~/ark0
sed -i '/^alias ark0=/d' ~/.bashrc
以前装过节点的
以前照这份指引装的是 ark0-node-m3 或更早的版本。它在第 51000 块之后会停在第一笔救援所在的那一块,要在那之前换成上面的 ark0-node-m4r。最省事的做法是删掉旧的链数据、用新版重新同步一遍(十几分钟),配置文件留着。用见证器的,关掉旧版,照上面的步骤下载、打开 0.3.0 就行。
用 Linux 预编译程序的,先运行下面四行,再从 Linux 的第 2 步做起:
ark0 stop
sleep 10
rm -rf ~/ark0/data/signet ~/ark0/ark0-node-m3
sed -i '/^alias ark0=/d' ~/.bashrc
在 Mac 上用 Docker 的,先运行下面三行,再从 Docker 的第 2 步做起:
docker rm -f ark0
rm -rf ~/ark0/data/signet
sed -i '' '/^alias ark0=/d' ~/.zshrc
装好以后,先核对一遍
用见证器的,状态页已经替你做了这几项核对,可以跳过这一段。
ark0 getblockchaininfo:等 blocks 和 headers 一样、initialblockdownload 变成 false,就同步好了。ark0 getblockhash 1264:应该得到00000036e6e81d9884217ca9918e38b9683617b41195a6d4ccc4c4696b31e9d4。不一样,说明连上的不是方舟 0 号。ark0 gettripwireinfo:height 是 30000,leaf_version 是 e0。10 月 30 日拉绊线以后,label 是 drill 的那根绊线 state 是 missing,另一根是 unspent,ec_disabled_next_block 是 true。还没同步过第 36897 块时,两根都是 unspent、ec_disabled_next_block 是 false;还没同步过第 15748 块时,两根都显示 missing。这都是正常的。新版节点还多一项 rescue,其中 height 是 51000。
见证什么
10 月 30 日的绊线演练已经做完:第 36897 块花掉了演练绊线,从下一块起,0xe0 叶里的椭圆曲线签名都通不过。下一站是 M4-R:从第 51000 块起开通救援通道,预计在 11 月 15 日前后,不会早于 11 月 14 日,具体以社区群的通知为准。
用见证器的:第 1 步看状态页上的版本是不是 0.3.0,第 3 步看状态页上的块数有没有越过救援交易所在的那一块;第 2 步要用节点命令,见证器不显示。
- 第 51000 块之前,确认节点已经是新版:
ark0 getdeploymentinfo里有一项 p2mr_rescue,type 是 buried,height 是 51000。 - 链尖到第 50999 块以后,
ark0 getdeploymentinfo里 p2mr_rescue 的 active 变成 true,ark0 gettripwireinfo的 rescue 里 active_next_block 也变成 true。这两项说的都是下一块,也就是第 51000 块:规则从这一块起执行。 - 51000 之后,我们会在预先约好的时间,用救援证明在一笔交易里取回两笔演练币,并在社区群里贴出交易号和它所在的块哈希。运行
ark0 getblock 块哈希 1:能查到,并且 confirmations 大于 0,说明你自己的节点接受了第一块带救援花费的区块。交易本身可以在区块浏览器里打开,看它取回的是哪两笔。 - 链外的救援证明已经公开,现在就可以自己核对:照救援演练的公开页里的步骤,用 Python、Rust、Go 三种验证器中的任意一种。
- 愿意的话,把第 1 到 3 步的输出(复制文字或截图)发到社区群,或者在补丁仓库开一个 GitHub issue。公开记录只写有几个外部节点参与见证,不写名字,也不写地址。
M3 演练那笔见证用的交易,11 月 30 日之前仍然可以让你的节点判一判,原文在 NETWORK.md 的「What the chain shows」一节。
安卓手机行不行?
现在不行,苹果手机也一样。方舟 0 号只发布了给 Windows、Mac 和 Linux 电脑用的程序,没有给手机用的版本;手机系统也会随时停掉在后台长时间运行的程序。用手机照样可以参与演练:在钱包里试混合地址,在区块浏览器里查看区块。不过看到的是我们网站给出的结果,算不上独立见证。
常见问题
地址是 tb1z 开头,不是 bc1z
这是正常的。tb1z 和 bc1z 是同一类地址(P2MR)在两个网络上的写法:tb1z 用在测试网,bc1z 是比特币主网的写法。方舟 0 号是测试网,所以钱包里的地址都以 tb1z 开头。
页面一直停在 正在确认网络……
浏览器可能太旧,或者拦截了本页的脚本。更新浏览器,或者换一个,见用什么打开。
页面上没有 用钱包登录
用钱包登录 已于 2026-10-14 停用:用它打开的钱包没有后量子保护,见用钱包登录打开的钱包没有后量子保护。以前用它打开、这个浏览器里还存着的钱包照常能打开;换了浏览器或设备,就用备份码恢复。没有备份码的,就新建一个钱包,再领测试币。
提示钱包已在另一个标签页里打开
同一个浏览器一次只能在一个标签页里用钱包。关掉其他开着钱包的标签页(钱包 App 的内置浏览器也可能开着好几个标签页),这一页就会接着打开钱包。
提示这个浏览器不允许页面保存数据
退出无痕模式或隐私模式,或者在浏览器设置里允许这个网站保存数据,或者换一个浏览器。
领了币,余额没有变
先看 交易动态:显示「待确认」,说明交易已在内存池里,等下一个区块确认后就计入余额。什么都没有显示的话,点 刷新;也可以点水龙头领取成功页上的 查看这笔交易,看那笔交易有没有确认。
提示无法判断节点是否收下了这笔交易
点页面上的交易 ID,到区块浏览器里查。这个浏览器会把这些币暂时保留十分钟,这期间不会再次花出;十分钟后区块浏览器里还查不到这笔交易,可以重新转。
提示复核之后币有了变化
余额刚刚变过。点 返回 回到表单,再点 检查,然后确认转出。
点复制没反应,或者提示 请手动选中复制
页面会替你选中这段文字,长按它(电脑上点右键)再复制。