
先明确:手机实际保存的是什么
讨论安卓区块链存储,首先要区分本地节点数据库与通过网络取得的查询结果。能够显示链上记录,不等于手机保存了完整区块链,也不等于应用在本地验证了全部数据。
以下讨论适用于节点存储与验证的通用原理。不能仅凭以太坊或比特币的协议说明,认定某个安卓应用支持完整节点、特定同步方式或历史查询功能。

问题一:为什么不同模式的空间需求差异大
以太坊节点文档区分全节点、归档节点和轻节点:全节点验证区块及状态;归档模式保留更丰富的历史状态;轻客户端通过较少的本地数据配合外部请求完成验证。完整以太坊节点还涉及执行与共识两类客户端。

因此,评估安卓端空间需求前,需要先确定保存的是区块、当前状态还是历史状态。不能把不同模式的占用混为一谈,也不能给所有应用套用统一容量数字。
问题二:减少本地存储是否影响历史查询
当前状态查询与过去某一时点的状态查询并非同一需求。裁剪数据可以减少存储负担,但不能据此认为任意历史状态都能立即从本地读取。
如果应用需要历史查询,应明确数据来自本地保留、重新计算还是外部服务。具体可查询范围和恢复条件取决于客户端实现,不能将一种节点的能力直接套用到另一种节点。
问题三:轻量存储能验证到什么程度
比特币开发文档解释了区块头、前一区块哈希与默克尔树的关联。轻量验证可以利用区块头和中间哈希,检查某笔交易是否被包含在对应区块中,而不必为这项检查下载整个区块。
但证明交易被包含,不等于独立检查了全部交易规则。理解安卓端的轻量方案时,应分别考察它保存哪些数据、验证哪些证明,以及哪些信息仍依赖其他节点。不同链的轻客户端机制也不能视为完全相同。
问题四:使用远程接口是否就没有存储问题
远程接口可以把主要节点数据留在服务端,但存储负担的转移不代表验证责任也已解决。直接显示接口结果,与取得证明后在本地验证,是不同的信任方式。
判断方案是否符合用途,可以围绕三个问题展开:需要当前数据还是历史数据,是否要求本地独立验证,外部服务不可用时还能完成哪些功能。操作系统名称本身不足以回答这些问题。