另外,容器的更新虽然只有一个执行线程,但 DFINITY 可以允许应用并行地执行很多个容器。这是因为,在 DFINITY 中不同容器具有不同功能,一个应用会涉及到多个容器,有些容器可能是数据容器,有些可能是信任容器等,容器之间是互相调用的关系,在应用更新时,也互不影响。 除此,DFINITY 对「需要更新容器状态的更新请求」和「会修改容器状态的查询请求」进行了区分。后者不会对内存进行永久更改。这样一来,在任何给定时间,容器内可以有任意数量的并发线程来处理查询调用。这些查询调用针对最后确定的状态根中记录的内存快照运行。当进行跨容器更新调用时,如果该调用发生阻塞,DFINITY 会允许将执行线程移至新的更新调用。 贴近传统互联网的开发体验和优于传统互联网的特性不知大家是否发现,上文中 Dominic 对于 DFINITY 优势的叙说主要面向开发者群体。这皆因公链 B2D2C 的传导路径。在底层基础设施的展业过程中,得开发者,则得天下。而对于 DFINITY 而言,征服「小撮」其他公链开发者只是一小步,「征用」广大传统互联网开发者才是一大步。 我们询问了几位兼具互联网和区块链开发经验的老手,他们选择某个底层最核心的考虑要素。在我们收集到的答案中,开发门槛(包括语言、环境、中间件)和迁移成本是高度重叠的两点。关于在 DFINITY 上的开发体验,几位开发者也有话要说。 1. DFINITY 通过简化技术栈和简化开发存储,大幅降低了开发难度。DFINITY 核心开发者 Paul 对此进行了详细解释:」程序员在传统互联网编程时非常复杂,因为很多传统技术都被可靠性和安全性所局限,但 DFINITY 在将这两个问题有效解决后,很多中间件不再必要,所以通过简化传统的技术栈就可以有效降低开发难度(注:技术栈一般来指是指将 N 种技术互相组合在一起,作为一个有机的整体来实现某种功能)。更进一步的简化在于存储方面。从前由于存储的不稳定性,我们需要在硬盘上做出备份,但这完全没有必要,最新的硬件技术已经可以解决这样的问题。DFINITY 在这个领域进行了较大开拓并发布了数据持久化方案。这个方案使开发者不需要再担心持久化问题,只要程序被写出并没有被删除,它将会一直运行。这从逻辑上对开发者来讲是一个巨大的简化,他们不再把程序想像成一个存在于复杂环境中的应用,而可以在虚拟空间持续运行。「 (责任编辑:admin) |