asio::promise yyds
💡
原文中文,约4400字,阅读约需11分钟。
📝
内容提要
作者在开发以太坊的巧克力浏览器时遇到同步速度问题,最初使用geth同步,速度逐渐减慢,转向erigon后仍需10天。为提高效率,作者对代码进行了改进,采用协程并发调用,显著提升了同步速度。但数据库操作成为瓶颈,导致同步再次减慢。最终,通过分表和异步化数据库操作,解决了部分问题,预计在三月份完成同步。
🎯
关键要点
- 作者在开发以太坊的巧克力浏览器时遇到同步速度问题,最初使用geth同步,速度逐渐减慢。
- 转向erigon后,虽然声称能在2天内完成同步,但实际上耗费了10天。
- 在同步过程中,巧克力浏览器需要解析所有交易数据并存入数据库,导致同步速度进一步下降。
- 通过对代码进行改进,采用协程并发调用,显著提升了同步速度。
- 数据库操作成为瓶颈,导致同步再次减慢,最终通过分表和异步化数据库操作解决了部分问题。
- 预计在三月份完成同步。
❓
延伸问答
作者在开发巧克力浏览器时遇到了什么问题?
作者在开发巧克力浏览器时遇到了同步速度逐渐减慢的问题。
为什么作者选择从geth转向erigon?
因为geth的同步速度逐渐减慢,作者希望找到更快的客户端,因此选择了erigon。
作者是如何提升巧克力浏览器的同步速度的?
作者通过对代码进行改进,采用协程并发调用,显著提升了同步速度。
数据库操作为何成为同步的瓶颈?
数据库操作成为瓶颈是因为随着同步高度的增加,交易量大幅上升,导致数据库处理速度下降。
作者采取了哪些措施来解决数据库操作慢的问题?
作者通过分表和异步化数据库操作来解决数据库操作慢的问题。
预计巧克力浏览器的同步何时完成?
预计在三月份完成同步。
➡️