asio::promise yyds

💡 原文中文,约4400字,阅读约需11分钟。
📝

内容提要

作者在开发以太坊的巧克力浏览器时遇到同步速度问题,最初使用geth同步,速度逐渐减慢,转向erigon后仍需10天。为提高效率,作者对代码进行了改进,采用协程并发调用,显著提升了同步速度。但数据库操作成为瓶颈,导致同步再次减慢。最终,通过分表和异步化数据库操作,解决了部分问题,预计在三月份完成同步。

🎯

关键要点

  • 作者在开发以太坊的巧克力浏览器时遇到同步速度问题,最初使用geth同步,速度逐渐减慢。
  • 转向erigon后,虽然声称能在2天内完成同步,但实际上耗费了10天。
  • 在同步过程中,巧克力浏览器需要解析所有交易数据并存入数据库,导致同步速度进一步下降。
  • 通过对代码进行改进,采用协程并发调用,显著提升了同步速度。
  • 数据库操作成为瓶颈,导致同步再次减慢,最终通过分表和异步化数据库操作解决了部分问题。
  • 预计在三月份完成同步。

延伸问答

作者在开发巧克力浏览器时遇到了什么问题?

作者在开发巧克力浏览器时遇到了同步速度逐渐减慢的问题。

为什么作者选择从geth转向erigon?

因为geth的同步速度逐渐减慢,作者希望找到更快的客户端,因此选择了erigon。

作者是如何提升巧克力浏览器的同步速度的?

作者通过对代码进行改进,采用协程并发调用,显著提升了同步速度。

数据库操作为何成为同步的瓶颈?

数据库操作成为瓶颈是因为随着同步高度的增加,交易量大幅上升,导致数据库处理速度下降。

作者采取了哪些措施来解决数据库操作慢的问题?

作者通过分表和异步化数据库操作来解决数据库操作慢的问题。

预计巧克力浏览器的同步何时完成?

预计在三月份完成同步。

➡️

继续阅读