Fleek Storage SDK:将NFT资产存储在IPFS上!

从本地开发到全球部署,Fleek 都是构建基于 IPFS 的快速现代网站所需的一切,欢迎使用新的互联网。

我们新的 Fleek Storage 产品通过简单的拖放界面将网络资产存储在 IPFS 上,并获得了令人赞叹的积极反馈!

但是您知道我们的 SDK 可以通过编程方式上传文件到 Web 吗?它的许多用例之一是用于存储 NFT(不可替代令牌)资产。

在接下来的几分钟中,我们将通过 NFT 资产存储了解 Fleek Storage SDK。

当今许多 NFT 的问题

Fleek Storage SDK:将NFT资产存储在IPFS上!

NFT 代表不可替代令牌,它们通常用于将数字艺术的所有权授予用户。令牌可以通过 ERC-721 接口以分散方式进行传输。链上元数据可跟踪其他信息,例如名称,描述,甚至是数字艺术中的图像 URL。

问题就在这里。

使用散式 NFT 中的数字资产永生不衰,但通过链接到集中式服务器的 URL 保存到这些资产的链接既矛盾又自欺欺人。

Pinata 的精彩演讲进一步描述了这个问题。

解决方案?将资产保存在 IPFS 中,并通过 IPFS 哈希(也称为CID)进行标识。

哈希确保标识符永远不会改变,并且 IPFS 上的托管确保文件存储具有抗审查性,并且与产生 NFT 的值保持一致。

实际情况如何?让我们看一下 Fleek Storage 可以做什么的演示。

演示应用:加密博物馆

加密博物馆是完全分散的 dapp。由于我们的Fleek网站产品,它托管在 IPFS 上,但更重要的是,它使用 Fleek Storage SDK 允许用户将其数字作品的副本上载到 IPFS。

亲自看一下演示!

Dapp 在 Ropsten 测试网络上运行,因此您将需要 Metamask 和一些免费的 Ropsten Ether。如果您需要上传一些艺术品,请查看此随机艺术品生成器。

Fleek Storage SDK:将NFT资产存储在IPFS上!

上传到加密博物馆的 ERC-721 资产存储在 IPFS 中,并通过不可变的 IPFS 哈希进行标识

让我们快速了解引擎盖下正在发生的事情。

当用户单击 Create NFT 按钮时,由于我们的SDK,文件被上传到 Fleek Storage。然后,Fleek 返回 IPFS 哈希或 CID,该哈希用于使用令牌元数据中的 CID 铸造新令牌。

该数据(包括所有权和CID的注册表)位于以太坊区块链上。

您可以在下面查阅 ERC-721 令牌的智能合约代码,并查看铸造和 CID 设置的工作方式。该合同基于 OpenZeppelin 库。

pragma solidity >=0.5.0;
​
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
​
contract CryptoMuseum is ERC721 {
    constructor() ERC721("CryptoMuseum", "CM") public {
    }
​
    mapping(uint256 => string) private _CIDS;
​
    function CID(uint256 tokenId) public view returns (string memory) {
      require(_exists(tokenId), "ERC721Metadata: CID query for nonexistent token");
​
      string memory _CID = _CIDS[tokenId];
​
      return _CID;
    }
​
    function _setTokenCID(uint256 tokenId, string memory _CID) internal virtual {
      require(_exists(tokenId), "ERC721Metadata: CID set of nonexistent token");
      _CIDS[tokenId] = _CID;
    }
​
​
    function mint(string memory _CID) public {
      uint256 _newId = totalSupply() + 1;
      _safeMint(msg.sender, _newId);
      _setTokenCID(_newId, _CID);
    }
}

dapp“收集”部分搜索属于该用户的所有令牌,然后读取包含 IPFS 哈希的元数据并显示作品。

修复 NFT 向前发展

NFT 向前发展的一个很好的解决方案是使用 CID 和 CID 本身作为单独的元数据存储 URL 到 IPFS 网关。该 URL 将允许平滑过渡到仅 CID 的分散式生态系统,而仅存储 CID 的实践变得更加普遍。

最终目标是让 CID 成为 NFT 代币基础资产的唯一标识符。

Fleek Storage SDK 提供了类似于 Amazon S3 的界面,可用于与 IPFS 上的文件进行交互。

让我们看看它如何在 Crypto Museum dapp 中以编程方式工作。

// We initialize the S3 client
  const s3 = new AWS.S3({
    apiVersion: '2006-03-01',
    accessKeyId: <access-key-id>,
    secretAccessKey: <secret-access-key>,
    endpoint: 'https://storageapi.fleek.co',
    region: 'us-east-1',
    s3ForcePathStyle: true
  });
​
  // We defined the params
  // including the bucket which can be created either
  // programatically or on the Fleek Web app
  const params = {
    Bucket: bucket,
    Key: `nft/${newTokenId}-${timestamp}`,
    ContentType: artwork.type,
    // Body contains the uploaded file
    Body: artwork,
    ACL: 'public-read',
  };
​
  const request = s3.putObject(params);
​
  request.on('httpHeaders', (statusCode, headers) => {
    const ipfsHash = headers['x-fleek-ipfs-hash'];
    // Do stuff with the IPFS hash. E.G.: Create an Ethereum Transaction...
  }).send();

上面的代码是从 Crypto Museum 代码中复制粘贴的。就这么简单。

AWS s3 SDK 和 fleek storage 的文档提供了有关如何使用SDK的更多信息。

让我们修复 NFT!

Fleek Storage 是在 IPFS 中存储资产的绝佳解决方案。它通过识别通过 IPFS 散列表示的文件,解决了不可替代令牌的持久问题。

借助 IPFS,可以使 NFT 变得更好!

End

非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。

#专栏作家#

本文来自人人都懂区块链专栏作家filcloud,公众号:filcloud。帮你透视浩瀚的IPFS数字世界。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
   
验证码:
微信号已复制,请打开微信添加咨询详情!