缓存关键数据:前端应该缓存用户的重要数据,如余额、持仓信息等,即使索引服务不可用,用户仍能看到最后已知的状态。
降级功能设计:当后端索引服务不可用时,DApp 可以提供基础功能,比如在数据检索服务不可用时,部分数据可以考虑直接利用 RPC 读取链上数据,可以保证用户看到已有部分数据的最新情况
这种 local-first 的 DApp 设计理念能够显著提高应用的韧性,避免在数据检索服务崩溃后的应用无法使用。在不考虑易用性的情况下,最好的 local-first 应用应该是要求用户在本地运行节点,然后使用类似 trueblocks 的工具在本地检索数据。关于去中心化检索或本地检索的一些讨论,可以参考推文Literally no one cares about decentralized frontends and indexers。
四、写在最后Goldsky 六小时宕机事件为生态敲响了警钟。虽然区块链本身具有去中心化和抗单点故障的特性,但构建在其上的应用生态系统仍然高度依赖中心化的基础设施服务。这种依赖为整个生态系统带来了系统性风险。
本文简单介绍了早有盛名的去中心化检索服务 TheGraph 为什么在如今并没有被广泛使用,特别讨论了 GRT 代币经济学带来的一些复杂性。最后,本文讨论了如何构建更加健壮的数据检索基础设施,笔者鼓励开发者使用 ponder 自托管的数据检索开发框架作为应急响应选项,同时也介绍 ponder 良好的商业化路径。最后,本文讨论 local-first 的开发理念,鼓励开发者构建在无数据检索服务下仍可使用的应用。
从目前来看,不少 Web3 的开发者都意识 到了数据检索服务的单点故障问题,GCC 希望更多开发者关注这一基础设施,并尝试构建去中心化的数据检索服务或者设计一套框架使得 DApp 前端在无数据检索服务的情况仍可运行。
