LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > FleekStorageSDK:将NFT资产存储在IPFS上

FleekStorageSDK:将NFT资产存储在IPFS上

2020-05-28 FilCloud 来源:区块链网络

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

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

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

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

当今许多 NFT 的问题

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。如果您需要上传一些艺术品,请查看此随机艺术品生成器。

上传到加密博物馆的 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 帮你迅速了解 IPFS 领域的热点技术和应用

公众号:filcloud

—-

编译者/作者:FilCloud

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...