前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【5分钟玩转Lighthouse】快速发行数字藏品

【5分钟玩转Lighthouse】快速发行数字藏品

原创
作者头像
长安链 ChainMaker
修改2022-07-14 16:33:10
1.2K0
修改2022-07-14 16:33:10
举报
文章被收录于专栏:长安链_ChainMaker长安链_ChainMaker

1、整体介绍

Lighthouse 长安链发布上线后在社区广受好评,同时也有不少社区朋友前来咨询小编如何基于Lighthouse 长安链开发自己的应用,比如区块链数字藏品、区块链存证、区块链游戏等等,那必须得安排。

因此我们将持续的根据应用场景推出教程文章。

其中数字藏品是指使用区块链技术,对特定的作品、艺术品生成的在区块链上生成唯一数字凭证,本文将将讲述如何通过Lighthouse 长安链镜像,在长安链上快速发行数字藏品。

主要内容如下:

  • 购买lighthouse长安链镜像,自动部署长安链和长安链管理台应用
  • 准备好所要发行的数字藏品的基本信息
  • 登录长安链管理台,通过可视化界面发行和管理数字藏品

2、购买Lighthouse + 长安链服务

我们首先在腾讯云Lighthouse轻量应用服务器购买页面,购买一台服务器。如下图所示。

服务器具体配置如下

  • 镜像类型:应用镜像
  • 应用名称:长安链Chainmaker
支付页面
支付页面

点击立即购买,按步骤付款之后,即可在自己购买的腾讯云服务器上拥有了一套长安链环境。

3、通过长安链管理台发行数字藏品

此处我们以给账户地址为:0x96759b16ab543551D06B5E6B0E4f887C9401b651 的用户派发以下图为基础生成的数字藏品为例

示例数字藏品.png
示例数字藏品.png

3.1、登录长安链管理台

Lighthouse管理台首页
Lighthouse管理台首页

进入Lighthouse(轻量应用服务器)控制台,在服务器模块找到自己购买的长安链服务,点击进入服务详情。

应用管理
应用管理

在应用管理里,找到长安链管理台应用,其中

  • 登录地址为该管理台的访问地址
  • 默认到账户名为admin,默认密码可点击登录按钮,登录到服务器内并输入如下指令获取密码。 cat /home/chainmaker/credentials.txt
登录
登录

使用上文获取到的账户和密码登录管理台。

3.2、查看长安链

区块链列表
区块链列表

登录后在区块链管理处,可看到已经内置部署的长安链,主要配置信息如下

序号

内容

说明

1

长安链版本

V2.2.1

2

链id

chain1

3

组织数

4个组织

4

节点数

4个共识节点

5

共识算法

TBFT

6

单区块最大交易容量

100笔交易

7

交易过期时长

600s

8

交易间隔

2000ms

9

是否支持docker_VM

支持

3.3、查看智能合约

合约列表
合约列表
  • 进入区块链管理-合约管理的界面,可以看到已经内置部署的几个常用的智能合约。包含存证合约,转账合约,ERC-20合约,ERC-721合约。
  • 合约的源代码及详细介绍,可查看合约介绍章节。

3.4、使用智能合约发行数字藏品

切换到区块链管理-上链管理界面,点击发起上链按钮,调用已经安装的ERC-721合约发行新的数字藏品。

上链记录列表
上链记录列表
发行新数字藏品.png
发行新数字藏品.png
  • 然后再选择数字藏品(ERC-721)合约,并选择调用mint合约方法,然后输入所需的参数。其中:
    • 接收人:0x96759b16ab543551D06B5E6B0E4f887C9401b651
    • tokenid:该数字藏品图片的SHA256哈希值。
    • tokenRUI:以如下json串为值
代码语言:txt
复制
{
    "name": "testNFT",
    "description": "演示发行新的数字藏品",
    "metadata": [
        {
            "name": "lzsqh9fevc.jepg",
            "ext": "jepg",
            "size": "532480",
            "uri": "https://ask.qcloudimg.com/http-save/2491414/lzsqh9fevc.jpeg?imageView2/2/w/1620",
            "sha256": "385dd7718daf8a5ff38584659a846697d05a7e6bfd8a0c8a01bc9ef3de5f1480"
        }
    ]
}
  • 点击确认,即完成发行新数字藏品的过程。发送成功后,可到区块链浏览器里查看详情。
查看交易详情.png
查看交易详情.png

3.6、管理数字藏品

除了发行数字藏品外还可通过管理台管理数字藏品,如查询、销毁,转让等。可根据实际的需求,在发起上链处,选择不同的合约方法,传入对应的参数进行管理操作。

合约方法.png
合约方法.png

此外,也支持通过长安链SDK等方式,直接调用智能合约,发行并管理数字藏品。

3.7、部署新的智能合约

若有部署新的智能合约(包含但不限于数字藏品类的合约)的需求,可以通过长安链管理台或者SDK将合约部署到长安链在进行管理。

image.png
image.png

4、数字藏品(ERC721)合约介绍

4.1、合约列表

目前在lighthouse 长安链中预先部署了4个示例合约,如下表所示:

序号

合约名称

合约功能

1

SaveContract

存证合约,可保存Key-Value及描述信息

2

TransferContract

普通转账合约,用于普通的转账业务,无权限等相关设计

3

ERC20Contract

ERC20合约,基本符合以太坊官方标准,可作为Token发布的Demo

4

ERC721Contract

ERC721合约,基本符合以太坊官方标准,可作为NFT发布的Demo

并在 /home/chainmaker/contract/demos目录中,放置了合约源码,及部分单元测试代码

image.png
image.png

下文我们主要介绍下数字藏品(ERC721)合约。

4.2 合约初始化

合约在初始化的过程中可以设置一些基础配置,包括发行NFT的名称、简称等信息,若不设置则会使用合约代码中默认的配置。初始化过程中涉及到的参数配置列表说明如下:

参数名

参数含义

默认值

name

token名称

NFT-DEMO

symbol

token简称

NFDO

4.3 合约函数集

函数名

函数类型

函数说明

入参说明

返回值

备注

name

查询

查询NFT名称

该NFT的名称

任何账号都可以查询

symbol

查询

查询NFT简称

该NFT的简称

任何账号都可以查询

tokenURI

查询

查询指定NFT的URI配置信息

tokenId: NFT唯一标识

该NFT的URI配置信息

任何账号都可以查询

totalSupply

查询

查询已发布的NFT数量

该NFT的数量

任何账号都可以查询

tokenByIndex

查询

查询所有NFT集合中某个序号的NFT标识

index: 该NFT在整个列表中的序号

对应序号的NFT标识(tokenId)

任何账号都可以查询

tokenOfOwnerByIndex

查询

查询某个账号下某个序号的NFT标识

owner: 查询的账号; index: 查询的序号

对应序号的NFT标识(tokenId)

任何账号都可以查询

balanceOf

查询

查询某个地址拥有的NFT数量

owner: 查询的账号

该地址拥有的NFT数量(销毁的不计算在内)

任何账号都可以查询

ownerOf

查询

查询某个NFT的拥有者

tokenId: NFT唯一标识

拥有该NFT的地址

任何账号都可以查询

transferFrom

执行

将NFT从一个地址转移至另外的地址

from: 转出的地址(可选,不填时为当前账号); to: 转入的地址; tokenId: NFT唯一标识

字符串:“success”

若from不是该NFT的拥有者需要其拥有者进行授权

safeTransferFrom

执行

安全地将NFT从一个地址转移至另外的地址

from: 转出的地址(可选,不填时为当前账号); to: 转入的地址; tokenId: NFT唯一标识 data: 校验的内容,通常由to地址对应用户给出,可通过setCheckData设置

字符串:“success”

若from不是该NFT的拥有者需要其拥有者进行授权

approve

执行

授权用户可代替自己操作某个NFT

approved: 被授权的账号 tokenId: 授权的的NFT唯一标识

字符串:“success”

该操作会覆盖掉之前授权的账号

setApprovalForAll

执行

设置某个用户对自己所有token的授权状态

operator: 授权/回收授权的账号 approved: 被授权的状态,0:不授权,1:授权

0:不授权,1:授权

该授权的优先级比approve更高

getApproved

查询

获取某个NFT授权操作的地址

tokenId: NFT唯一标识

该NFT的授权操作地址

任何账号都可以查询,但只可查询自己的授权情况

isApprovedForAll

查询

获取指定用户对某操作者的授权状态

owner : 指定的用户(可选,不填代表自己) operator : 被授权的操作地址

0:不授权,1:授权

任何账号都可以查询

mint

执行

增发指定的NFT至某个账号

to: 增发给的账号(可选,不填时则增发给自己) tokenId: NFT唯一标识 tokenURI: NFT的URI属性

NFT的唯一标识(tokenId)

任何账号都可以增发,但tokenId不能重复

burn

执行

销毁某个指定的NFT

tokenId: NFT唯一标识

字符串:“success”

该账号必须是该NFT的拥有者,授权不可以

setTokenURI

执行

设置NFT的URI属性

tokenId: NFT唯一标识 tokenURI: NFT的URI属性

字符串:“success”

该账号必须是该NFT的拥有者,授权不可以,但为保障唯一性,不建议调用该函数

setCheckData

执行

设置账号的check数据

data: 设置的check数据

字符串:“success”

该账号只可设置自己的data,该data供safeTransferFrom中的data校验

checkData

查询

查询设置的check数据

该账号设置的check数据

任何账号都可以查询

address

查询

返回当前用户地址

该用户的地址

任何账号都可以查询

4.4 合约使用指南

交易发起者的地址需要用户通过调用合约中address()方法获取。

ERC721是一个发行NFT的合约,可通过该合约发行NFT或转让NFT等操作。它的核心流程包括以下几个步骤:

  • 发布合约:即初始化合约,可在初始化的时候设置该类NFT的名称(name)和简称(symbol);
  • 发布NFT:调用合约的 mint 方法可发行指定的NFT,建议在发行时就设置NFT的URI信息,不建议调用 setTokenURI 进行调整;
  • 授权NFT:即授权别人操作自己的NFT,可通过 approve 方法进行某个NFT的授权,也可以通过 setApprovalForAll 函数授权某个用户替代自己的所有操作,这两者中后者的优先级更高,当然用户可通过调整合约方式来实现自己的逻辑;
  • 普通转移NFT:可通过调用合约的 transferFrom 方法,实现NFT的转移,若当前操作者不是对应NFT的拥有者,则需要其拥有者为当前操作者进行授权;
  • 安全转移NFT:可通过调用合约的 safeTransferFrom 方法实现NFT的安全转移,所谓的安全转移是指在转移的内容中添加了 data 参数,可通过对data的校验来实现安全的操作;
  • 销毁NFT:当用户不再想使用NFT时,可通过 burn 函数实现对NFT的销毁,销毁后无法找回。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、整体介绍
  • 2、购买Lighthouse + 长安链服务
  • 3、通过长安链管理台发行数字藏品
    • 3.1、登录长安链管理台
      • 3.2、查看长安链
        • 3.3、查看智能合约
          • 3.4、使用智能合约发行数字藏品
            • 3.6、管理数字藏品
              • 3.7、部署新的智能合约
              • 4、数字藏品(ERC721)合约介绍
                • 4.1、合约列表
                  • 4.2 合约初始化
                    • 4.3 合约函数集
                      • 4.4 合约使用指南
                      相关产品与服务
                      轻量应用服务器
                      轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档