是否可以制作 Chainlink 外部适配器,使其只能由特定的智能合约调用?

Can chainlink external adapters be made so they can only called by a specific smart contract?

我想做一个只能被智能合约中的特定函数调用的外部适配器,这样我就可以确保调用者是一个授权地址。任何人都可以调用外部适配器,或者我可以将其限制为某个智能合约吗?如果任何人都可以打电话,我有没有办法确保来电者来自智能合约?

我想做的是拥有一个可以为文件提供解密密钥的智能合约。 本质上,智能合约将存储加密到适配器的 public 密钥的解密密钥。然后,当智能合约中发生某人应该访问该文件的事件时,智能合约会调用适配器。然后,适配器将获取加密的解密密钥,对其进行解密,然后 return 将解密密钥加密为接收方的 public 密钥。然后,智能合约将接收加密到接收者的 public 密钥的解密密钥并存储它,以便接收者可以使用它来解密文件。使用外部适配器可以实现这样的功能吗?

您可以通过将白名单请求者(授权的智能合约地址)添加到接收您的请求的 Chainlink 节点的数据库和 运行 调用您的外部适配器的作业来限制访问。

我们写了一个关于如何做到这一点的简短指南:https://github.com/Linkriver/Chainlink-node-whitelisting