IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 体验篇 - 非同质化代币(NFT) -> 正文阅读

[区块链]体验篇 - 非同质化代币(NFT)

摘要

本篇将介绍体验OpenSea的 NFT 项目的发币与上架流程, 包括:

  • 将作品传到IPFS上
  • 将元数据传到元数据服务器上
  • 在以太坊上部署NFT合约
  • 上架OpenSea

OpenSea

目前全球最大的加密数字藏品市场

成立于 2018 年的 OpenSea 是一个基于区块链的全球数字物品买卖市场。OpenSea 的定位是业界领先的去中心化交易所(Decentralized Exchange,DEX),提供点对点(peer-to-peer)的以太坊同质化代币(NFT)交易。该综合平台售卖的数字商品多种多样,包括数字艺术品、加密收藏品、游戏物品等。在 OpenSea 平台上,用户可以与世界上任何一个人进行代币买卖和交换。

作品NFT化

1. 将作品传到IPFS上,获取 URL

(例如 ipfs://QmQg41VNaozk6R1D44882SkpTohXiSLZuQAjVy8Ajr5mpK )

  • 方法一:使用docker自架IPFS节点

  • 方法二:使用公共的IPFS节点 Pinata

    https://ipfs.io/ipfs/QmVB2jkGbsyYBbjQART385wR62H3kehmQSrnw4N27hk42d/NFT/1.png
    ...
    https://ipfs.io/ipfs/QmVB2jkGbsyYBbjQART385wR62H3kehmQSrnw4N27hk42d/NFT/12.png
    

2. 将URL写入元数据json文件中

元数据文件格式

   {
     "name": "Space Food",
     "description": "Astronaut's toothpaste-like food in the space station.",
     "image": "ipfs://QmQg41VNaozk6R1D44882SkpTohXiSLZuQAjVy8Ajr5mpK",
     "attributes": [
       {
         "trait_type": "Base", 
         "value": "jellyfish"
       },
       {
         "display_type": "number", 
         "trait_type": "Generation", 
         "value": 2
       },
       {
         "display_type": "boost_percentage", 
         "trait_type": "Stamina Increase", 
         "value": 10
       },
       {
         "display_type": "boost_number", 
         "trait_type": "Aqua Power", 
         "value": 40
       },
       {
         "display_type": "date", 
         "trait_type": "birthday", 
         "value": 1546360800
       }
     ]
   }

字段说明:

image: This is the URL to the image of the item. Can be just about any type of image (including SVGs, which will be cached into PNGs by OpenSea, and even MP4s), and can be IPFS URLs or paths. We recommend using a 350 x 350 image.
image_data: Raw SVG image data, if you want to generate images on the fly (not recommended). Only use this if you’re not including the image parameter.
external_url: This is the URL that will appear below the asset’s image on OpenSea and will allow users to leave OpenSea and view the item on your site.
description: A human readable description of the item. Markdown is supported.
name: Name of the item.
attributes 自定义属性: These are the attributes for the item, which will show up on the OpenSea page for the item. (see below)
background_color: Background color of the item on OpenSea. Must be a six-character hexadecimal without a pre-pended #.
animation_url: A URL to a multi-media attachment for the item. The file extensions GLTF, GLB, WEBM, MP4, M4V, OGV, and OGG are supported, along with the audio-only extensions MP3, WAV, and OGA.
youtube_url: A URL to a YouTube video.

3. 将元数据Json传到元数据服务器上

如果自己有云服务器,都好办;如果没有服务器的话, 可参考以下方法

用IPFS托管元数据Json

缺点是不易扩展,每次修改元数据后都会产生新的CID

https://ipfs.io/ipfs/QmXeypeQzWsbiBbeo7vKuGvaRvrp9j6NGcsPWegZmW8XXy/metadata/1
https://ipfs.io/ipfs/QmXeypeQzWsbiBbeo7vKuGvaRvrp9j6NGcsPWegZmW8XXy/metadata/2
...
https://ipfs.io/ipfs/QmXeypeQzWsbiBbeo7vKuGvaRvrp9j6NGcsPWegZmW8XXy/metadata/12

用Github作为元数据服务器

易于扩展

# 编辑这些文件
https://github.com/wcc19840827/opensea-creatures/blob/ryan/dev/res/metadata/1
...
https://github.com/wcc19840827/opensea-creatures/blob/ryan/dev/res/metadata/12

# 提交后,使用了它们在github上的元文件
https://raw.githubusercontent.com/wcc19840827/opensea-creatures/ryan/dev/res/metadata/1

4. 在以太坊上部署NFT合约(测试网 rinkeby)

# 安装执行环境
yarn --ignore-engines

# 部署合约
== config file `.env` ==
export ALCHEMY_KEY="xxx-xxxx"			#以太坊公共[Infura](https://infura.io)节点的APIkey
export MNEMONIC="xxxx xxxx xxxx ..."	#钱包助记词
export NETWORK="rinkeby"

source .env
truffle deploy --network rinkeby
# 0xFE8E67e4AC541629FB44E15db1Cc6B8e61281f2E

# 升级合约
source .env
truffle migrate --reset --network rinkeby
# 0x6c2b98d14232a1dD6a1c27606a8750521045fc90
# 0xda4C41b950f06D1Ab3Bf335486254901428F122f

# mint (造一些NFT)
==修改 .env中的`NFT_CONTRACT_ADDRESS`为新的合约地址==
export OWNER_ADDRESS="0x4053484960b4c8C2Bde4934B258510b48eea0704"
export NFT_CONTRACT_ADDRESS="0xda4C41b950f06D1Ab3Bf335486254901428F122f"

source .env
node scripts/mint.js

5. 上架OpenSea (测试网)

# opensea上查看
https://testnets.opensea.io/assets/0xda4C41b950f06D1Ab3Bf335486254901428F122f/1

# 查看/验证 元数据是否OK
https://testnets-api.opensea.io/asset/0xda4C41b950f06D1Ab3Bf335486254901428F122f/1/validate/

# OpenSea将为您的资产缓存数据。强制更新您的商品
https://testnets-api.opensea.io/api/v1/asset/0xda4C41b950f06D1Ab3Bf335486254901428F122f/1/?force_update=true

# 在opensea上绑定新的NFT合约地址
https://testnets.opensea.io/get-listed/step-two
# 绑定后获得店铺地址
https://testnets.opensea.io/collection/opensea-creatures-keui1ob0sf

6. 在以太坊上部署NFT合约(主网)

使用正式钱包的助记词,且保证得有足够的ETH付邮费

  • 部署合约需要至少 0.025 ETH (约330 RMB)
  • 之后制造每个NFT,都需要Gas
# 安装执行环境
yarn --ignore-engines

# 部署合约
== config file `.env.mainnet` ==
export ALCHEMY_KEY="4cYjJylL-f6i5C0lKJnzhiH_14K23yDj"
export MNEMONIC="XXXXXXXX"
export NETWORK="mainnet"

source .env.mainnet
truffle deploy --network live

# 升级合约
source .env.mainnet
truffle migrate --reset --network live

# mint (造一些NFT)
==修改 .env.mainnet 中的`NFT_CONTRACT_ADDRESS`为新的合约地址==
export OWNER_ADDRESS="0x4053484960b4c8C2Bde4934B258510b48eea0704"
export NFT_CONTRACT_ADDRESS="0xda4C41b950f06D1Ab3Bf335486254901428F122f"

source .env.mainnet
node scripts/mint.js

7. 上架OpenSea (主网)

# opensea上查看
https://opensea.io/assets/0xda4C41b950f06D1Ab3Bf335486254901428F122f/1

# 查看/验证 元数据是否OK
https://api.opensea.io/asset/0xda4C41b950f06D1Ab3Bf335486254901428F122f/1/validate/

# OpenSea将为您的资产缓存数据。强制更新您的商品
https://api.opensea.io/api/v1/asset/0xda4C41b950f06D1Ab3Bf335486254901428F122f/1/?force_update=true

# 在opensea上绑定新的NFT合约地址
https://opensea.io/get-listed/step-two
# 绑定后获得店铺地址
https://opensea.io/collection/opensea-creatures-keui1ob0sf

往期精彩回顾:
区块链知识系列
密码学系列
零知识证明系列
共识系列
公链调研系列
比特币系列
以太坊系列
EOS系列
Filecoin系列
联盟链系列
Fabric系列
智能合约系列
Token系列
  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:36:24  更:2021-08-24 15:36:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:38:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码