教程英文版:https://docs.alchemy.com/docs/how-to-build-an-nft-marketplace-from-scratch
教程中文版:https://zhuanlan.zhihu.com/p/557479922?utm_id=0
以太坊测试币领取:https://goerlifaucet.com/
入门项目地址:https://github.com/alchemyplatform/NFT-Marketplace-Tutorial
入门该项目之前,最好先了解一些相关平台和技术,有个大概的认知。
下面的内容一些是Copy谷歌上的,一些是GPT生成的,仅供参考。
Alchemy 是一个以太坊开发平台,提供了一系列工具和服务,帮助开发者更轻松地构建和管理以太坊应用程序。Alchemy 的主要功能如下:
总之,Alchemy 提供了一系列工具和服务,帮助开发者更轻松地构建和管理以太坊应用程序。
MetaMask 是一款以太坊钱包浏览器插件,它可以用来管理以太坊和 ERC-20 标准代币。它可以让您在浏览器中访问以太坊网络,并与去中心化应用程序(DApp)进行交互,如去中心化交易所、去中心化金融应用、游戏等,而不需要暴露您的私钥。此外,MetaMask 还提供了高级功能,如 Gas 费设置、多账户支持、交易历史记录等。如果您在使用以太坊和去中心化应用程序,MetaMask 是一个非常有用的工具。
Pinata 是一个 IPFS 文件托管平台,它提供了简单、安全、可靠的去中心化存储和分发服务。使用 Pinata,用户可以将文件上传到 IPFS 网络,并获得一个唯一的 CID(Content Identifier),以便在整个 IPFS 网络中找到和访问该文件。Pinata 还提供了一些有用的功能,如文件版本控制、自动备份、文件加密和解密、API 接口等等。使用 Pinata,用户可以方便地将文件存储在 IPFS 网络上,以实现去中心化的文件存储和分发。这对于需要存储大量数据或需要在去中心化应用程序中使用文件的用户来说非常有用。
星际文件系统 (InterPlanetary File System,缩写为 IPFS)是一个旨在实现文件的分布式存储、共享和持久话的网络传输协议。它是一个内容可寻址的点对点超媒体分发协议。在IPFS网络中的节点构成一个分布式文件系统。
IPFS采用去中心化的方式存储文件,文件被分发到全球各个节点,每个节点都可以存储和提供文件内容。当用户请求某个文件时,IPFS会根据文件的哈希值快速定位到存储该文件的节点,实现高效的文件传输。
IPFS具有以下特点:
总之,IPFS是一种新型的分布式文件系统,通过去中心化、内容寻址和多节点存储等技术,实现了高可靠性、高效性和去中心化的文件存储和传输。
IPFS(InterPlanetary File System)是一种点对点的分布式文件存储系统,可以在区块链开发中实现以下功能:
总之,IPFS可以在区块链开发中用于分布式存储、链接数据、去中心化网络和加速数据传输等方面,从而提高应用程序的可靠性、安全性、性能和效率。
NFT(Non-Fungible Token)是一种基于区块链的数字资产,通常用于代表独特的数字艺术品、游戏道具、收藏品等。而IPFS(InterPlanetary File System)是一种点对点的分布式文件存储系统,可以在区块链应用程序中用于存储和管理NFT资产。
具体来说,NFT通常包含对存储在IPFS上的数字资产的引用,这些数字资产可以是图像、音频、视频或其他类型的文件。因此,将NFT与IPFS结合使用可以实现以下功能:
总之,NFT资产管理和IPFS之间有着密切的关系,使用IPFS可以实现分布式存储、去中心化和链接数据等功能,从而提高NFT资产的可靠性和安全性。
Alchemy、Pinata 和 MetaMask 可以一起使用来构建和管理以太坊应用程序,具体的联动方式如下:
总之,Alchemy、Pinata 和 MetaMask 可以一起使用来构建和管理以太坊应用程序,通过 API 和网络连接来实现联动。这三个工具提供了不同的功能和服务,可以共同帮助开发者更轻松地构建和管理以太坊应用程序。
要将MetaMask连接到Alchemy节点,您需要按照以下步骤操作:
需要注意的是,为了能够连接到Alchemy节点,您需要在Alchemy上注册一个账户并获取API密钥。您可以在Alchemy的控制台中创建一个项目,并在项目设置中找到API密钥。确保您已经启用了与所使用的Alchemy节点相对应的API密钥。
NFT是“Non-Fungible Token”的缩写,中文翻译为“非同质化代币”,是一种基于区块链技术的数字资产。与传统的加密货币不同,NFT每个都是独一无二的,不可替代的数字资产,它们可以代表数字艺术品、虚拟房地产、游戏物品、音乐等数字内容。NFT使用智能合约技术,确保每个NFT的唯一性、拥有权和交易历史可追溯。NFT市场的兴起,为数字内容创造者提供了新的收入来源,同时也为数字内容爱好者提供了新的收藏方式。
选择区块链平台:有几个区块链平台支持NFT,例如Ethereum、Binance Smart Chain和Flow。选择最符合您要求的平台。
创建智能合约:编写定义NFT结构和所有权的智能合约。该合约将部署在区块链平台上。
创建前端:为您的市场开发一个前端,用户可以查看和购买NFT。您可以使用React或Angular等框架来构建您的前端。
集成钱包:集成MetaMask等钱包,允许用户购买、出售和持有NFT。
创建数据库:设置数据库以存储有关NFT及其所有者的信息。
开发付款系统:集成付款系统,允许用户购买和出售NFT。您可以使用Ether等加密货币或USDT等稳定币进行交易。
启动市场:部署智能合约和前端到区块链平台上,并启动您的NFT市场。
请记住,这只是NFT市场的基本框架。您可能需要根据您的具体要求进行自定义。
https://zhuanlan.zhihu.com/p/557479922?utm_id=0
在以太坊区块链上,ABI(Application Binary Interface)是用于描述智能合约函数的接口的一种标准格式。要获取一个智能合约的ABI,可以按照以下步骤操作:
另外,如果您已经有智能合约的源代码,可以使用Solidity编译器来生成ABI。在Solidity编译器中,选择智能合约的源文件,然后点击“Compile”按钮。在编译完成后,可以在输出中找到智能合约的ABI。
一般的,我使用remix编译合约并获取之。
这里只列出大致的步骤,详情请查阅参考文章中的教程
1、注册一个Alchemy账户并创建一个新的应用程序
2、注册MetaMask,记钱包私钥为PRIVATE_KEY
3、使用Goerli龙头来申请Goerli ETH,获取一点Goerli测试网的ETH(0.03就行)
建议用这个网站:https://goerli-faucet.pk910.de/
更多网站:https://zhuanlan.zhihu.com/p/618154628
4、注册Alchemy,创建一个区块链应用APP,记该APP的API地址为ALCHEMY_API_URL
5、使用remix开发、编译合约,然后,开始部署合约,并「保存合约地址和ABI」
(remix比用自己的命令行、脚本啥的省事多了)
注意:部署的时候会花费一点点虚拟币,这里是从哪个钱包扣钱,哪个钱包地址就是这个部署上去的合约的创造者(Creator)。
合约地址:部署成功后,会在控制台打印合约地址的,例如「0x2a54C4D62d40D6750B24601F9C79107D3192Bedf」
ABI:可以在编译后的contracts文件夹中的NFTMarketplace_metadata.json文件中的output的abi获取之。
然后就可以在https://goerli.etherscan.io/address/0x2a54c4d62d40d6750b24601f9c79107d3192bedf看到合约信息了。
remix地址:https://remix.ethereum.org/#lang=en&optimize=true
使用remix部署合约教程:https://docs.moonbeam.network/cn/builders/build/eth-api/dev-env/remix/
6、在本地代码里,把上面的相关配置配了。
.env
大致结构如下,记得替换为自己的
REACT_APP_ALCHEMY_API_URL="https://eth-goerli.g.alchemy.com/v2/xxxxxxxxxxxxxx"
# metamask钱包秘钥
REACT_APP_PRIVATE_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Pinata配置
REACT_APP_PINATA_KEY="xxxxxxxxxxxxxxxxxxx"
REACT_APP_PINATA_SECRET="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Marketplace.json
大致结构如下
{
"address": "0x2a54c4d62d40d6750b24601f9c79107d3192bedf",
"abi": [...]
}
7、跟着官方教程完善代码
8、完成项目,并进行测试
查看自己的账户余额,发布NFT商品,然后购买。在pinata查看发布的NFT数据有没有被存进来,在MetaMask或者Goerli查看自己部署的合约以及每一笔交易记录的详情
goerli.etherscan.io是以太坊测试网络Goerli的区块链浏览网站。它提供了对在Goerli网络上发生的交易、合约和地址的实时查看和跟踪,同时也可以查看区块链的状态和统计数据。
例如我完成的项目的操作可以在这里查阅得到,说明上链成功。
https://goerli.etherscan.io/tx/0x6d37aafb2947ae03076c0bc774921ec419e972a1b25a70671058e5386aec67a3
https://goerli.etherscan.io/token/0x2a54c4d62d40d6750b24601f9c79107d3192bedf