<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>v3 协议规范 on go-bitfs</title><link>https://63812707.go-bitfs.pages.dev/guide/protocol/</link><description>Recent content in v3 协议规范 on go-bitfs</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://63812707.go-bitfs.pages.dev/guide/protocol/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/001-%E6%8A%A5%E4%BB%B7%E5%87%AD%E8%AF%81%E8%A7%84%E8%8C%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/001-%E6%8A%A5%E4%BB%B7%E5%87%AD%E8%AF%81%E8%A7%84%E8%8C%83/</guid><description>&lt;h1 id="001--bitfs-报价凭证规范"&gt;001 · BitFS 报价凭证规范&lt;/h1&gt;
&lt;h2 id="编码签名与哈希"&gt;编码、签名与哈希&lt;/h2&gt;
&lt;p&gt;所有结构使用 RFC 8949 core deterministic CBOR。&lt;code&gt;TermsCBOR&lt;/code&gt; 必须是 &lt;code&gt;FileQuoteTerms&lt;/code&gt; 的原始确定性 CBOR 字节：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;TermsSignature = Sign_seller(TermsCBOR)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Verify(SellerPubkey, TermsCBOR, TermsSignature)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;FileQuoteTermsHash = SHA256(TermsCBOR)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;不使用签名域。实现必须只把 &lt;code&gt;TermsSignature&lt;/code&gt; 按上述报价条款验证。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/001-%E6%8A%A5%E4%BB%B7%E5%87%AD%E8%AF%81%E9%9C%80%E6%B1%82/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/001-%E6%8A%A5%E4%BB%B7%E5%87%AD%E8%AF%81%E9%9C%80%E6%B1%82/</guid><description>&lt;h1 id="001--报价凭证需求"&gt;001 · 报价凭证需求&lt;/h1&gt;
&lt;h2 id="要解决什么"&gt;要解决什么&lt;/h2&gt;
&lt;p&gt;卖方需要向一个确定买方承诺：某个 seed 对应文件可以怎样出售、种子多少钱、完整文件块多少钱、哪些仲裁者可以接受，以及报价何时失效。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/002-%E8%B4%B9%E7%94%A8%E6%B1%A0%E5%BC%80%E6%B1%A0%E8%A7%84%E8%8C%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/002-%E8%B4%B9%E7%94%A8%E6%B1%A0%E5%BC%80%E6%B1%A0%E8%A7%84%E8%8C%83/</guid><description>&lt;h1 id="002--v3-费用池开池规范"&gt;002 · v3 费用池开池规范&lt;/h1&gt;
&lt;p&gt;Buyer 使用 MultisigPool v4 的 &lt;code&gt;ArbitratedPoolRoles{Buyer, Seller, Arbiter}&lt;/code&gt; 创建池锁，公钥顺序固定为 &lt;code&gt;[Buyer, Seller, Arbiter]&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;Opening/refund state 必须恰好包含三个资金输出：Buyer、Seller、Arbiter。Seller 和 Arbiter 初始金额为 0，Arbiter 输出仍必须存在。Opening sequence 由 v4 返回，当前为 2；go-bitfs 不重写 sequence、locktime、手续费或脚本。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/002-%E8%B4%B9%E7%94%A8%E6%B1%A0%E5%BC%80%E6%B1%A0%E9%9C%80%E6%B1%82/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/002-%E8%B4%B9%E7%94%A8%E6%B1%A0%E5%BC%80%E6%B1%A0%E9%9C%80%E6%B1%82/</guid><description>&lt;h1 id="002--费用池开池需求"&gt;002 · 费用池开池需求&lt;/h1&gt;
&lt;h2 id="要解决什么"&gt;要解决什么&lt;/h2&gt;
&lt;p&gt;买方需要先准备一笔可供后续累计支付的 2-of-3 费用池，但不能因为卖方拒绝后续签名而把资金永久锁死。开池与 BitFS 文件购买无关：它不应知道报价、seed、文件块或价格。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/003-%E5%86%85%E5%AE%B9%E8%8E%B7%E5%8F%96%E8%AF%B7%E6%B1%82%E8%A7%84%E8%8C%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/003-%E5%86%85%E5%AE%B9%E8%8E%B7%E5%8F%96%E8%AF%B7%E6%B1%82%E8%A7%84%E8%8C%83/</guid><description>&lt;h1 id="003--v3-内容获取请求规范"&gt;003 · v3 内容获取请求规范&lt;/h1&gt;
&lt;p&gt;003 的业务字段保持原有报价、内容和交付期限语义，编码 major 提升为 3。最终授权固定绑定 pool &lt;code&gt;SpendTxID&lt;/code&gt;、base/target sequence、Seller 绝对累计金额、整数费率及 Buyer/Seller/Arbiter 公钥。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/003-%E5%86%85%E5%AE%B9%E8%8E%B7%E5%8F%96%E8%AF%B7%E6%B1%82%E9%9C%80%E6%B1%82/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/003-%E5%86%85%E5%AE%B9%E8%8E%B7%E5%8F%96%E8%AF%B7%E6%B1%82%E9%9C%80%E6%B1%82/</guid><description>&lt;h1 id="003--内容获取请求需求"&gt;003 · 内容获取请求需求&lt;/h1&gt;
&lt;h2 id="要解决什么"&gt;要解决什么&lt;/h2&gt;
&lt;p&gt;买方已经选中报价并拥有可用费用池后，需要向卖方提出“请交付这个确定内容”的请求。请求必须让卖方能够验证：买方选择了自己的哪份报价、使用哪个池的当前支付能力、选了哪个仲裁者、要种子还是某个文件块，以及最晚何时交付。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/004-%E5%86%85%E5%AE%B9%E4%BA%A4%E4%BB%98%E5%87%AD%E8%AF%81%E8%A7%84%E8%8C%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/004-%E5%86%85%E5%AE%B9%E4%BA%A4%E4%BB%98%E5%87%AD%E8%AF%81%E8%A7%84%E8%8C%83/</guid><description>&lt;h1 id="004--v3-内容交付凭证规范"&gt;004 · v3 内容交付凭证规范&lt;/h1&gt;
&lt;p&gt;004 编码 major 为 3，引用 003 的 &lt;code&gt;PaymentAuthorizationHash&lt;/code&gt; 并携带内容字节。Seller 对确定性 CBOR 交付条款签名；Buyer 验证内容哈希、报价、期限和 Seller 身份后，才构造 005 无签名状态并产生 detached Buyer signature。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/004-%E5%86%85%E5%AE%B9%E4%BA%A4%E4%BB%98%E5%87%AD%E8%AF%81%E9%9C%80%E6%B1%82/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/004-%E5%86%85%E5%AE%B9%E4%BA%A4%E4%BB%98%E5%87%AD%E8%AF%81%E9%9C%80%E6%B1%82/</guid><description>&lt;h1 id="004--内容交付凭证需求"&gt;004 · 内容交付凭证需求&lt;/h1&gt;
&lt;h2 id="要解决什么"&gt;要解决什么&lt;/h2&gt;
&lt;p&gt;卖方收到 003 后，需要交付种子本体或文件块本体。交付不能把报价、费用池、仲裁者和请求参数逐项回传；它只要明确回答“这是对哪一张买方请求的交付，以及交付的确切字节是什么”。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/005-%E7%B4%AF%E8%AE%A1%E6%94%AF%E4%BB%98%E8%A7%84%E8%8C%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/005-%E7%B4%AF%E8%AE%A1%E6%94%AF%E4%BB%98%E8%A7%84%E8%8C%83/</guid><description>&lt;h1 id="005--v3-累计支付规范"&gt;005 · v3 累计支付规范&lt;/h1&gt;
&lt;p&gt;005 是对 003 最终付款授权的正常履行消息。交易模板、费用、序号、输出和签名由 MultisigPool v4.0.0 唯一决定；go-bitfs 只传递授权哈希、无签名状态交易和独立 Buyer 签名。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/005-%E7%B4%AF%E8%AE%A1%E6%94%AF%E4%BB%98%E9%9C%80%E6%B1%82/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/005-%E7%B4%AF%E8%AE%A1%E6%94%AF%E4%BB%98%E9%9C%80%E6%B1%82/</guid><description>&lt;h1 id="005--累计支付需求"&gt;005 · 累计支付需求&lt;/h1&gt;
&lt;h2 id="要解决什么"&gt;要解决什么&lt;/h2&gt;
&lt;p&gt;买方验证 004 的内容后，才签出本次累计付款状态并交给卖方。费用池不为每个块独立扣一笔临时金额，而采用覆盖式的累计支付状态：同一池始终花费同一个基础输出，最新状态完整承接此前已付金额。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/006-%E8%B4%B9%E7%94%A8%E6%B1%A0%E5%85%B3%E9%97%AD%E9%9C%80%E6%B1%82/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/006-%E8%B4%B9%E7%94%A8%E6%B1%A0%E5%85%B3%E9%97%AD%E9%9C%80%E6%B1%82/</guid><description>&lt;h1 id="006--费用池关闭需求"&gt;006 · 费用池关闭需求&lt;/h1&gt;
&lt;h2 id="要解决什么"&gt;要解决什么&lt;/h2&gt;
&lt;p&gt;买方没有承诺必须购买多少内容，甚至可以一项也不买。因此买方不必请求卖方关闭，也不因卖方不作为而起诉；买方只需等待费用池到期并提交自己在 002 已取得的退款交易。关闭不是对报价、文件或交付重新争论。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/006-%E8%B4%B9%E7%94%A8%E6%B1%A0%E6%97%A0%E6%9D%A1%E4%BB%B6%E5%85%B3%E9%97%AD%E8%A7%84%E8%8C%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/006-%E8%B4%B9%E7%94%A8%E6%B1%A0%E6%97%A0%E6%9D%A1%E4%BB%B6%E5%85%B3%E9%97%AD%E8%A7%84%E8%8C%83/</guid><description>&lt;h1 id="006--v3-协商立即关闭规范"&gt;006 · v3 协商立即关闭规范&lt;/h1&gt;
&lt;p&gt;立即关闭由 MultisigPool v4 构造最终 sequence/locktime 的三输出无签名状态，Arbiter 输出存在且金额为 0。Buyer 返回无签名交易和 detached Buyer signature；Seller 验证后产生 detached Seller signature，并通过 &lt;code&gt;MergeArbitratedPoolBuyerSellerSignatures&lt;/code&gt; 返回完整最终交易。节点确认前不推进本地 accepted state。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/007-%E5%8D%96%E6%96%B9%E4%BB%B2%E8%A3%81%E6%8F%90%E4%BA%A4%E8%A7%84%E8%8C%83/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/007-%E5%8D%96%E6%96%B9%E4%BB%B2%E8%A3%81%E6%8F%90%E4%BA%A4%E8%A7%84%E8%8C%83/</guid><description>&lt;h1 id="007--v3-卖方仲裁提交规范"&gt;007 · v3 卖方仲裁提交规范&lt;/h1&gt;
&lt;p&gt;007 定义 Seller 依据买方最终付款授权请求 Arbiter detached signature 的约束。当前协议 major 为 3，费用池绑定 &lt;code&gt;bitfs.pool.v4&lt;/code&gt;，&lt;code&gt;ArbiterAmount = 0&lt;/code&gt;。&lt;/p&gt;</description></item><item><title/><link>https://63812707.go-bitfs.pages.dev/guide/protocol/007-%E5%8D%96%E6%96%B9%E4%BB%B2%E8%A3%81%E6%8F%90%E4%BA%A4%E9%9C%80%E6%B1%82/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://63812707.go-bitfs.pages.dev/guide/protocol/007-%E5%8D%96%E6%96%B9%E4%BB%B2%E8%A3%81%E6%8F%90%E4%BA%A4%E9%9C%80%E6%B1%82/</guid><description>&lt;h1 id="007--卖方仲裁提交需求"&gt;007 · 卖方仲裁提交需求&lt;/h1&gt;
&lt;h2 id="要解决什么"&gt;要解决什么&lt;/h2&gt;
&lt;p&gt;卖方持有买方已签出的 003 最终付款授权，但买方没有签出本次 005，或正常路径无法完成时，需要仲裁者补足 &lt;code&gt;Seller+Arbiter&lt;/code&gt; 的 2-of-3 签名。仲裁者不是买方或卖方的数据库副本，不能只收到一个哈希或 &lt;code&gt;SpendTxID&lt;/code&gt; 后再向任何一方查询材料。&lt;/p&gt;</description></item></channel></rss>