08《区块链财富指北》智能合约篇(2):发行自己的链上通证(Token)。

智能合约(2):发行自己的链上通证(Token)。

《区块链财富指北》系列文章由NOCY.COM策划,肖南飞主笔撰写。
技术选型基于BOScore公链,旨在以有趣易懂的方式传播普及区块链技术,不构成任何投资建议!

0x01 通证经济

Token一词,开始有人翻译为“代币”,好理解但是不够准确。
孟岩老师后来重新把token翻译为“通证”,即可流通的加密数字凭证。
既包含有代币、积分的意思,也可以理解为进入某区块链项目的通行证。
通证(Token)本身是没有价值的,只是价值的载体。
需要依附于链上或者链下的项目,来承载对应的价值。
当然,共识也是一种价值,而且是一种很强大的价值。
比如黄金、比如比特币,他们的价值主要来源于强大的共识。
在这篇文章里,我们来体验下如何发行自己的链上通证(Token)。

0x02 发行通证的实现源码

eosio系统有一个官方的eosio.token智能合约,
实现了公链权益代币(如EOS、BOS、YAS等)的铸造、发行和转移等功能。

基于eosio.token合约源码,
并参考了BOS主网上的恶意行为账号冻结转账黑名单机制。
修改完善了一个一键发行通证(代币Token)的智能合约。
具体源代码可以在github上下载:
https://github.com/NOCYCOM/tokens
在这里插入图片描述

主要改进有两点:
1.集成了BOS主网的黑名单制度,在授权后可以对恶意行为的账号进行冻结通证转账操作。
2.去除了只有合约账号才能通过智能合约发行通证的限制,任意账号都可以通过该合约进行发行通证操作。

从githubs上下载该合约后,目录结构如下:
在这里插入图片描述

EOSIO系统的智能合约采用C++语言编写。
在源码包里的cpp是智能合约主文件,hpp是头文件。

0x03 编译合约并部署上链

进入docker环境并采用eosio-cpp进行编译,代码如下:
docker exec -it boscdt /bin/bash
cd data/eosio.token
eosio-cpp -I include -o eosio.token.wasm src/eosio.token.cpp --abigen

在这里插入图片描述

查看下文件夹,可以看到编译生成了wasm和abi两个文件。
在这里插入图片描述

下面,我们将编译好的wasm和abi上传部署到BOS主网账号tokens上。
cleos -u https://api.boscore.io set contract tokens ~/boscdt/eosio.token --abi eosio.token.abi -p tokens@active -x 1000
在这里插入图片描述

区块浏览器上查看下tokens账号:
在这里插入图片描述

合约已经成功部署到BOS主网的tokens账号。

0x04 发行自己的通证

我们用boscfzb12345账号测试下,调用tokens账号的合约发行自己的通证。
首先,我们调用合约铸造总量为10亿的CFB(财富通证)。
cleos -u https://api.boscore.io push action tokens create '["boscfzb12345", "1000000000.0000 CFB"]' -p boscfzb12345@active
在这里插入图片描述

然后,先释放1个亿的CFB(财富通证)到市面上流通。
cleos -u https://api.boscore.io push action tokens issue '["boscfzb12345", "100000000.0000 CFB", ""]' -p boscfzb12345@active
在这里插入图片描述

打开区块浏览器,查看下boscfzb12345的CFB(财富通证)。
https://bos.bloks.io/account/boscfzb12345#tokens
在这里插入图片描述

在Tokens一栏中,已经有了释放出来的1个亿的CFB。

0x05 通证转账

下面体验下转账流程,发送给ox账号1个CFB。
cleos -u https://api.boscore.io push action tokens transfer '[ "boscfzb12345", "ox", "1.0000 CFB", "test" ]' -p boscfzb12345@active
在这里插入图片描述

再在区块浏览器上查看下boscfzb12345和ox两个账号的情况:
https://bos.bloks.io/account/boscfzb12345#tokens
在这里插入图片描述

boscfzb12345上的CFB少了1个CFB。
而ox的账号上多了1个CFB。
https://bos.bloks.io/account/ox#tokens
在这里插入图片描述

0x06 下篇内容预告

从下篇文章开始,我们探索DAPP。
DAPP(1):钱包内嵌DAPP的调用和交互。

DAPP全称decentralized application,意思就是分布式应用或去中心化应用。
DApp通常指建立在区块链网络自身节点上、不依赖于任何中心化服务器的应用程序.
它们通过对等节点网络上分发关键组件,并多半辅以配套的Token机制。
传统手机APP通常是“前端–API–数据库”的形式,
前端拥有数以百万计的用户,后端仍是中心机构绝对控制,
用户的数据安全往往只能依赖于中心机构的信誉度。
如facebook等大公司盗用数据的丑闻屡见不鲜。
DApp采用“前端——智能合约——区块链”模式,
用户的数据安全通过密码学和计算机代码进行保全。
革命性的用算法机制实现“陌生人信任”,重塑人类的协作关系。
App的崛起和爆发某种程度上意味着移动互联网时代的全面到来,
DApp也必将取代App,把区块链的梦想照进现实,开启一个崭新的时代。

0x07 联系及投票支持

《区块链财富指北》系列文章github存档地址:http://nocycom.github.io
NOCY.com团队致力于区块链基础知识传播,欢迎读者朋友留言共同交流。

由于发文时间仓促及区块链领域技术迭代频繁,在教程中可能有这样或那样的错漏之处,还请读者与我们一起查漏补缺、将系列教程优化的更好。

如果觉得这系列教程有点意思,请投票支持我们的节点:BOS公链NOCYCOM节点EOS公链NOCYCOM节点。您的投票是本教程持续更新的动力源泉,谢谢。

猜你喜欢

转载自blog.csdn.net/weixin_42099193/article/details/108531239