IPFS与NFT资产存储
日期:2023年04月16日 09:33 浏览量:1
过去两年,NFT 热潮席卷全球。在各种区块链上铸造 NFT 已经变得司空见惯。然而,这些 NFT 资产的存储往往被忽视。IPFS,又称为星际文件系统,已经成为用于存储 NFT 资产的通用标准。
一个经常被忽视的细节是 IPFS 本身并不是一个存储网络。它更像是一种数据路由和传输协议。IPFS 网络是交换信息的节点的集合。文件条目可以“固定”到公共 IPFS DHT(分布式哈希表),让网络上的其他节点知道哪些主机正在存储哪些文件。
在 IPFS 生态系统中,有许多公共网关。其中一些网关允许你上传文件,但通常无法保证你的文件将保持在线状态。除非文件由 IPFS 节点显式固定,否则下次运行垃圾回收过程时,该文件将被删除。这暴露了一些关于 NFT 存储的问题。
为了帮助解决这个问题,出现了一些不同的固定提供商。这些提供商会收取一定的费用,允许你上传文件,并且他们会主动为你固定这些文件。
然而,这带来了一个新问题,这些文件实际存储在哪里?开发者花了大量的时间研究这个问题,通过对近 10 亿个文件的分析,发现了下面几个问题:
1、大多数 IPFS 固定提供商在后台使用 Amazon S3 和其他集中式对象存储服务。IPFS 服务器的“数据存储”可以使用一个简单的插件指向 S3。
2、由于使用的是 AWS S3,因此提供商每 TB 的收费高达 150 美元以上!
3、如果 AWS S3 出现故障,你的 IPFS 服务器也会出现故障。除非数据已缓存在某处,否则你的 IPFS CID 链接将不再可访问。这可能会导致 NFT 出现“rug pull”等问题。
4、采用这种配置的系统还引入了一种非常奇特的方式来访问 AWS S3。如果我们如此依赖 AWS,为什么不使用一个简单的 HTTP URL 呢?
开发者已经提出了一个方案来解决上面列出的问题,并将使整个加密生态系统受益。简单地说就是用 Web3 构建 Web3。
所有使用 Filebase 固定在 IPFS 上的文件实际上都存储在 Sia 上,Sia 是领先的分散式存储网络之一。这创建了一个环境,在这个环境中,IPFS 节点的数据存储层是高度可用的,最重要的是,地理冗余。通过使用去中心化网络进行存储,我们不再依赖云提供商的块存储卷(AWS EBS)或集中式存储桶(AWS S3)。
如何将数据固定到 IPFS 上?很容易,你有两个选择:
1、在 Filebase 仪表板中使用简单的拖放界面
2、使用简单的 S3 兼容 API
当你上传文件时,将返回一个 IPFS CID(内容标识符)。然后,你可以使用此 CID 从自己的 IPFS 节点或公共互联网上的任何其他 IPFS 网关访问你的数据。CID 清楚地显示在仪表板中,也可以通过编程方式检索它们。
从仪表板打开 IPFS 存储桶后,会出现一个 CID 列。你可以单击任何 CID,它将自动复制到剪贴板。
对象概览页面还将向你显示 CID 以及其他详细信息:
如果你使用的是与 S3 兼容的 API,则 CID 将在 PutObject 调用的响应中返回。例如,如果我们运行以下 AWS CLI 命令:
aws s3api put-object \
--bucket your-bucket-name \
--key your-file-name.png \
--body your-file-local-path \
--content-type image/png \
--metadata '{"x-amz-meta-ipfs-hash":"$IPFS_CID"}'
响应如下所示。为方便起见,突出显示了相应的响应标头
{
"ETag": "\"363290db7d2119f43987cd7ded27c01d\"",
"ServerSideEncryption": "AES256",
"VersionId": "null",
"ResponseMetadata": {
"RequestId": "17A139E1FFC8F291",
"HostId": "vzA9iDJ8NqyJSvlF+OfwaxjcuWvkLv8Jo1e4Ifbd4OXRjxO+UhIR5Dy+E5TPBqhR0fEjThI6lZU=",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"x-amz-id-2": "vzA9iDJ8NqyJSvlF+OfwaxjcuWvkLv8Jo1e4Ifbd4OXRjxO+UhIR5Dy+E5TPBqhR0fEjThI6lZU=",
"x-amz-request-id": "17A139E1FFC8F291",
"date": "Mon, 22 Nov 2021 00:58:27 GMT",
"etag": "\"363290db7d2119f43987cd7ded27c01d\"",
"content-length": "0",
"server": "AmazonS3"
},
"RetryAttempts": 0
}
}
我们也可以随时调用 HeadObject API 来获取 CID:
aws s3api head-object \
--bucket your-bucket-name \
--key your-file-name.png
现在 IPFS 功能已经上线,开发者计划继续进一步构建这种集成!
推荐阅读
-
美元和中国人民币汇率(美元与中国汇率)
2023-04-16
开发者花了大量的时间研究这个问题,通过对近 10 亿个文件的分析,发现了下面几个问题:1、大多数 IPFS 固定提供商在...
-
社保激费基数包括(社保的激纳基数有什么用)
2023-04-16
开发者花了大量的时间研究这个问题,通过对近 10 亿个文件的分析,发现了下面几个问题:1、大多数 IPFS 固定提供商在...
-
四川信托股权拍卖(四川信托股权拍卖公告)
2023-04-16
开发者花了大量的时间研究这个问题,通过对近 10 亿个文件的分析,发现了下面几个问题:1、大多数 IPFS 固定提供商在...
-
建行信用卡龙卡visa(建行信用卡龙卡为什么有两张)
2023-04-16
开发者花了大量的时间研究这个问题,通过对近 10 亿个文件的分析,发现了下面几个问题:1、大多数 IPFS 固定提供商在...
-
银行承兑汇票贴现天数怎么算(银行承兑汇票的贴现期限)
2023-04-16
开发者花了大量的时间研究这个问题,通过对近 10 亿个文件的分析,发现了下面几个问题:1、大多数 IPFS 固定提供商在...
-
格力电器股票十年行情(格力电器股票十年行情走势图)
2023-04-16
开发者花了大量的时间研究这个问题,通过对近 10 亿个文件的分析,发现了下面几个问题:1、大多数 IPFS 固定提供商在...