# 归档中心设计和实现 ## 概述 随着区块链的运行,存储区块数据的文件会逐渐增长,占用大量的磁盘空间。为减少`冷数据(低频使用的旧的区块数据)`的磁盘占用,`长安链·归档中心`v1.0.0版本提供了数据归档备份,归档数据数据查询,已归档数据扫描清理一整套解决方案 ## 设计 ### 整体流程 - 用户使用`CMC`工具,发送归档命令。该指令从链上查询出区块,将该区块数据通过GRPC传送到`归档中心`(对应下图步骤1,2) - 用户可以通过`CMC`工具在`归档中心`查询已经归档数据(如步骤3),也可以通过http接口查询(如步骤4) - 用户使用`CMC`工具的清理数据命令,该命令会根据传入的区块高度参数来(如图步骤5)计算出一个合适的区块高度,然后清理该高度以下的区块文件 - 用户使用`SDK`进行区块/交易查询时,`SDK`会自动先去归档中心查询(如果打开了归档中心的配置,且sdk_config.yml中的archive_center_query_first配置设置为true),查不到数据会到链上查询(如图步骤7) - 为进一步压缩已经归档到归档中心的文件数据,归档中心提供了压缩数据的功能(如图步骤6)