Bitcoin Core 0.21.0 发布说明详解:Signet、Taproot 共识、描述符钱包与 Tor v3
本文以 Bitcoin Core 官方发布说明 doc/release-notes/release-notes-0.21.0.md 为主体,系统梳理 0.21.0 版本的升级方式与兼容性约束、P2P 网络层重大变更(未广播交易跟踪、Tor v3、Signet、wtxid 中继、Taproot 共识规则)、RPC 与配置项变更,以及实验性的描述符钱包(Descriptor Wallets)。结合仓库源码(如 src/txmempool.h、src/signet.cpp、src/bitcoin-cli.cpp 等),可以帮你准确掌握该版本的每项行为变化、升级注意事项和落地验证方法。
一、升级方式与兼容性约束
0.21.0 是一个包含新功能、缺陷修复、性能改进和翻译更新的常规大版本发布。官方下载渠道为版本发布页(0.21.0 归档下载地址,见原文档中的 bitcoincore.org/bin 链接)。
1.1 升级步骤
从旧版本升级的标准流程:
- 关闭正在运行的旧版本节点,等待其完全退出(某些情况下可能需要几分钟);
- 按平台执行更新:
- Windows:运行安装程序;
- macOS:直接覆盖
/Applications/Bitcoin-Qt; - Linux:覆盖
bitcoind/bitcoin-qt可执行文件。
从已 EOL(停止支持)版本直接升级是可行的,但如果数据目录需要迁移,首次启动可能耗时较长;旧版本的钱包文件仍受支持。
1.2 支持的操作系统
- 经过支持并充分测试的系统:使用 Linux 内核的操作系统、macOS 10.12+、Windows 7 及更新版本;
- 其他类 Unix 系统可能可用,但测试频率较低,不建议在生产中使用不受支持的系统;
- 从 0.20.0 起不再支持 macOS 10.12 以下版本;
- 注意:该版本在激活 macOS "dark mode" 时界面外观不会随之切换(发布说明明确指出了这一已知限制)。
1.3 peers.dat 文件格式变更(向后不兼容)
节点已知 peers 持久化在 peers.dat 中。为容纳 Tor v3 及其他 BIP155 地址,0.21.0 以向后不兼容的方式修改了该文件格式:
- 若文件被 0.21.0 或更新版本写入,旧版本将无法读取;
- 降级回旧版本时,旧版本会记录错误信息
"Incorrect keysize in addrman deserialization",随后按"文件缺失"处理——继续正常运行并新建一个空的 peers.dat。
因此在混合版本网络中升级/降级节点时,需要预期到地址簿数据的这一行为。
二、P2P 与网络层重大变更
这是 0.21.0 变化最集中的部分,直接决定了节点的中继、隐私与抗攻击行为。
2.1 未广播交易集合(Unbroadcast Set):mempool 跟踪本地提交交易
0.21.0 起,mempool 会跟踪通过钱包或 RPC 提交的交易是否已成功广播。节点每 10–15 分钟尝试重新公告尚未广播成功的交易,直到某个 peer 通过 getdata 请求它,或该交易因其他原因从 mempool 中移除。通过 P2P 中继提交给节点的交易不纳入该跟踪范围。
从源码看,该集合在 src/txmempool.h 中以成员 m_unbroadcast_txids 实现,并提供 AddUnbroadcastTx、RemoveUnbroadcastTx、GetUnbroadcastTxs、IsUnbroadcastTx 等访问接口(第 284、565–590 行附近);RPC 侧在 src/rpc/mempool.cpp 中将其暴露给 getmempoolentry/getrawmempool(unbroadcast 字段)与 getmempoolinfo(unbroadcastcount 字段)。
这一机制的意义在于:此前钱包交易的中继保证依赖钱包自身周期性 rebroadcast,节点会把"某地址有未确认钱包交易"这类信息泄露给其连接的全部 peer;0.21.0 把初始广播的确认职责移交给 mempool 层,钱包 rebroadcast 频率随之从约 15 分钟一次降低到 12–36 小时一次,显著降低钱包活动可关联性(对应发布说明中 Wallet 章节与 changelog 的 Privacy 分类,如 #18038、#18861、#19109)。
2.2 peer 交易公告上限:100000 → 5000
单个 peer 已公告且节点考虑请求的交易集合上限从 100000 降至 5000,达到上限后后续公告被忽略。若需要向节点投递(非常)大批量交易,可对该 peer 授予 relay 网络权限作为例外,例如对 localhost:
-whitelist=relay@127.0.0.1
2.3 Tor v3 隐藏服务与 BIP155 地址中继
- 本版本完整实现 BIP155:支持 Tor v3 隐藏服务,并向其他 peer 中继(rumor)BIP155 地址格式;Tor v2 仍完全受支持,但 Tor 网络正在推进 v2 弃用;
- 通过
-listenonion自动创建的 onion 服务改为 Tor v3。旧的 v2 密钥(如有)保留在数据目录的onion_private_key文件中,Bitcoin Core 不再读取它,可在确认无用后删除。v3 服务密钥保存在新文件onion_v3_private_key; - 若想强制沿用已弃用的 v2 服务(不推荐),可将 v2 密钥覆盖到 v3 文件,例如
cp -f onion_private_key onion_v3_private_key。
配套文档见 doc/tor.md。
2.4 锚点连接(anchors.dat):抗重启导致的地址集替换
节点关闭时把两个 outbound block-relay-only peer(即"锚点")的网络地址写入 anchors.dat;下次启动时读取该文件并尝试重连同样两个 peer。目的是防止攻击者利用节点重启造成 peer 集合完全更换,作为日食攻击(eclipse attack)手段之一(#17428)。
2.5 BIP157 块过滤器服务端支持
启用以下两个配置后,节点会向网络中的 peer 提供 BIP157 压缩过滤器(compact filters):
-blockfilterindex=1 -peerblockfilters=1
注意 -blockfilterindex(构建本地索引)与 -peerblockfilters(对 peer 提供过滤器服务)是两个独立开关,需同时开启才能实现"对外的 BIP157 服务"。
2.6 Signet:BIP325 签名测试网
0.21.0 在 mainnet、testnet、regtest 之外新增 signet 网络。Signet 是中心化控制的测试网络,比旧 testnet 更可控、更可预测:
- 官方维护一个公共 signet,用
-signet选择; - 也可以创建个人 signet:
-signetchallenge指定挖矿挑战(hex),-signetseednode指定种子节点; - Taproot 规则在 signet 上已经激活,是实验 Taproot 的推荐环境。
源码层面,signet 共识校验(从 coinbase witness 提交段提取 signet_solution、计算修改后 Merkle 根并验证签名)实现在 src/signet.cpp;-signetchallenge/-signetseednode 的解析与参数校验在 src/chainparams.cpp(第 101–111 行附近)完成,其中明确要求 challenge 只能是单个 hex 值。
2.7 wtxid 中继(BIP339)
节点间协商后,交易使用 wtxid 而非 txid 进行公告(#18044)。这是为 Taproot 铺路的 P2P 层变更:UTXO 花费者无需在公告阶段就构造完整签名交易。
2.8 Taproot 共识规则(BIP341/BIP342)
本版本实现 Taproot 共识规则(Schnorr 签名、Taproot 输出、Tapscript),但不在 mainnet 上激活;共识实现事实可参考 changelog 中的 #19953(Implement BIP 340-342 validation)与 #18267(Signet)。实验建议在 signet 上进行,因为其规则已在 signet 激活。
三、RPC 变更
3.1 字段新增与行为变化
| RPC | 变化 |
|---|---|
getpeerinfo |
新增 network 字段(peer 连接所用网络类型:"ipv4"、"ipv6" 或 "onion");新增 last_block 与 last_transaction 字段(来自该 peer 的最后一个块/最后一条有效交易的 UNIX 时间戳);新增 connection_type 字段(六种连接类型之一,详见该 RPC 帮助文本) |
getnetworkinfo |
新增 connections_in 与 connections_out 字段(入站/出站连接数),与原有总数字段 connections 并存 |
getmempoolinfo |
新增 unbroadcastcount 字段:等待初始广播被 peer 确认的交易数 |
getmempoolentry、getrawmempool verbose=true、getmempoolancestors、getmempooldescendants |
新增 unbroadcast 布尔字段 |
| 所有暴露交易版本号的 RPC | 版本号按无符号 32 位整数输出(与共识逻辑一致);> 2 仍属非标准交易。注意 joinpsbt 选择最高版本号合并 PSBT,此变化同样影响它 |
testmempoolaccept |
若交易能通过验证,额外返回 vsize 与含 base 费的 fees 对象 |
3.2 弃用字段(本版本仍可显式开启,下个大版本移除)
getpeerinfo的banscore字段:默认不再返回,用-deprecatedrpc=banscore恢复;getpeerinfo的addnode字段:默认不再返回,用-deprecatedrpc=getpeerinfo_addnode恢复;官方建议改用connection_type(addnode 为 true 时其值为manual);getpeerinfo的whitelisted字段:默认不再返回,用-deprecatedrpc=getpeerinfo_whitelisted恢复;官方建议改用permissions字段判断权限。
3.3 PSBT / 资金相关
walletcreatefundedpsbt:手动选定输入不足以覆盖输出+手续费时,RPC 报错Insufficient funds;新增add_inputs选项允许自动补充输入(#16377);fundrawtransaction:支持add_inputs选项,设为false时禁止自动添加输入,资金不足则直接失败。
3.4 新增 RPC:getindexinfo
getindexinfo 返回节点当前运行的索引(如 txindex、blockfilterindex)及其同步状态与高度;接受可选参数 index_name 仅查询指定索引。实现位于 src/rpc/node.cpp 的 getindexinfo() 函数(第 358 行附近),归类于 util 命令组,帮助文本中给出 getindexinfo txindex 等示例。
四、配置项变更
4.1 更新/新增/移除的配置
- ZeroMQ 多监听:同一 ZMQ 通知(如
-zmqpubhashtx=address)现在可以指定多次,把同一通知发布到多个 ZMQ socket; -banscore已移除:修改"断开并惩罚不良 peer"默认阈值的该选项随 0.20.1 与本版本对 misbehaving peer 处理机制的调整一并删除,细节见 0.20.1 发布说明中 "Changes regarding misbehaving peers"(#19464);-debug=db已移除:该日志分类在 0.20 弃用(由-debug=walletdb取代,以区别于coindb),现正式删除(#19202);download权限从noban中分离:出于兼容noban隐含download,但未来可能改变;详见-whitebind与-whitelist的帮助文本(#19191);- netmask 校验收紧:0 位之后还有 1 位的掩码(如 255.0.255.255,1 位不连续)不再被接受——按 RFC 4632 属非法。影响
-rpcallowip、-whitelist配置与setbanRPC(#19628); -blocksonly完全禁用手续费估算(#18766);- 新增
startupnotify:指定 Bitcoin Core 完成启动序列后执行的命令(#15367),常用于服务编排/健康检查。
钱包与 GUI 相关配置变化见下文钱包与 GUI 章节。
4.2 命令行工具变更(Tools and Utilities)
bitcoin-cli -netinfo:网络 peer 连接仪表盘,数据来自getpeerinfo与getnetworkinfo,以人类可读格式呈现;可选 0–4 的整数参数逐级增加详情(当前实现还支持outonly参数只看出站 peer,以及help子命令,见 src/bitcoin-cli.cpp 第 162、677–755 行附近)。帮助文本建议配合 Linux 的watch(1)使用,例如watch --interval 1 bitcoin-cli -netinfo 4;bitcoin-cli -generate:等价于generatenewaddress+generatetoaddress的客户端出块命令,用于命令行测试(regtest 场景),是旧generateRPC 的客户端版本(#19133);bitcoin-cli -getinfo:多钱包模式下(未用-rpcwallet指定钱包时)会显示每个已加载钱包的名称与余额;其connections字段从单一整数扩展为含in、out、total三个数值的 JSON 对象(#19405)。
五、钱包变更(重点)
5.1 常规行为变化
getaddressinfo弃用收尾:0.20 预告的两处弃用在本版本兑现——label字段移除;labels不再返回含name/purpose键值对的 JSON 对象,自 0.20 起它返回标签名称的 JSON 数组(#19200);- 钱包 rebroadcast 频率从约 15 分钟一次降为 12–36 小时一次,配合 mempool unbroadcast set 保持同等初始广播保证(见 2.1 节,#18038);
sendtoaddress与sendmany支持可选verbose=True,额外返回所发交易的手续费原因(#19501);- keypool 为空时,钱包也可以创建无找零交易(此前会失败,#17219);
-salvagewallet启动选项移除:相应功能迁移为bitcoin-wallet工具的salvage子命令(#18918);-zapwallettxes移除:该选项最初用于拯救受 malleability 攻击影响的钱包,后来被用于对未广播 RBF 的交易做手续费 bump,现已被 abandon transaction 功能取代(#19671);- 未加载钱包却调用钱包 RPC 时的错误码从
-32601(method not found)改为-18(wallet not found)(#20101); - 钱包现在默认启用 APS(avoid partial spends),前提是 APS 与不用 APS 的手续费差异不超出阈值;阈值由新增配置
-maxapsfee调整:默认 0(即两者手续费相同才启用 APS),设为 -1 则禁用 APS(除非同时设置了-avoidpartialspends)(#14582)。该选项在 src/wallet/init.cpp 第 61 行注册,读取逻辑在 src/wallet/wallet.cpp 第 3020 行附近。
5.2 不再自动创建默认钱包
0.21.0 起,Bitcoin Core 启动时不再自动创建新钱包。行为变为:
- 加载命令行或
bitcoin.conf/settings.json中-wallet选项指定的既有钱包; - 默认额外加载顶层无名("")钱包;
- 若指定的钱包不存在,只记录警告,而不会像旧版本那样创建带新密钥/新地址的钱包。
创建新钱包的正式途径:GUI(创建入口更醒目)、bitcoin-cli createwallet、bitcoin-wallet create,或 createwallet RPC(#15454、#20186)。
5.3 实验性:描述符钱包(Descriptor Wallets)
官方明确声明:描述符钱包仍是实验性功能,并非所有预期功能可用,可能存在缺陷,且当前行为未来可能变化。
概念与动机:0.21 引入一种新钱包类型——描述符钱包。它用输出描述符存储 scriptPubKey 信息,与 Legacy 钱包"用密钥隐式生成 scriptPubKey/地址"的结构相对。因为从"基于密钥"转向"基于脚本",Legacy 钱包中许多令人困惑的行为在描述符钱包中不可能发生;它对"属于钱包(mine)"的定义更简单直观,watch-only 与导入语义也完全不同。
该引入不影响既有钱包:现有钱包行为不变;新建的 Legacy 钱包(仍是默认类型)行为与旧版本一致。两类钱包的差异主要体现在导入/导出与 watchonly 功能上。
创建描述符钱包
描述符钱包不是默认类型:
- GUI 的 Create Wallet 对话框新增复选框,勾选即创建描述符钱包;
createwalletRPC 新增descriptors参数,设为true创建描述符钱包,否则创建 Legacy 钱包。
IsMine 语义
IsMine 决定某脚本(及其输出)是否属于钱包。Legacy 钱包的定义是"钱包能否签发一笔花费该输出的输入";由于一把密钥可参与多种脚本,该定义会导致大量意料之外的脚本被视为钱包所有——典型如:把 P2PKH 地址变形为 P2WPKH 地址后,Legacy 钱包即使用户从未请求过该新类型地址,也仍会把发给它的输出判为"mine"。
描述符钱包中,描述符显式指定钱包拥有的脚本集合;由于描述符是确定性且可枚举的,用户能确切知道钱包会监视哪些脚本,IsMine 实现也简单得多;描述符钱包只监视从钱包显式请求过的地址。对绝大多数用户,此变化基本无感。
导入与导出
Legacy 钱包可导入原始脚本与密钥,这些导入对象与自生成密钥分开处理,使 IsMine 逻辑必须区分 spendable 与 watchonly,复杂度高。
描述符钱包只接受完整描述符的导入,导入后与钱包自生成的描述符同等对待,IsMine 无需再区分 spendable/watchonly。为此新增了 importdescriptors RPC(语法类似 importmulti)。由于两类钱包的存储/导入机制不同,既有导入 RPC 在描述符钱包上被禁用,且本版本尚未提供描述符钱包的导出 RPC。
描述符钱包中禁用的 RPC:
importprivkeyimportpubkeyimportaddressimportwalletdumpprivkeydumpwalletimportmultiaddmultisigaddresssethdseed
watch-only 语义:从"钱包内混合"到"整钱包 watchonly"
Legacy 钱包中私钥与仅监视脚本共存,监视部分不计入正常余额,许多 RPC 需要显式 include_watchonly 才能使用(容易被遗漏)。描述符钱包改为按钱包粒度判定 watchonly:取决于创建时是否禁用私钥,钱包整体要么是 watchonly、要么不是。
发布说明特别指出两个注意事项:
- 若一个"启用私钥"的描述符钱包包含缺少的多私钥描述符(例如只有一个私钥的
multi(...)),该钱包将无法签名并广播交易,只能走 PSBT 流程;GUI 的 Send、sendtoaddress等入口仍然存在但不可用; - 若钱包中同时存在单密钥描述符(如
wpkh(...))与上述多密钥描述符,会出现"部分交易可发、部分不可发"的混乱局面(取决于 coin selection 选了哪些输入)。官方不把这视为受支持的用法:多签应放在独立钱包中(目前也尚无带私钥的描述符导出功能)。
BIP 44/49/84 推导路径
改用描述符后,Bitcoin Core 的默认推导路径遵循 BIP 44/49/84 规范;不同推导路径的描述符可正常导入。
SQLite 数据库后端
描述符钱包的钱包文件使用 SQLite,而非 Legacy 钱包的 Berkeley DB。这会打破任何直接操作钱包文件的外部工具兼容性——但发布说明指出,迁移到描述符本身已经在破坏兼容。源码层面,钱包数据库创建入口在 src/wallet/interfaces.cpp(MakeWalletDatabase,第 632 行附近),描述符 SPKMan 的导出/签名代码在 src/wallet/export.cpp 等处(DescriptorScriptPubKeyMan)。
5.4 钱包 RPC 变更
upgradewalletRPC 取代-upgradewallet命令行选项(#15761);settxfee在费用高于-maxtxfee时直接失败(钱包本就拒绝高于-maxtxfee的交易)(#18467);fee_rate参数:sendtoaddress、sendmany、fundrawtransaction、walletcreatefundedpsbt及新实验性sendRPC 引入以 sat/vB(聪/虚拟字节) 计价的费用率参数fee_rate。fundrawtransaction/walletcreatefundedpsbt中旧的feeRate选项(BTC/kvB)暂保留但预计很快弃用;相关 RPC 的错误信息从 BTC/kB 更新为 sat/vB,帮助文档中 BTC/kB 更正为 BTC/kvB(#20305、#11413);bumpfee的fee_rate单位从 BTC/kvB 改为 sat/vB——官方明确这是破坏性 API 变更,但相对无害:两种单位相差 100000 倍,若误按 BTC/kvB 传入,费率会因"过低"而报错;最坏情况是交易以 1 sat/vB 发出,但由于显式费率时默认启用 RBF(BIP125),事后可 bump(#20305);estimate_mode参数在bumpfee、fundrawtransaction、sendmany、sendtoaddress、send、walletcreatefundedpsbt中变为大小写不敏感;bumpfee的 options 中confTarget更名为conf_target(#11413);fundrawtransaction与walletcreatefundedpsbt使用lockUnspents时,现在会同时锁定手动选择的币(此前只锁自动选中的)。注意锁定的币不会被自动 coin selection 使用,但可手动选择(#18244);- 新增
sendRPC:语法类似walletcreatefundedpsbt,支持 coin selection 与自定义费率的实验性"终极 send RPC",后续版本可能变更(#16378)。
六、GUI 变更
- 在 GUI 中创建或加载的钱包将自动写入启动加载列表,下次启动自动加载,无需手动重新加载。列表存于
<datadir>/settings.json,与命令行/bitcoin.conf中的-wallet=设置叠加生效;在 GUI 中卸载的钱包会从该列表移除,下次启动不再自动加载(#19754); - GUI Peers 窗口不再显示 "Ban Score" 字段(与 0.20.1 及本版本对 misbehaving peer 处理的变化一致,#19512)。
七、底层(Low-level)变更
sendtoaddress的以下错误码从-4改为-6,以与sendmany保持一致:- Insufficient funds
- Fee estimation failed
- Transaction has too long of a mempool chain
sendrawtransaction超过maxfeerate时的错误码从-26改为-25,错误串从 "absurdly-high-fee" 改为 "Fee exceeds maximum configured by user (e.g. -maxtxfee, maxfeerate).";testmempoolaccept的reject-reason相应从absurdly-high-fee改为max-fee-exceeded。钱包与 rawtransaction RPC 之间关于超出最大费率的错误信息统一为同一措辞(#19339)。
八、测试相关变更
- BIP 325 默认 signet 可在测试框架中启用:通过
-chain=signet或-signet;-signetchallenge与-signetseednode用于启用自定义 signet; - 新增
generateblockRPC:允许 regtest 模式的测试者生成由自定义交易集合构成的块(#17693)。
九、变更日志概览(0.21.0 change log 分类摘录)
完整逐条清单见 doc/release-notes/release-notes-0.21.0.md 的 "0.21.0 change log" 章节,共覆盖 Consensus、Policy、Mining、Privacy、Block and transaction handling、P2P protocol and network code、Wallet、RPC and other APIs、GUI、Build system、Tests and QA、Miscellaneous、Documentation 等分类、数百个 PR。按主题归纳的关键条目:
- 共识:#18267 BIP-325 Signet、#19953 BIP 340–342(Schnorr/Taproot/Tapscript)验证实现;
- 隐私:#18038 mempool 跟踪本地提交交易、#18861 不响应"待公告"交易的 GETDATA、#19109 仅允许 getdata 最近公告的 inv;
- P2P/网络:#19988 交易请求逻辑重构(5000 上限)、#19954 BIP155 完整实现与 TORv3 升级、#20284 保证旧版本不解析新格式 peers.dat、#17428 重启保留 block-relay 连接、#19891/#19697 GETADDR 缓存防拓扑泄露、#19670 保护 localhost 与 block-relay-only peer 免于逐出;
- 钱包:#16528 原生描述符钱包(DescriptorScriptPubKeyMan)、#19077 SQLite 作为替代钱包数据库并用于新描述符钱包、#15454/#20186 移除默认钱包自动创建、#14582 APS 默认启用(
-maxapsfee)、#19754 启动时重新加载之前加载过的钱包、#16378 实验性sendRPC; - RPC/CLI:#19550 索引列举 RPC(
getindexinfo)、#19643-netinfo仪表盘、#19133bitcoin-cli -generate、#19405getnetworkinfo/-getinfo连接方向拆分、#20305fee_ratesat/vB 参数; - 构建系统:C++17(fuzz 构建)、Multiprocess 构建支持、llvm-cov、MSan、Windows 7 最低版本强制、secp256k1 子树更新(含 BIP340 支持与 endomorphism)等;
- 测试与 QA:#18011 以 nanobench 替换基准测试框架、大量 fuzzing 用例扩充、signet witness commitment 解析测试(#20004)等。
十、升级检查清单
结合上文,从 0.20.x 升级到 0.21.0 时建议逐项确认:
- 回滚预案:了解
peers.dat新格式导致的降级行为(旧版本丢弃地址簿并报错); - 脚本/RPC 兼容性:检查是否依赖
getpeerinfo的banscore/addnode/whitelisted字段(默认已移除)、sendrawtransaction的-26错误码(现为-25)、bumpfee的confTarget/BTC/kvB 费率单位(现为conf_target/sat/vB)、-getinfo的connections字段结构(现为 JSON 对象); - 配置清理:删除
-banscore、-salvagewallet、-zapwallettxes、-debug=db等已移除项;核对-rpcallowip/-whitelist/setban中的网段是否含非连续掩码; - Tor 运维:确认
onion_v3_private_key生成正常,按需处理旧onion_private_key; - 钱包运维:不再依赖"首次启动自动建钱包"行为,改用
createwallet/bitcoin-wallet create;若使用描述符钱包,接受其实验性状态、SQLite 文件格式与被禁用的导入/导出 RPC 集合。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0624
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00