### 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 后端端点，并为后端与前端的集成做好准备。

感谢阅读，下次再见！ 🏴‍☠️

<img width="800" height="714" alt="Image" src="../images/April2026_EngineeringBlog_badge.png" />

—

[Anthony](https://x.com/Anthony14w)
（日语翻译 [Radio](https://x.com/RadioRa26841511)）


### 以往的日语翻译 The Symbol Syndicate | Anthony’s Engineering Blog
- [2026年3月](https://symbol-community.com/ja/news/411.html)
- [2026年2月](https://symbol-community.com/ja/news/401.html)
- [2026年1月](https://symbol-community.com/ja/news/381.html)
- [2025年12月](https://symbol-community.com/ja/news/366.html)
- [2025年11月](https://symbol-community.com/ja/news/361)
- [2025年10月](https://symbol-community.com/ja/news/351)
- [2025年9月](https://symbol-community.com/ja/news/326)
- [2025年8月](https://symbol-community.com/ja/news/306)
- [2025年7月](https://symbol-community.com/ja/news/293)
- [2025年6月](https://symbol-community.com/ja/news/278)
