Releases: v0id-byte/v0idchain
Release list
v0idChain 钱包 0.1.8 — 增量链同步(本地缓存 + 补缺口)
v0idChain macOS 钱包 0.1.8
改进:重开钱包不再每次全量同步整条链
根因
链只存内存,每次连接冷启动都发 QUERY_ALL 问节点要整条链,重开钱包 = 重新全量下载,流量和耗时都随链长增长。
修法
- 已同步的链落盘到 Application Support(JSON,读回时校验哈希链完整性)
- 冷启动读本地缓存,只用
QUERY_BLOCK_RANGE补节点比本地新的那一段缺口,不再整链重拉 - 收到的每个区块都校验
hash自洽 +prevHash衔接 + 高度连续,校验不过(换节点/分叉/篡改)才回退整链重灌 - 顺手修了一个潜在死循环:换节点后本地缓存跟新节点视角不一致时,原逻辑会静默卡住;现在强制整链重拉自愈
- 签名:Developer ID Application: liuhaoran qin (Team C58WLH687Z)
- 已公证并 staple
- macOS 13.0+,Apple Silicon + Intel(universal)
- SHA-256:
31fd0db852c414e6e90c3db6f60984991ba4acd7993d1716983a424bc997bd3c
v0idChain Android 0.1.8 — 增量链同步(本地缓存 + 补缺口)
v0idChain Android 钱包 0.1.8
改进:重开钱包不再每次全量同步整条链(与 macOS/iOS 同根,见 wallet-v0.1.8)
根因
链只存 ViewModel 内存,每次连接都发 QUERY_ALL 问节点要整条链,重开 App(冷启动/被系统杀后台再拉起)= 重新全量下载。
修法
- 已同步的链落盘到内部私有文件(非加密——不含私钥等敏感信息,完整性靠哈希链校验)
- 冷启动读本地缓存,只用
QUERY_BLOCK_RANGE补节点比本地新的那一段缺口,不再整链重拉 - 收到的每个区块都校验
hash自洽 +prevHash衔接 + 高度连续,校验不过才回退整链重灌
安装说明
APK 以调试证书签名,需开启「未知来源应用」安装权限(Settings → Apps → Special app access → Install unknown apps)。
SHA-256: be4a99c804720f0e2e9d839960d408ff2de25caddf50b776f4763dd12106a7bd
⚠️ $V0ID 为教学链原生代币,不代表任何真实资产。
v0id Browser 0.2.6
v0id Browser 0.2.6
新增
- 建站流程统一化 + 内置零后端静态托管:托管站点新增「本地文件夹」模式,选个含
index.html的文件夹即可一键发布为.v0id隐藏服务,不用自己先起一个 host:port 后端。 - 中继上线状态三段式:把「本地已启动 / 描述符已上链 / 可达性自测」拆成三个独立指示,并提供一键自检按钮,不再和单一开关混为一谈。
- 中继数量统计修正:区分「链上注册数」与「当前可达数」两个数字,避免早已下线的历史中继虚增计数。
- 中继广播地址 GUI 配置:新增「广播地址」输入框,填公网地址/域名后一键保存并重启守护进程生效,不用再手动传 CLI
--relay-advertise;重启后若中继原本在线会自动恢复上线。 - 收藏夹体验增强:地址栏输入自动补全(书签 + 会话内最近访问),工具栏新增跨标签书签弹出面板,不用回起始页才能用收藏夹;修复了弹出面板/下拉被网页内容盖住看不见的问题(Electron
<webview>独立合成层导致)。 - .v0id 连接失败显示具体原因:连接失败时展示真实失败原因,而非笼统的超时提示。
修复
- SOCKS 出站建路不再随机选中死中继:链上目录会永久累积无法注销的历史死中继,此前出站选路是纯随机、不看可达性,现在复用与隐藏服务同一套可达性探测缓存,明显减少「时好时不好使」的现象。
- 入口守卫钉住不再被瞬时探测失败误伤:一次短暂的可达性探测失败此前会被误判成「中继已下线」,导致钉住的入口守卫被永久踢出、频繁轮换,反而扩大匿名暴露面;现在守卫持久化判定始终基于全量链上目录,只有真正下线才会被剔除。
- 回环/私网地址不再假装可达:过滤掉链上目录里过时的 127.0.0.1/私网中继描述符,避免本机偶然有端口监听就被误判为可用中继。
- 静态托管文件夹内的符号链接不再能逃逸出发布目录读取任意文件;静态托管服务 id 改用文件夹路径哈希,修复路径碰撞导致误发布的问题;中继可达性自检不再对回环地址虚报「可达」。
安装
下载 v0id-Browser-macOS-0.2.6.dmg,打开拖入 Applications,双击启动。
SHA-256: c965752b2dfd60acddc4e320e63d543ef67317876de3d84a854dca1981f36b57
平台:macOS (Apple Silicon)
Electron:33.4.11 · Node:20.x (bundled)
v0id Browser 0.2.5
v0id Browser 0.2.5
修复
- #40 隐藏服务电路雪崩修复:v0id 浏览器守护进程会将自身以
127.0.0.1:6011注册到链上;本机 WS 探测成功使其进入可达集,usableCount虚增,导致markBad误判 AWS 良好中继,所有.v0id地址均无法访问(SOCKS5 exit 97 / 30s 超时)。现在电路构建时自动过滤私有/回环 IP 中继,浏览.v0id隐藏服务恢复正常。
安装
下载 v0id-Browser-macOS-0.2.5.dmg,打开拖入 Applications,双击启动。
SHA-256: 05880c06957be48f35e28a7ae3375b96952ea4d7cbb6586262f4ac37c74aa698
平台:macOS (Apple Silicon)
Electron:33.4.11 · Node:20.x (bundled)
v0id 浏览器 0.2.4
修复
.v0id隐藏服务浏览 / 托管彻底修复(此前撞上「死中继」会以EXTEND DESTROY失败)。统一并入社交主链后,链上中继目录永久累积了大量无法注销的死中继注册(外网不可达 / 被防火墙挡 / 环回地址),随机选路高概率撞上 → 浏览/托管必败。- 客户端选路改为抗死中继污染:主动探测中继可达性 + 建路实测「转不动」即判负、只走真正能转发的骨干中继;会合点 / 引入点 / HSDir 选择全部加冗余 + 逐个重试容错。
- 实测:两个不同
.v0id地址(不同 HSDir 环)托管 + 浏览均稳定打通(HTTP 200,经 3 跳洋葱电路匿名送达)。
仅客户端选路侧改动,不改共识、不动中继;底层洋葱 / ntor / cell 加密层一直完全健康。详见 #32。
下载
| 文件 | 说明 |
|---|---|
v0id Browser-0.2.4-arm64.dmg |
macOS Apple Silicon 安装包(已签名 + 公证 + 钉合) |
v0id Browser-0.2.4-arm64-mac.zip |
macOS Apple Silicon zip |
v0id 浏览器 0.2.3
修复
- 修复 CLI
--hs-target启动后地址显示空白(st.hs.address→st.address) - 隐藏服务地址重启后保持不变(身份文件改为按 host:port 派生,不再每次生成新 UUID)
- 导入钱包时若中继运行中返回明确错误,防止描述符与新地址不一致
- 修复质押自测断言(
makeStake不再返回.amount) - 修复 rolemanager smoke test(
hs.on→hsList) - 补全 desktop
pnpm-lock.yaml中qrcode条目(CI frozen-lockfile 可通过)
下载
| 文件 | 说明 |
|---|---|
v0id Browser-0.2.3-arm64.dmg |
macOS Apple Silicon 安装包(已公证) |
v0id Browser-0.2.3-arm64-mac.zip |
macOS Apple Silicon zip |
v0id 浏览器 0.2.2
新功能
- 钱包私钥导入(热替换) — 老用户可直接用私钥登录,无需新建钱包再转账;守护进程热替换,不重启。
- 多隐藏服务 — 同时托管多个独立
.v0id服务,各自独立地址和身份文件。 - 访问统计 — 每个托管服务显示累计连接数。
- 服务备注名 — 为每个隐藏服务添加本地标签,方便区分。
.v0id二维码 — 每个服务一键生成 QR 码,client-side 生成,不外发地址。- 动态质押门槛 — 质押基数升为 guard=500 / hsdir=300 / middle=100,随链难度线性扩(上限 32×)。
- 新 App Icon — 替换为深色风格图标。
下载
| 文件 | 说明 |
|---|---|
v0id Browser-0.2.2-arm64.dmg |
macOS Apple Silicon 安装包(已公证) |
v0id Browser-0.2.2-arm64-mac.zip |
macOS Apple Silicon zip |
需要 macOS 12+,Apple Silicon (arm64)。
v0idChain 钱包 0.1.7 — TUN 代理下握手失败修复
v0idChain macOS 钱包 0.1.7
修复:TUN 代理(Clash/mihomo)下 gossip peer 触发「WebSocket 握手失败」弹窗
根因
TUN 代理在内核 IP 层拦截所有 TCP 流量。对死掉的 gossip peer,Clash HTTP 后端会先完成 TCP 握手、再返回 HTTP 502,导致握手看起来在应用层失败,并每 15 s 重复报错。
修法
- bootstrap 种子连不上 → 保持报错(真错误)
- gossip 学来的 peer 连不上/握手失败 → 静默,连续 3 次后自动从已知集删除(同时清 UserDefaults 缓存)
- peer 复活后自动重置失败计数
- 签名:Developer ID Application: liuhaoran qin (Team C58WLH687Z)
- 已公证并 staple
- macOS 13.0+,Apple Silicon
- SHA-256:
c84770ae5cfacb2a90875c5eab7bdb57953a27c49d61e8f6451764ad3ce3c46b
v0idChain Android 0.1.7
修复内容
- TUN 代理下 gossip peer 握手失败噪声 — Android 端(与 macOS PR #31 同根):gossip-learned 备用节点的连接失败不再写入状态栏;连续失败 3 次后自动从备用池移除并持久化。
安装说明
APK 以调试证书签名,需开启「未知来源应用」安装权限(Settings → Apps → Special app access → Install unknown apps)。
SHA-256: 11273eb278469f40c6b51977dfc2d521dc3b0ae88a2e2e816ad3d59687fe7677
⚠️ $V0ID 为教学链原生代币,不代表任何真实资产。
v0id 浏览器 0.2.1 — .v0id 实网浏览(CF wss 种子 + rendezvous 修复)
把 .v0id 洋葱匿名网络包成 GUI 的 macOS 浏览器:打开即连一张真实的公网 .v0id 网络,地址栏输 xxxx.v0id 就能浏览隐藏服务,收发双方互不知对方 IP。
本次更新(相对 0.2.0)
- 默认连真实公网种子
wss://v0id-seed.void1211.com:443:4 台 AWS 中继经 Cloudflare 命名隧道暴露成稳定wss://(443 TLS,CF 边缘可达),绕过家宽/GFW 的 IP 封禁。0.2.0 连的是本地/旧种子,实际浏览不通。 - 修复
.v0idrendezvous 浏览(核心):根因是描述符rev恒为 0 的防回滚 bug —— 隐藏服务重启换了新引入点,却仍用rev=0重发描述符,目录防回滚拒收、续供旧 authKey,导致会合永远超时。现改为严格递增 rev + INTRODUCE 发所有引入点 + 取描述符/连接多级重试 + 引入电路保活。实网国内 Mac 直连连续浏览 4/4,约 10s。 - 已签名 + 公证(Notarized Developer ID):Gatekeeper 直接放行,无需右键打开。
怎么用
- 下载
.dmg→ 拖进「应用程序」→ 打开。 - 内置守护进程自动连种子、同步目录链;地址栏输
xxxx.v0id即可浏览。 - 侧栏可一键开:浏览客户端 / 中继(贡献带宽)/ 托管你自己的
.v0id站点 / 链·挖矿 / 钱包。
诚实边界
- 这是 教学 + 技术 showcase + 玩具级真匿名网,不是 Tor 替代品。当前网络很小(3 中继 / 2 台机)→ 匿名集弱,请勿用于保命级匿名。
- 仅 macOS(Apple Silicon / arm64);Windows / Linux 以后再说。
SHA-256 f5b3f384c71e0d3c08f5ea7614af56fa4449c251a2a2c3b343a87a20d7e869a6