1

我们的想法是有一种分布式的方式来使用像 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 ...
    }
}
4

1 回答 1

0

TL;DR:有了 Chainlink,如果你可以编写一个可以做到的程序,那么你就可以做到。


更长的答案:这是IPFS 链链接外部适配器的概念证明。

您想要做的是将您的合同连接到具有以下工作的节点:

  1. 从你的合约调用 IPFS API
  2. 从散列返回文件的大小。

是的,这是可能的。不,以前没有人这样做过。你会是第一个。这是有关构建和使用外部适配器的更多信息

于 2021-04-30T13:40:51.217 回答