• STAKING ATLAS
  • 简体版 | 繁體版
  • 联系我们
  • 加入我们
  • 关于我们
  •  
  • 首页
  • 快讯
  • 专栏
  • 视频
  • 专题
  • DeFi优选
  • 滚动
  • 入驻碳链专栏
  • 碳链APP
    微信公众号

    扫码下载App

  • 登录
  • 微信公众号

    微信公众号

导航
  • 首页
  • 快讯
  • 区块链+
  • 专栏
  • 视频
  • 专题
  • DeFi优选
碳链价值APP
专注服务于金融科技和区块链
立即打开

实操讲解:如何装饰你的ERC721非同质化资产?

辉哥 •  2019-02-02
1、摘要前面2课讲解了如何部署ERC721非同质化资产,并作为海洋商店发布在OpenSea测试网络。本文以野狼队的

1、摘要

前面2课讲解了如何部署ERC721非同质化资产,并作为海洋商店发布在OpenSea测试网络。本文以野狼队的队员TOKEN为例,讲解如何配置图形/文字特有的ERC721非同质化资产。通过本文学习,你可以了解:(1)如何安装python;(2)如何通过python部署Http服务,用于提供meta信息;(3)通过REMIX发布ERC721到Rinkeby测试网络;(4)发布资产到OpenSea商店;

2、内容

2.1 ERC721资产的metadata说明

在上一篇《如何创建自己的ERC721非同质化资产生物商店?》文章中,我们描述了发布ERC721后,如何在OpenSea环境创建店铺的方法。

Creature的合约地址:0x5c1188ac19ce51cd5d2dcd10ff5c749417da42d1

不过这些店铺商品(ERC721资产)对应的LOGO和属性还是OpenSea默认的,并不是我们野狼队期望的LOGO资产。我们最好能够通过配置修改为我们支持的资产,我们就在OpenSea上修改资产配置吧。

要让OpenSea引入链下元数据(MetaData),这需要你的合约能返回查找元数据的位置。为此需要使用tokenURIERC721中的方法。让我们仔细看看tokenURICryptoPuff合同中的方法。

/** * @dev Returns an URI for a given token ID */ function tokenURI(uint256 _tokenId) public view returns (string) { return Strings.strConcat( baseTokenURI(), Strings.uint2str(_tokenId) ); }tokenURI在ERC721资产中的功能应返回HTTP或IPFS URL,例如https://api.cryptopuff.io/api/creature/3。查询时,此URL应依次返回你的通证(token)对应的metadata元数据的JSON数据块。作为在自有服务器上托管meta的替代方案,您可以使用Abacus协议自动将元数据与您的TOKEN ID相关联。【备注2019.01.30:请测试和跟Abacus CTO确认,他们网站已不提供metaDATA调用服务,还得自己搭建服务器了。】

OpenSea支持根据官方ERC721元数据标准构建的元数据。此外也还支持其他几个属性,以便更丰富地显示您的资产信息,也支持OpenSea市场上的所有排序和过滤功能。

以下是其中一个OpenSea生物的元数据示例:

{ "description": "Friendly OpenSea Creature that enjoys long swims in the ocean.", "external_url": "https://openseacreatures.io/3", "image": "https://storage.googleapis.com/opensea-prod.appspot.com/puffs/3.png", "name": "Dave Starbelly", "attributes": [ ... ], }以下是每个属性的工作原理:

属性

为了让您的商品更具吸引力,我们还允许您为元数据添加自定义“属性”,这些属性将显示在每个资产的下方。例如,以下是其中一个OpenSea生物的属性。

要生成这些属性,元数据中包含以下属性数组:

...{"attributes": [ { "trait_type": "base", "value": "starfish" }, { "trait_type": "eyes", "value": "big" }, { "trait_type": "mouth", "value": "surprised" }, { "trait_type": "level", "value": 5 }, { "trait_type": "stamina", "value": 1.4 }, { "trait_type": "personality", "value": "sad" }, { "display_type": "boost_number", "trait_type": "aqua_power", "value": 40 }, { "display_type": "boost_percentage", "trait_type": "stamina_increase", "value": 10 }, { "display_type": "number", "trait_type": "generation", "value": 2 } ]}这trait_type是特征的名称,是特征value的值,display_type是一个表示您希望如何显示特征的字段。对于string特质,你不必担心display_type。

对于数字特征,OpenSea目前支持三种不同的选项number(下图中右下方),boost_percentage(下图中左下方),boost_number(类似于boost_percentage但未显示百分号),以及ranking(右下图) )。默认值位于下图中的右上角。

最后,max_value是特征可能值的可选最大值。它默认为OpenSea迄今为止在合同资产上看到的最大值。

如果您不想拥有trait_type特定特征,则可以在特征中仅包含一个值,并将其设置为通用属性。例如,

{ "value": "happy" }],}

属性指南

在提出您的属性时,有几个重要的注意事项!您应该将字符串属性包含为字符串(记住引号),将数字属性包含为浮点数或整数,以便OpenSea可以适当地显示它们。您还应该使用下划线大小写(例如,max_power)这些属性在OpenSea上显示为人类可读的字符串。

2.2 部署PYTHON的HTTP服务器用于输出metaDATA信息

2.2.1 安装PYTHON

辉哥登录到 12.124.104.209 测试服务器,上传工程文件到以下目录:/home/wwwroot/workspace/blocktest/opensea-creatures

(1)切换到NPM V8.11.4 ,安装Python3
nvm use v8.11.4或者重新安装NPM V8.11.4版本。
(2) 完成python3的安装
参考《【实践】如何在Ubuntu系统安装python3.6》完成python3的安装。

2.2.2 安装配套软件

sudo apt install python3-pip
pip3 install flask【成功输出结果】
[root@iZ23prr3ucfZ metadata-api]# pip3 install flaskCollecting flask Downloading https://files.pythonhosted.org/packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl (91kB) 100% |?..?..?..?..?..?..?..?..?..?..?..?..?..?..?..?..| 92kB 271kB/s Collecting Werkzeug>=0.14 (from flask) Downloading https://files.pythonhosted.org/packages/20/c4/12e3e56473e52375aa29c4764e70d1b8f3efa6682bef8d0aae04fe335243/Werkzeug-0.14.1-py2.py3-none-any.whl (322kB) 100% |?..?..?..?..?..?..?..?..?..?..?..?..?..?..?..?..| 327kB 548kB/s Collecting click>=5.1 (from flask) Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB) 100% |?..?..?..?..?..?..?..?..?..?..?..?..?..?..?..?..| 81kB 5.4MB/s Collecting Jinja2>=2.10 (from flask) Downloading https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl (126kB) 100% |?..?..?..?..?..?..?..?..?..?..?..?..?..?..?..?..| 133kB 561kB/s Collecting itsdangerous>=0.24 (from flask) Downloading https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whlCollecting MarkupSafe>=0.23 (from Jinja2>=2.10->flask) Downloading https://files.pythonhosted.org/packages/08/04/f2191b50fb7f0712f03f064b71d8b4605190f2178ba02e975a87f7b89a0d/MarkupSafe-1.1.0-cp36-cp36m-manylinux1_x86_64.whlInstalling collected packages: Werkzeug, click, MarkupSafe, Jinja2, itsdangerous, flaskSuccessfully installed Jinja2-2.10 MarkupSafe-1.1.0 Werkzeug-0.14.1 click-7.0 flask-1.0.2 itsdangerous-1.1.0You are using pip version 9.0.1, however version 19.0.1 is available.You should consider upgrading via the 'pip install --upgrade pip' command.
pip3 install Pillow
【成功结果输出】[root@iZ23prr3ucfZ metadata-api]# pip3 install PillowCollecting Pillow Downloading https://files.pythonhosted.org/packages/85/5e/e91792f198bbc5a0d7d3055ad552bc4062942d27eaf75c3e2783cf64eae5/Pillow-5.4.1-cp36-cp36m-manylinux1_x86_64.whl (2.0MB) 100% |?..?..?..?..?..?..?..?..?..?..?..?..?..?..?..?..| 2.0MB 245kB/s Installing collected packages: PillowSuccessfully installed Pillow-5.4.1You are using pip version 9.0.1, however version 19.0.1 is available.You should consider upgrading via the 'pip install --upgrade pip' command.原来的APP.py还要安装以下插件,辉哥考虑到国内用户无GOOGLE相关服务,评估了相关代码。以下插件也就不要安装了。
pip3 install protobufpip3 install --upgrade google.cloudpip3 install google-cloud-pubsubpip3 install --upgrade google-cloud-storage
2.2.3 运行PYTHON HTTP服务
python3 app.py
【成功输出结果】* Detected change in '/home/wwwroot/workspace/blocktest/opensea-creatures/metadata-api/app.py', reloading * Restarting with stat * Debugger is active! * Debugger PIN: 786-196-151^C[root@iZ23prr3ucfZ metadata-api]# python3 app.py * Serving Flask app "app" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: on * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 786-196-151【常见问题1】python flask无法通过浏览器访问公网ip用PYTHON3部署的HTTP服务,第一次只能本地访问,输出关键信息如下
  • Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
如果要更改IP为外部IP,修改app.py的代码为如下:app.run(host='0.0.0.0',port=5000,debug=True, use_reloader=True)

只要用户开启服务的情况下,就可以外部IP访问了:http://112.124.104.209:5000/api/creature/3如果无法访问,应该是辉哥关闭该HTTP服务了。

【常见问题2】云服务器 ECS Linux SSH 客户端断开后保持进程继续运行配置方法使用 nohup 执行可保持允许运行。nohup 的作用顾名思义,它使得后面的命令不会响应挂断(SIGHUP)信号。也就是说,通过远程登录执行 nohup 后,即使退出登录后,程序还是会正常执行。通常情况下,nohup 命令最后会跟上 & 字符,表示将这个命令放至后台执行,这样才能真正做到将这个命令放至后台持续的执行。

nohup python3 app.py &
在命令头尾分别加上 nohup 和 &,变为nohup python3 app.py &,可以看到 nohup 输出了一行信息,再按一下回车键就跳回了 shell 命令行,此时命令已经在后台执行了,nohup 将命令的输出重定向至当前目录的 nohup.out 文件中。同时注意到 nohup 会将对应程序的 PID 输出,PID 可用于需要中断进程时 kill 进程。[root@iZ23prr3ucfZ metadata-api]# nohup python3 app.py &[1] 28202[root@iZ23prr3ucfZ metadata-api]# nohup: ignoring input and appending output to `nohup.out'可以查看到28202进程在退出后还存在。[root@iZ23prr3ucfZ metadata-api]# ps -ef|grep python3 root 28202 14798 0 20:24 pts/0 00:00:00 python3 app.pyroot 28204 28202 1 20:24 pts/0 00:00:02 /usr/bin/python3 app.pyroot 29415 14798 0 20:28 pts/0 00:00:00 grep python32.3 装饰ERC721非同质化资产

2.3.1 修改智能合约的metaDATA的服务器URI地址

文件名称: Creature.sol:

contract Creature is TradeableERC721Token { constructor(address _proxyRegistryAddress) TradeableERC721Token("Wild Wolf Team", "WOLF", _proxyRegistryAddress) public { }

function baseTokenURI() public view returns (string) { /* return "https://opensea-creatures-api.herokuapp.com/api/creature/";*/ return "http://112.124.104.209:5000/api/creature/"; }}

2.3.2 部署合约

参考《第三十三课 如何创建自己的ERC721非同质化资产生物商店?》完成合约部署。获得智能合约的地址:0x2f4acf4e627b4c9dbf1a967a4b23be2874032a73点击mintTo函数,发布5个 ERC721 TOKEN。

2.3.3 创建商店

点击进入 https://rinkeby.opensea.io/get-listed/step-two网址,输入该ERC721的智能合约地址:0x2f4acf4e627b4c9dbf1a967a4b23be2874032a73就可以发布野狼队队徽商铺了。可点击查看:

https://rinkeby.opensea.io/assets/0x2f4acf4e627b4c9dbf1a967a4b23be2874032a73/1https://rinkeby.opensea.io/assets/0x2f4acf4e627b4c9dbf1a967a4b23be2874032a73/2...https://rinkeby.opensea.io/assets/0x2f4acf4e627b4c9dbf1a967a4b23be2874032a73/6

3,参考

1)OpenSea开发指南之增加metadata2) OPEN API接口3)ERC-721 metadata standards and IPFS4)Walking Through the ERC721 Full Implementation5)【实践】如何在Ubuntu系统安装python3.6
展开全文
打开碳链价值APP  查看更多精彩资讯
声明:本文内容为作者独立观点,不代表碳链价值立场,且不构成任何投资理财建议。
0 0
数字资产以太坊erc721技术指南

扫一扫,分享到微信

相关推荐

硅谷王川:以太坊费用为什么这么高? 一线

硅谷王川:以太坊费用为什么这么高?

硅谷王川 2021-02-26 一线
以太坊RollupOptimismUniswapPolygonLoopringzk-rollup
以太坊的交易费用计算,主要由两个概念相乘而得,一个是燃气价格, 一个是燃气限额,二者相乘,就得出用「以太币」为单位的交易费用。
区块链开发趋势报告:DeFi推动加密经济进入创新最密集阶段 一线

区块链开发趋势报告:DeFi推动加密经济进入创新最密集阶段

火星财经 2021-02-26 一线
Filecoin项目进度DeFi以太坊开源项目区块链开发
最近,欧洲区块链风险投资公司Outlier Ventures发布2021区块链开发趋势报告,深入分析过去12个月时间里,区块链核心项目、DeFi和NFT项目发展趋势,整理并解释了有关区块链开发趋势的最新数据,并揭示了2021年一些强劲指标。
Vitalik:我为什么不担心EIP-1559中的松弛区块容量? 深度

Vitalik:我为什么不担心EIP-1559中的松弛区块容量?

ETH中文站 2021-02-24 深度
Vitalik以太坊
Vitalik三点回应对EIP-1559中松弛区块容量的质疑。

碳链快讯更多 ›

2021-02-28

V神:解决以太坊扩容问题比以太坊2.0更紧迫

2021-02-28

BSN将于4月30日进行下一次季度版本迭代更新

2021-02-28

哈佛大学教授:中央银行绝不会允许比特币进入主流资产类别

2021-02-28

拜登:希望参议院迅速就刺激法案采取行动

2021-02-28

USDC市值突破90亿美元

2021-02-28

分析师:比特币的风险调整回报率高于其他资产

2021-02-28

数据:比特币鲸鱼数量已开始下降,原因在于托管钱包的重组

2021-02-28

安全公司:Furucombo漏洞和Primitive Finance出现的漏洞原理相同,与用户的无限授权有关

2021-02-28

DeFi聚合平台Furucombo遭遇攻击,约1500万美元资金受到影响

2021-02-28

数据:加密货币2月交易量首次超1万亿美元,创历史记录

2021-02-28

亿万富翁Mark Cuban :DeFi即将给许多行业带来革命性变化

2021-02-28

全球加密交易所稳定币持有量达78.09亿美元

2021-02-27

Coinbase首席执行官净资产在70亿美元至150亿美元之间

2021-02-27

以太坊2.0网络验证节点数量超10万个

2021-02-27

Doge照片被贴上SpaceX SN56猛禽发动机

2021-02-27

数据:目前反对EIP-1559矿池算力占全网63%

2021-02-27

分析师:矿工已停止抛售并开始积累比特币

2021-02-27

速汇金CFO:很难弥补与Ripple终止合作而损失的收入

2021-02-27

美国众议院通过拜登提出的1.9万亿美元刺激法案

2021-02-27

OKT突破115美元,续刷历史新高

2021-02-27

ADA突破1.3 USDT

2021-02-27

家乐福将利用IBM区块链技术追踪鸡肉和蔬菜供应

2021-02-27

NFT代币总市值突破30亿美元

2021-02-27

Robinhood计划于3月份以「保密方式」申请IPO

2021-02-27

灰度以太坊信托基金首次出现折价交易

2021-02-27

Beeple将于2月28日8:00发售1美元特价加密艺术NFT

2021-02-27

Chainlink扩大赏金计划,为披露关键漏洞者提供10万美元

2021-02-27

币印潘志彪:EIP1559没有解决问题

2021-02-27

Coinbase在上市文件中暗示可能发行平台币

2021-02-27

美国SEC审查员提醒主流机构在引入数字资产时要谨慎行事

2021-02-27

Galaxy Digital高管:安全和税收问题或阻碍机构购买加密货币

2021-02-27

NBA Top Shot以105万美元售出篮球视频包,创历史记录

2021-02-27

Coinbase已为大机构执行超10亿美元加密货币交易

2021-02-27

彭博社分析师:美国SEC批准BTC ETF只是时间问题

2021-02-27

美国肯塔基州立法者提议将清洁能源激励措施扩展至加密矿工

2021-02-26

电商平台Etsy CEO:比特币可能会达到100万美元,也可能变成1美元

2021-02-26

美国众议院计划在今晚通过其1.9万亿美元刺激计划

2021-02-26

灰度考虑增加新的加密货币投资产品,包括AAVE、FLOW等23个币种

2021-02-26

以太坊社区正举行电话会议讨论EIP-1559的实施

2021-02-26

比特币矿企Hut 8持有超3000枚比特币,价值约1.5亿美元

2021-02-26

欧易OKEx研究院首席研究员:十年期美国国债收益率是预测经济走势的良好指标

2021-02-26

报告:ETP管理数字资产本月达439亿美元

2021-02-26

当前比特币全网未确认交易为60057笔

2021-02-26

世界黄金协会:比特币无法从根本上代替黄金在投资组合中作用

2021-02-26

蚂蚁矿机S19j新春第一批次售罄,定购合约得到长期客户认可

2021-02-26

Coinbase报告:2020年存储资产总计达900亿美元

2021-02-26

上市矿业公司Hive Blockchain收购两个比特币挖矿设施

2021-02-26

Bitfly:希望减少L1拥堵,Ethermine矿池正在考虑L2支出

2021-02-26

万事达卡执行副总裁:比特币波动性阻碍了它成为一种优质支付工具

2021-02-26

Cardano成为市值第三大加密货币

推荐文章

  • 拜登将任命加密专家Gary Gensler为美SEC主席

    2021-01-13

  • 周小川:数字人民币之父

    2020-12-16

  • 变革时刻:信用卡巨头Visa宣布将稳定币USDC接入其6000万商家全球支付网络

    2020-12-03

  • 专题报道:Facebook明年1月重新推出Libra

    2020-11-27

  • 华尔街正在垄断BTC

    2020-11-20

碳链专栏作者更多 ›

链集市ChainMarket
链集市ChainMarket
文章: 20
  • 区块链产业周刊丨区块链工程技术人员国标颁布;科技部支持深圳强化关键核心技术攻关;美国怀俄明州引入针对区块链备案系统的法案;
  • 企业区块链手册:12个应引起关注的原则
  • 万字详解:区块链如何改变万亿级银行业?
加密谷Live
加密谷Live
文章: 721
  • 一文了解全球前十大加密货币友好国家
  • 一文梳理Coinbase招股书透露出哪些关键信息
  • 从货币历史看比特币诞生和发展
王永利
王永利
文章: 51
  • 王永利:中国与SWIFT联手成立数字货币网关信息服务公司意义重大
  • 王永利:如何看待美国OCC放宽稳定币使用
  • 王永利:数字人民币不应定位于M0
换一批

热门标签

新基建 比特币 以太坊 矿业 DeFi 共识对话 区块链+ 研报 美联储 央行数字货币 无限QE 加密衍生品 AI 云计算 大数据 5G 政策 交易所 稳定币 电子支付 Libra 算力产业 联盟链 公链 区块链 加密货币 Nervos Cosmos EOS STO

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

App内打开

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

Moshou

碳链价值是集资讯、行情、数据于一身的区块链信息服务平台,我们追求及时、全面、专业、精确的资讯与数据,致力于为区块链创新者和数字货币投资者提供优质的服务。

关于我们 加入我们 联系我们 隐私条款

行业伙伴

微信公众号

扫一扫关注微信公众号

Copyright © 2018-2020 碳链价值 京ICP备18046423号
下载碳链App

下载碳链App

微信公众号

微信公众号

微信公众号

微信公众号

打赏文章作者

支付宝打赏二维码 支付宝扫一扫打赏
微信打赏二维码 微信扫一扫打赏

# 热门搜索 #

央行数字货币 比特币 DeFi 以太坊 区块链