Moralis Web3 企业级API Moralis FAQ

2024-02-26 开发教程 Moralis Web3 企业级API 匿名 5

我的 Moralis 应用程序 ID 在前端公开可见。 这是安全风险吗?

不,应用程序 ID是公开的,并包含在对 Moralis 的所有请求中。

如果有人拥有 App ID 和服务器 URL,他们可以做什么?

  1. 注册为新用户。

默认情况下,每个 dapp 都欢迎任何用户注册。 如果您有应用程序 ID 和服务器 url,您可以尝试注册为用户。

要控制如何创建新用户,您可以在用户集合上使用“beforeSave”触发器。

尝试调用 Cloud Functions。

将 Cloud Functions 视为 API 中的端点。

任何人都可以尝试打电话给他们。 您可以在 dapp 中设置角色,以控制哪些用户可以调用哪些 Cloud Functions。

例如,您可以确保任何人都可以调用某些 Cloud Functions - 即使他们在您的 dapp 中没有帐户。

然后您可以指定其他一些 Cloud Functions 只能由注册用户调用。

最后,您可以指定某些特定的 Cloud Functions 只能由具有特定角色的注册用户调用。

尝试向数据库添加新的类或列。

默认情况下,Moralis 允许客户端在数据库中创建新类并向现有类添加列。 这大大加快了开发速度。

当然,当您进行生产时,应该禁用它。

在此处阅读有关禁用客户端类创建的信息。

始终保护万能钥匙

请注意:您要保护主密钥,因为它可以覆盖所有权限并具有读取、写入和删除的完全访问权限。 最好只在服务器上使用主密钥(即云功能)。 切勿在前端使用主密钥。

为什么你使用签名消息而其他 Dapps 不使用?

这是验证您是否真正拥有钱包的通用标准。 例如,​Opensea​、​Rarible ​等都使用它。

通过 Moralis 的授权允许用户访问他的用户对象,例如,可以在其中存储私人信息,并且用户也有权更改他的数据。 为此,我们使用签名消息。 这是一种绝对安全的方式:它不导出私钥,不允许消费代币,并且不需要​gas​费。

如果您不需要将用户存储在数据库中,您可以使用 ​enableWeb3()​ 并使用默认的 web3 方法获取用户的 ​eth_address​。

如何在论坛和 Discord 上寻求帮助

如果您想快速获得帮助,您需要执行以下步骤:

  1. 提供您的服务器子域(什么是服务器子域?)
  2. 详细描述您的问题
  3. 如果您共享您的代码 - 始终将其作为格式化代码(而不是屏幕截图)或 github 存储库发送
  4. 附上截图、错误信息

什么是服务器子域?

单击“查看详细信息”按钮后,您可以在 Moralis 管理面板中找到它

我刚刚铸造了一个 NFT - 为什么它没有出现在 API 中?

为了让 NFT 出现在 API 中,它需要符合 ERC721 或 ERC1155 标准。

这两个标准都需要从 ERC165 标准实现 ​supportInterface ​方法。

如果您使用 OpenZeppelin contracts,这将自动为您完成。

仔细检查这一点的一种方法是在 ​Etherscan ​中打开你的合约,并确保它在你的合约页面上显示 ERC721 或 ERC1155。

为什么某些 NFT 的元数据为空?

Moralis 的目标是始终为您提供完全解析的元数据,这样您就不必自己解析它并节省应用程序的加载时间。

为什么它是空的?

一些 NFT 的元数据托管在集中式服务器上。 这些服务器有时具有速率限制,阻止 Moralis 完全索引其元数据存储在此类服务器上的集合。 在这种情况下,元数据可能无法解析。 我们一直在努力扩大元数据的覆盖范围。

如何获取元数据?

即使 Moralis 不能始终为您解析元数据,我们也会始终为您提供 ​token_uri​,以便您始终可以自己解决。

使用 Moralis NFT API 时,请始终检查是否向您提供了元数据。

如果是 - 使用它! 我们刚刚为您节省了加载时间并提高了应用程序的性能

如果否 - 向提供的 ​token_uri ​发出请求并自己获取元数据。

为什么元数据过时了?

Moralis 支持的不同区块链中有数百万个 NFT。 绝大多数 NFT 从不更改元数据,因此 Moralis 不会自动重新同步元数据。 这是我们将来可能会做的事情!

目前,Moralis 拥有 reSyncMetadata API,可以帮助您手动触发特定令牌上的元数据重新同步。 我们知道此功能在您开发 NFT 时很重要,您可能正在尝试不同的元数据并在开发应用程序期间经常更新它

加入我们的 Discord 以在此功能发布时进行更新!

如果您真的希望我们添加自动重新同步功能 - 在此处添加或投票:https://roadmap.moralis.io/b/feature-requests/

Moralis Speedy 节点的批量请求限制是多少?

目前,我们有一个批次限制为 50 个请求。 在大多数生产情况下,它可能不适合您的需求。 因此,我们建议您使用我们的 Web3 API 来获取区块中的所有交易以及交易的所有内容:

  • getBlock
  • getTransaction
  • or check any other of our endpoints

如果提供的 Web3 API 不适合您的需求并且更喜欢使用较大批量的节点 - 您可以在此处注册我们的合作伙伴。

我应该在 Mac 上使用什么版本?

  • frp_x.xx.x_darwin_amd64.tar.gz

我应该如何在 Mac 上运行 frpc?

  • 打开一个终端。
  • 导航到 frpc 目录。
  • 键入 ​./frpc -c frpc.ini​。

为什么 Mac 会说 frpc 来自身份不明的开发者?

这是因为 frpc 没有为 Mac 签名。 要允许它运行,请按照下列步骤操作:

  • 导航到 Finder 中的 ​frpc ​文件夹。
  • 按住“Ctrl”键的同时右键单击 ​frpc ​可执行文件。
  • 选择打开。

Mac 将为您提供有关覆盖系统安全性风险的信息。 请仔细阅读并在您同意的情况下单击弹出窗口中的“打开”。

授予 frpc 权限有什么风险,即使它来自身份不明的开发人员?

frpc 可执行文件未经 Apple 签名。 这意味着操作系统无法知道它将执行什么样的代码。 通过接受覆盖或跳过系统安全性,您就是在告诉操作系统您信任该应用程序。 请自行承担责任和风险。 为避免任何问题,请确保您已从 https://github.com/fatedier/frp/releases 的官方存储库下载 frpc。

为什么 OpenSea 上的 NFT 数量与 Moralis API 不同?

我们的 API 只能读取链上公开的数据。 OpenSea 共享合约上的惰性铸造 NFT 仅存储在集中式 OpenSea 数据库中,直到第一次转移。

您可以在 OpenSea 博客上找到更多信息:https://opensea.io/blog/announcements/introducing-the-collection-manager/

另一个原因可能是来自 OpenSea 库存的 NFT 位于不同的链中。 在这种情况下,您需要为每个网络发出 API 请求。

什么是休眠服务器?

Moralis 的使命是为 web3 开发社区提供可用的工具。 这意味着我们有非常慷慨的免费计划。 这也意味着我们允许任何人注册和启动 Moralis 服务器。

然而,Moralis 服务器是免费的这一事实意味着其中一些服务器会无限期地运行而没有任何用处。 我们希望我们所有的资源都用于构建令人惊叹的 web3 技术和发展 Moralis 社区——我们不想浪费资源运行不活动的服务器。

谢天谢地,我们找到了一个非常简单的解决方案

如果您是免费套餐用户,您需要每 3 天确认您仍在使用您的服务器。 这就是它的工作原理

防止服务器休眠

每 3 天,您将收到一封电子邮件,提示您登录 Moralis 帐户,并通过单击“阻止睡眠”按钮阻止您的服务器进入睡眠状态。

您有 24 小时的时间来阻止 Moralis 服务器休眠。 如果您不阻止服务器休眠,它将暂时关闭(它将进入休眠状态)。

当服务器关闭时,您将经历停机时间,直到您通过单击“唤醒”将其唤醒。

不用担心 - 唤醒过程大约需要 30 秒,您的服务器将恢复到与之前完全相同的状态。

如果您的服务器关闭 24 小时

如果服务器保持关闭状态超过 24 小时,它将被终止。

但不要担心 - 我们将备份您的服务器配置并将其保存在存档中 1 个月。 您需要通过单击“恢复”按钮来恢复它。

这个过程比正常的“唤醒”要长一些,可能需要几分钟。

您的服务器将被恢复,但它将是具有新 IP 和新 URL 的新服务器。

如果您的服务器关闭超过 1 个月 - 它的存档版本将被永久删除,您将无法恢复服务器

如何避免休眠服务器

为避免休眠服务器,请升级到付费计划。

这将支持 Moralis 开发人员,以便我们可以继续提供世界一流的开源 web3 工具,而不会在非活动服务器上浪费金钱

您可以通过单击此处进行升级。

如您所知,我们还在开发 Moralis 服务器的自托管版本。 当它结束时,您将来可以在自己的服务器上托管您的服务器