一、快照是什么
全节点同步要逐块重放整条历史账,算出此刻哪些币还没花。比特币核心提供了一条抄近路的路:dumptxoutset 在一个确定的块上停下来,把当前全部未花费输出连同链元数据写成一个文件;loadtxoutset 做反向操作,读回这样的文件,让新节点直接落座这本余额账。
余额账和原始区块是两套账本。区块是每一笔支出的流水原件;余额账只是流水重算之后的余单——只记什么钱还躺着,不记钱是怎么走到这一步的。快照导出的是后者。

二、导出模式
type 参数给两种写法。latest 导出当前链头的快照;rollback 先把节点的链状态临时倒退回历史上的某个块——可以配合 rollback 命名参数写明高度或哈希——再导出那个时点的余额账。参数都省略时,程序退回最近的、当前版本 loadtxoutset 能加载的有效快照块。
警告同样写在参数说明里:距链头越远,回退耗时越长,调用方要相应放宽 RPC 超时。导出过程占的资源与日常同步同级,机器忙时错峰执行。
三、六个返回字段
导出成功返回一列统计:coins_written 是写出的输出条数;base_hash 与 base_height 钉住这份快照站在哪个块上;path 是落盘位置;txoutset_hash 是按共识规则对内容算出的哈希,校验与比对都靠它;nchaintx 交代截至基准块链上一共处理过多少笔交易。校验环节以 txoutset_hash 为凭,数字对得上,内容才谈得上可信。
四、读取端怎么信
loadtxoutset 拿到的只是一个文件——谁写的、有没有被改,字节本身不回答。信任的代价因此被摊到加载那一刻:节点按共识规则逐条重建这些输出的合法性,把哈希一路算到底,与 txoutset_hash 比对,对不上整个快照直接拒收。
这套设计把信任从逐块验史搬到一次全量重算。省下的是一遍遍重放历史的时长;没省的是数学审查——每一枚币该不该躺在账上,照样按规则推一遍。
五、三条边界
边界其一:能加载哪个时点由当前版本的兼容能力决定,不是任意高度都能凭空导出一本账;版本间的可加载范围以发行说明为准。其二:这份文件里没有交易历史,拿快照起家的节点知道钱的状态,说不出钱的故事。其三:加载之后节点照常从基准块往上追块继续验证,快照只是起点不是终点。
六、用途图谱
除新机器快速起节点外,快照在研究场景里还有另一条线:复算某个时点的链上状态做对照;给对账脚本喂数据;审计场景拿它钉存证。共同前提是每一步都带上 txoutset_hash 与基准块,让任何人可复算、可质疑。
七、与钱包备份分家
UTXO 快照不是钱包备份。它不装私钥、不装交易历史,导不出你的地址归谁管,也导不回任何一笔转账——它只是全网余额在某一秒的影子,与谁拥有这些钱无关。拿快照当备份、以为文件在币就在,是把全网账本与个人钥匙混成了同一本。
八、收尾清单
自己节点导出的快照默认没有社区公证,对外分享时附上 base_hash 与生成方式,让对方能按共识规则复算。归档的快照会随时间过期:账本一直在长,拿历史快照答今天的查询只会漏账,用途限于当时留档或调试假设。落盘位置由 path 字段给出绝对路径,文件体量随链上未花费输出的数量增长,存放前给磁盘留出余量;传输环节加一次哈希核对,避免网络截断产生的半截文件在加载时才报错。
风险提示:本文仅为技术机制科普,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。