Есть ли у chainlink надежный способ проверить размер / формат файла за хешем, хранящимся в IPFS?

Идея заключалась бы в том, чтобы иметь распределенный способ получения информации о существовании, размере байта и формате файла из твердого смарт-контракта с использованием блокчейна Oracle, такого как Chainlink:

Пример изображения, хранящегося в 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 ...
    }
}

1 ответ

TL;DR: С Chainlink, если вы можете написать программу, которая может это сделать, вы можете это сделать.


Более длинный ответ: это доказательство концепции внешнего адаптера звена цепи IPFS.

Что вам нужно сделать, так это подключить свой контракт к узлу, у которого есть задание:

  1. Вызывает API IPFS из вашего контракта
  2. Возвращает размер файла из хеша.

Да, это возможно. Нет, раньше этого не делали. Ты будешь первым. Вот дополнительная информация о создании и использовании внешних адаптеров .

Другие вопросы по тегам