2026年4月的博客(英文)请见这里
https://thesymbolsyndicate.notion.site/April-2026-3e8a7f7eb5e480208ba0c6c9b6f75290
2026年4月 Anthony’s Engineering Blog(日语翻译)
4月感觉是将未完成的部分逐步变成实用 Explorer 后端功能的一个月。模块和交易模式等部分工作从3月就已开始,而4月则对这些部分进行了审查、重构和合并,并将它们连接成实际的 REST 端点。
拉取器(数据获取与同步进程)需要处理区块中的所有交易类型,而 REST 端则需要清晰的端点,以便按哈希查询交易以及显示带有筛选条件的交易列表。在这个过程中,还进行了大量变基、审查反馈处理、重构及测试更新。NEM Explorer 后端就是这样逐步完善起来的。 🦾
主要工作概述
- 完成并合并了马赛克模块。
- 完成了从区块处理交易的工作。
- 添加了
/transaction/<hash>和支持多个筛选条件的/transactions列表端点。 - 在 lightapi/python 中添加了对未确认交易的支持。
- 在本地验证了拉取器在 NEM 测试网上的同步。
各项工作详情
马赛克模块
- 马赛克模块的开发始于3月,因此4月主要用于处理审查反馈、重构和合并。
- 重构了马赛克、马赛克列表以及富豪榜的 REST 端点。
- 添加了马赛克富豪榜的单元测试,确认端点能够正常工作。
- 随着这些 PR 的合并,马赛克模块已经完成。
交易拉取器
- 4月重点完成了交易拉取器。
- 为拉取器添加了处理区块中所有交易类型的功能。
- 修复了无法从发送者公钥正确转换出
sender_address的问题。 - 多重签名的内部交易可通过交易哈希查询,因此删除了不必要的内部交易 ID 逻辑。
- 这部分工作让我更深入地理解了交易数据应如何组织,以便存储和后续查询。
- 经过多轮反馈和重构,交易拉取器模块终于合并了。
交易 REST API
- 拉取器运行趋于稳定后,我开始处理交易 REST 端点。
- 添加了
/transaction/<hash>端点,用于通过交易哈希查询交易详情。 - 重构了交易输出逻辑,使响应更简洁、更易于维护。
- 添加了对多重签名及内部交易输出的支持。
- 通过这个端点,Explorer 可以按交易哈希查询详细的交易信息。
- 添加了支持分页及按区块高度排序的
/transactions端点。 - 实现了针对
height、transaction_types、address、senderAddress、recipientAddress和senderPublicKey的筛选条件。 - 最后的“mosaic”筛选条件颇具挑战,因为查询需要正确匹配与马赛克有关的交易数据。
- 我也考虑过
/mosaic/transfers,但/transactions的mosaic筛选条件可以满足同样的使用场景,因此决定不采用它。 - 这再次提醒我,有时候更好的解决方案是改进现有端点,而不是添加新端点。
Lightapi / Python
- 为支持 NEM Explorer,添加了未确认交易端点。
- 这使 Explorer 能够通过 lightapi/python 查询未确认的交易数据。
- 相比 Explorer 后端工作,这项改动较小,但 Explorer 依赖底层 API 层提供完整的数据,因此它仍是一项重要改动。
拉取器同步验证
- 使用拉取器将 NEM 测试网数据同步到本地数据库。
- 在本地检查了同步过程,结果良好。
- 编写了在本地运行拉取器的设置指南,使设置步骤更容易重复执行和测试。
下一步计划
交易列表端点仍需进一步研究,特别是筛选功能和审查反馈。之后,我将继续处理其余 Explorer 后端端点,并为后端与前端的集成做好准备。
感谢阅读,下次再见! 🏴☠️
—