今天,我们很高兴地宣布 Iron Fish 钱包服务器首次发布。该项目旨在构建和运行完全私有的客户端,而无需运行本地 Iron Fish 节点。在这篇博文中,我们将概述钱包服务器及其主要功能,并讨论如何帮助我们改进该项目。
长话短说:
- Iron Fish 钱包服务器是一个 gRPC 服务器,允许轻客户端与 Iron Fish 网络交互,而无需运行完整节点。
- 钱包服务器是开源的,可在 GitHub 上获取。
- 我们目前正在托管该服务器的速率限制版本以
walletserver.ironfish.network
进行测试。 - 如果您有兴趣构建轻量级客户端,请在#wallet-server频道的 Discord 上与我们交谈!
为什么我们需要钱包服务器?
Iron Fish是一种隐私优先的加密货币,它使用零知识证明来提供完全私密的交易。这意味着只有交易的发送者和接收者可以查看交易的发送者、接收者、金额和资产。这与以太坊和比特币等其他区块链不同,后者的交易数据对公众可见。Iron Fish 目前需要运行完整节点来解密您的交易,这在大多数计算机上都是可以做到的。然而,完整节点具有额外的计算、带宽和存储职责,例如验证块、将交易传播到网络以及存储区块链,这些职责在移动设备或浏览器扩展中运行可能效率低下。
为了在不运行完整节点的情况下使用 Iron Fish,我们需要能够构建一个“轻客户端”。轻客户端是不运行完整节点的客户端,而是依赖其他节点提供构建其帐户信息所需的信息。
这就是钱包服务器的用武之地。钱包服务器充当轻客户端和全节点之间的代理,从节点获取块数据,缓存它,并将其提供给轻客户端。钱包服务器对 Iron Fish 节点也有好处,因为它减少了它们需要处理的传入请求的数量。
钱包服务器如何工作?
钱包服务器是一种 gRPC 服务器,它从一个或多个 Iron Fish 全节点获取区块,删除发送交易和计算余额不必要的数据,缓存它们,并提供允许轻客户端获取缓存区块的端点。
轻客户端可以请求最新的块、按哈希或序列的特定块或一系列块。钱包服务器还为轻客户端提供端点以将交易提交到网络。通过钱包服务器发送和接收的交易仍然是私有的,因为它们的加密方式与运行完整节点时相同。钱包服务器可以看到客户端正在请求哪些区块以及客户端提交的加密交易,但它无法看到任何交易的发送者、接收者、金额或资产。此外,轻客户端不会将其帐户密钥传输到钱包服务器。
参与其中
钱包服务器项目是开源的,可在 GitHub 上获取。该存储库包含电子钱包服务器代码以及演示如何使用电子钱包服务器的示例客户端。该示例客户端不适用于生产用途,但可以在构建您自己的客户端时用作参考。
该项目仍处于早期阶段,我们正在寻求社区的反馈。如果您有兴趣构建轻量级客户端,请在#wallet-server频道的 Discord 上与我们交谈!