加密公地悲剧系列:Polymarket 的数据索引之殇(6) / BTC123 | 区块链信息行情第一站

加密公地悲剧系列:Polymarket 的数据索引之殇(6)

08-07 , 16:11 分享新闻

ponder 就是用了类似隔离理论的方法:

  1. 首先,ponder 的部署仍需要一定的知识,开发者在部署过程中需要提供 RPC 、数据库等外部依赖。

  2. 同时在部署完成后,开发者需要持续运维 ponder 应用,比如使用 proxy 系统进行负载均衡避免数据请求影响 ponder 在后台线程内检索链上数据。这些对于一般的开发者来说都稍有复杂。

  3. 目前 ponder 在内测全自动部署服务marble,用户只需要将代码交付给该平台就可以实现自动部署。

显然这是一种对「隔离理论」的应用,这些不愿意自己运维 ponder 服务的开发者被隔离出来,这些开发者可以通过付费获得 ponder 服务的简化部署。当然,marble 平台的出现也没有影响其他开发者免费使用 ponder 框架并且自托管部署。

ponder 和 Goldsky 的受众?

  1. ponder 这种完全没有供应商依赖的公共物品比其他依赖供应商的数据检索服务在开发小型项目时更加流行。

  2. 某些运营有大型项目的开发者并不一定选择 ponder 框架,因为大型项目往往要求检索服务具有充分的性能,Goldsky 等服务提供商往往提供了充分的可用性保障。

两者都存在一些风险点,从最近的 Goldsky 事件来看,开发者最好自行维护一套自己的 ponder 服务,以随时应对可能的第三方服务宕机。以及使用 ponder 时可能要考虑 RPC 返回数据的有效性问题,不久前 safe 就报告了一次因为 RPC 返回错误数据导致检索器崩溃的情况。虽然没有直接证据表明 Goldsky 事件也与 RPC 返回无效事件有关,但笔者怀疑 Goldsky 可能也遇到了类似事件。

local-first 开发理念

Local-first 是过去几年一直被人讨论的话题。简单来说,Local-first 要求软件具有以下功能:

  1. 离线工作

  2. 跨客户端协同

目前大部份与 local-first 相关的技术讨论都会涉及到 CRDT(Conflict-free Replicated Data Type) 技术,所谓 CRDT 是一种无冲突的数据格式,该格式允许用户在多端操作时自动合并冲突以保持数据的完整性。一种简单的看法是可以将 CRDT 视为一种带有简单共识协议的数据类型,在分布式情况下,CRDT 可以保证数据的完整性和一致性。

但在区块链开发中,我们可以放宽上述 Local-first 对软件要求的限制。我们仅要求在没有项目开发者提供的后端索引数据时,用户在前端仍可以保持最低限度的可用性。同时,local-first 对跨客户端协同的要求实际上已经由区块链解决了。

在 DApp 的场景下,local-first 理念可以这样实现: