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