Ksana
EN

使用网络

Signet 钱包

位于 https://signet.ksana.network/ 的网页钱包和区块浏览器。连接 Unisat 或 Xverse,领取测试 KSA,走路径 B 或路径 C 发送,用 signet 比特币充值,并查看每笔操作落在了比特币的什么位置。

本页目录

signet 钱包是一个网页,既是公开 signet 的钱包,也是它的区块浏览器。它不保存任何密钥:签名由你的浏览器钱包完成,页面则从一个 Ksana 节点、一个索引器和一个比特币 RPC 读取链上数据;除非你选择自己的,否则用的都是托管的服务。

页面由仓库中的 web/ 构建。页脚和设置 › 关于会显示构建它的提交,web/README.md 说明了怎样重新构建这个提交,并逐字节比对文件。

支持的钱包

钱包 设置为 页面使用的账户
Unisat Bitcoin Signet,Taproot 地址类型 钱包的 Taproot 地址
Xverse Signet Ordinals 地址,也就是 Taproot 地址

你的 Ksana 账户就是你的 Taproot(P2TR)地址,所以页面不接受其他类型的地址。连接之前,页面还会检查钱包是否在 signet 上,签署路径 C 交易或充值交易之前再查一次:光凭 tb1 地址分不清 signet 和 testnet,所以页面会询问钱包当前设在哪个网络(Unisat 的 getChain、Xverse 的 wallet_getNetwork)。

连接

打开 https://signet.ksana.network/,选择钱包,再选连接钱包,选中你的钱包,并在扩展里批准请求。页面只请求签名:路径 B 操作签为一条 BIP322 消息,路径 C 交易和充值交易签为 PSBT。设置里会显示已连接的地址,并提供断开钱包。

钱包首页依次显示三项余额:

  • 比特币 · signet:你地址上的聪,经由托管的比特币 RPC 代理从 mempool.space 的 signet API 读取。页面在打开钱包时和每个比特币区块之后读取;角落的按钮可以刷新它们。
  • 快轨 · KSA:你的余额,拆成已经 BTC 最终的部分和尚未最终的变动(BTC 最终余额、转入,尚未最终、转出与费用,尚未最终、当前余额(立即可用))。
  • 代币:其他资产;某项资产有一部分尚未最终时,会附上它的 BTC 最终数额。

领取测试 KSA

钱包为空时,KSA 卡片会显示“还没有 KSA”,并提供领取测试 KSA。收款页上也有同一个水龙头,就是你的地址和二维码旁边的从 signet 水龙头领取测试 KSA。两者都发 100 KSA,每个账户每天一次;水龙头拒绝时,会有一条提示说明原因。水龙头的各项限制见公开 signet。

走路径 B 发送

路径 B 是默认方式:你用 KSA 付一小笔手续费,收录你操作的出块者则支付结算它所需的比特币手续费。

  1. 选择发送。粘贴收款账户:一个 tb1p… 地址,或写成 64 位十六进制的账户。核对页面显示的首尾各 8 位;如果这个账户在链上还没有记录,页面会提醒你。
  2. 填写金额。KSA 有 8 位小数。
  3. 在提交方式下保持代付。手续费按节点的建议值,这个值来自最近 20 个区块中最低的路径 B 费率(目前 signet 上是 1 个最小单位)。在高级选项里可以另设手续费和 max_gas。
  4. 选择检查并签名。页面会用一句话说明你要做什么,显示完整的收款地址,列出所有警告,并在末尾折叠展示确切的操作内容(VmOp 及其签名哈希)。
  5. 选择签名并提交,在钱包里签署这条消息。

随后,发送页会跟踪这笔操作,依次经过待收录、快轨确认、已写入比特币和 BTC 最终。操作快轨确认之后,再发一笔才可以使用,这样下一笔操作就不会重复使用它的 nonce。这几道印记的含义见确认与最终性。

收到的转账按大额阈值区分,默认 10,000 KSA,可以在收款页或设置里修改。低于阈值的,快轨确认即算到账;达到或超过阈值的,钱包会提醒你等到 BTC 最终。

在页面上走路径 C

路径 C 把你的操作放进一笔你自己的比特币交易。这笔交易有了所需的确认数之后,每个出块者都必须收录它,所以没有哪个出块者能把它挡在外面;你用 sBTC 支付比特币矿工费,不付 KSA 手续费。两条路径的比较见操作与手续费。

路径 C 位于发送页的更多提交方式下。当你的 KSA 不够付路径 B 手续费、结算出现积压,或者出块者一直没有收录你的操作时,它会自动展开,并标为推荐。等待过久的操作会提供改走路径 C(或用路径 C 重新提交),沿用同一个 nonce。

  • 资金:你的 Taproot 地址上需要有少量 sBTC。按 2 sat/vB 计,一笔转账的手续费约 700 聪。页面通过 mempool.space 的 signet API 列出你地址上的币;那边没有应答时,页面会告诉你,你可以重试,或者按 txid:vout:sats 的格式手动填写输出。
  • 签名:页面构建交易,钱包以 PSBT 的形式签署它的输入。操作的签名绑定在交易的第一个输入上,所以无法被复制到另一笔交易里。
  • 广播:经由托管的比特币 RPC 代理。没有可用的广播途径时,页面会给出已签名的原始交易,由你自己广播。
  • 收录:在 signet 上,锚定在该交易所在比特币区块或更高处的下一个快轨区块会收录它,这需要 2 个比特币确认(NATIVE_CONFIRMATIONS 1 加上 ANCHOR_DEPTH 1)。在此之前,节点并不知道这笔操作。

如果同一 nonce 的路径 B 操作先被收录,路径 C 操作就会记为失败,它的矿工费也不退。在你签署重新提交之前,页面会先说明这一点。

充值

充值就是用一笔比特币交易,拿 sBTC 向卖方买 KSA。卖方先在兑换合约(示例合约 ksa-exchange)里为你的账户锁定 KSA,并设定价格(以每聪多少 KSA 计)、收款地址和到期高度。你付给这个地址的款项以路径 C 的方式携带领取操作;它被收录之后,合约就把 KSA 记入卖方在锁定中指定的账户。

  1. 向卖方要来兑换合约的 ID(64 位十六进制)和锁定编号。
  2. 选择充值,填入兑换合约和锁定编号,再选读取。页面会显示卖方、受益账户(也就是你)、价格、锁定的 KSA、收款地址,以及距离到期还剩多少个比特币区块。
  3. 以聪为单位填写付款金额。全部会填入买下全部锁定 KSA 所需的金额。少付只买到其中一部分,其余继续为你锁定;多付也买不到更多。
  4. 核对用来付款的 BTC 输出和矿工费,然后选择签名并广播,在钱包里签署 PSBT。

受益账户是别人的锁定,页面会拒绝;距离到期只剩 3 个或更少的比特币区块时,页面也会拒绝付款;只剩 4 个或更少时会发出警告。广播之后,页面会显示这笔比特币交易、领取操作,以及付款应当在哪个高度之前确认。领取操作被强制收录之后,KSA 就会到账,在 signet 上是 2 个比特币确认之后。

领取操作由专为这笔付款生成的一次性密钥签名,而不是你账户的密钥,所以不会占用你账户的任何 nonce。signet 上没有常驻的卖方:得有持有 KSA 的人为你锁定一些。想一个人试试充值,可以用第二把密钥配合 ksana-cli 的 exchange 命令扮演卖方,再从页面付款。

历史记录与区块浏览器

钱包首页把尚未最终的操作列在进行中下,每笔都附有进度和预计何时最终;其余操作都列在活动下(可按发出、收到或失败筛选)。标为卡住的操作,详情里会写明原因。

区块浏览器的页面不连接钱包也能用:

  • 概览:快轨和比特币并列为两条轨道,以及最新的区块和操作。
  • 区块和结算:每个快轨区块,连同它的父块、条目和携带它的结算;结算交易、路径 C 交易和补发交易,连同它们的提交与揭示结构。
  • 操作:最新的操作,以及一笔操作从所在区块到携带它的比特币交易的全过程。
  • 验证:索引器的状态根与节点的比对、两种确认,以及网络的参数。

搜索框接受高度、区块哈希、操作 ID、比特币 txid 和高度、合约 ID 以及账户。节点不认识的比特币交易或区块,会链接到 mempool.space。

使用你自己的节点

顶栏里的网络标识(signet · 节点)会打开数据源面板;设置里也有同样的面板。在节点 JSON-RPC 一栏填入你节点的地址,选择 signet 网络,然后连接。

  • 你的节点必须允许本页面的来源:启动时加上 --rpc-cors https://signet.ksana.network(或 '*')。完整命令见运行节点。
  • 索引器 JSON-RPC 和比特币 RPC 是可选的,而且只能填本页面同源下的路径,因为索引器和 bitcoind 都不发送 CORS 头。在托管的页面上,可以继续用托管的 /indexer 和 /btc。没有索引器时,验证页无从比对,页面也会注明此时“BTC 最终”只是节点的说法。
  • 同样的选择也能写进地址栏:?rpc=<node URL>&indexer=<indexer URL>&btc=<Bitcoin RPC URL>&chain=signet。?source=sim 会切换到浏览器内模拟器,那是一个不需要任何服务的 devnet。

页面在同步之前读取节点的链 ID,每次签名之前再读一次,遇到其他网络的节点就拒绝。想在自己的机器上运行这个页面本身,并代理到你自己的节点、索引器和 bitcoind,请按 web/README.md 操作。

故障排查

你看到的 该怎么做
未检测到扩展 安装 Unisat 或 Xverse,然后刷新页面。
… 不是 Taproot 地址,请在钱包里切换到 Taproot 账户。 把钱包切换到它的 Taproot 地址(在 Xverse 里是 Ordinals 地址)。
… 现在设在 … 上,而本页的网络跑在 BTC signet 上 把钱包的比特币网络切换到 signet。
节点在另一个网络上 页面和节点所在的网络不一致:在数据源面板里选择 signet,或者连接一个 signet 节点。
连不上 …。确认节点在运行,并以 --rpc-cors 允许 …。 启动节点时用 --rpc-cors 允许本页面的来源。
水龙头没有发出 KSA 提示里写着水龙头给出的原因;最常见的是这个账户今天已经领过 KSA。
KSA 不够付代付费 领取测试 KSA、充值,或者改走路径 C 发送。
没有可用的 BTC 输出付矿工费 向你的地址转一些 sBTC,等它确认。
读不到 BTC 输出 mempool.space 没有应答:重试,或者手动填写输出。
被跳过,等待重新收录 这笔操作在一个无法执行它的平行块里。没有扣任何费用;它会回到条目池,再次被收录。
结算积压已达上限,快速路径暂停 结算正在等待写入比特币。已经生效的余额不变;路径 C 照常可用。