Free decentralized storage and bandwidth for NFTs on IPFS and Filecoin.
The JS client library is the official and supported client to nft.storage. Other libraries listed have been generated from the OpenAPI schema and are experimental, unsupported and may not work at all!
Check out the HTTP API documentation.
We've created some scripts to help developers with bulk imports, status checks, file listings and more:
https://github.com/nftstorage/nft.storage-tools
Instructions for developers working on the nft.storage API and website.
We use yarn
in this project and commit the yarn.lock
file.
# install all dependencies in the mono-repo
yarn
# setup git hooks
npx simple-git-hooks
/packages/api
and /packages/website
.To run nft.storage locally, start the following processes:
docker-compose up
in your cluster home dir).yarn lt
in /packages/api
).yarn dev --env USER
in /packages/api
).yarn dev
in /packages/website
).The site should now be available at http://localhost:4000
Release Please automates CHANGELOG generation, the creation of GitHub releases,and version bumps for our packages. Release Please does so by parsing yourgit history, looking for Conventional Commit messages,and creating release PRs.
Rather than continuously releasing what's landed to our default branch, release-please maintains Release PRs:
These Release PRs are kept up-to-date as additional work is merged. When we're ready to tag a release, we simply merge the release PR.
When the release PR is merged the release job is triggered to create a new tag, a new github release and run other package specific jobs. Only merge ONE release PR at a time and wait for CI to finish before merging another.
Release PRs are created individually for each package in the mono repo.
Release Please assumes you are using Conventional Commit messages.
The most important prefixes you should have in mind are:
fix:
which represents bug fixes, and correlates to a SemVerpatch.feat:
which represents a new feature, and correlates to a SemVer minor.feat!:
, or fix!:
, refactor!:
, etc., which represent a breaking change(indicated by the !
) and will result in a SemVer major.Feel free to join in. All welcome. Open an issue!
Dual-licensed under MIT + Apache 2.0
目前来看,seascape实现的NftMarket可能是功能比较全面的NFT市场合约。 代码来源:seascape-smartcontracts/NftMarket.sol at main · blocklords/seascape-smartcontracts · GitHub pragma solidity ^0.6.7; pragma experimental ABIEncoderV2;
1.1 IERC165 接口合约 IERC165 是一个合约标准,这个标准要求合约提供其实现了哪些接口,这样在与合约进行交互的时候可以先调用此接口进行查询。 pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIP
1.集中分散存储 在分散式网络的内容寻址教程中,我们探索了内容寻址如何使我们在分散式网络上信任对等体。内容寻址和内容标识符(cid)的概念是理解Filecoin如何验证存储的关键。 在像IPFS这样的去中心化、点对点网络上,我们可以使用加密哈希来确认任意数量的点正在存储我们的数据的副本。然而,我们依赖于这些方的慷慨,并不能保证我们的数据会随着时间的推移继续被复制。另一方面,Filecoin增加了一