blockchain - chainlink 是否有可靠的方法来验证存储在 IPFS 上的哈希后面的文件的大小/格式?
问题描述
我们的想法是有一种分布式的方式来使用像 Chainlink 这样的区块链 Oracle 从一个可靠的智能合约中检索存在、字节大小和文件格式:
存储在 IPFS 上的图像示例:https://ipfs.io/ipfs/QmYjh5NsDc6LwU3394NbB42WpQbGVsueVSBmod5WACvpte
import "@chainlink/contracts/src/v***/IPFSConsumer.sol";
contract VerifyFile is IPFSConsumer {
// hashIPFS: QmYjh5NsDc6LwU3394NbB42WpQbGVsueVSBmod5WACvpte
function verify(bytes32 hashIPFS) public returns (bool, uint256, string) {
bytes32 requestId = IPFSmetadata(hashIPFS);
// ... fulfill request with requestId
}
}
或者
import "@chainlink/contracts/src/v***/IPFSInterface.sol";
contract VerifyFile {
IPFSInterface internal IPFSmetadata
// hashIPFS: QmYjh5NsDc6LwU3394NbB42WpQbGVsueVSBmod5WACvpte
function verify(bytes32 hashIPFS) public returns (bool, uint256, string) {
(bool exists, uint256 size, string format) = IPFSmetadata.fromHash(hashIPFS);
return ...
}
}
解决方案
TL;DR:有了 Chainlink,如果你可以编写一个可以做到的程序,那么你就可以做到。
更长的答案:这是IPFS 链链接外部适配器的概念证明。
您想要做的是将您的合同连接到具有以下工作的节点:
- 从你的合约调用 IPFS API
- 从散列返回文件的大小。
是的,这是可能的。不,以前没有人这样做过。你会是第一个。这是有关构建和使用外部适配器的更多信息。
推荐阅读
- mobile - whatsapp消息是如何推送到手机的?
- php - 重定向到 HTTPS 后,我的网站出现混合内容错误
- django - DJANGO 表单验证
- spring-boot - Vue + Google oAuth2 + Spring Boot Rest Api + 不同的端口
- excel - 将 IFERROR 与 VLOOKUP 一起使用
- javascript - 更漂亮的不纠正某些代码行的 printWidth
- vue.js - Vue-Native 项目不与 Expo 合作?
- python - 装饰器是如何用 Python 中的类实现的?
- python - SQL Alchemy:3 个表之间的关系(间接)
- python - 我该如何改进此身份验证代码