前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >码农看享云链多资产token技术的原理与应用

码农看享云链多资产token技术的原理与应用

原创
作者头像
互链脉搏
修改2020-01-10 17:26:41
6190
修改2020-01-10 17:26:41
举报
文章被收录于专栏:区块链深度

企业为什么需要多资产token? 区块链上token是安全、可流通的数字权益证明,它可以代表任何的权益,比如使用权、股权等等。现实生活中的各种权益证明,不管是所有权还是著作权、债券还是代金券、货币还是票据的都可以数字化、通证化,并接入区块链平台进行快速而又安全的交易。 企业和个人在区块链上发行token资产已是当下区块链时代的时髦行为,因其可极大地降低交易成本。而一个运营能力专业,技术氛围良好,用户数量大,用途广泛,高效、安全与易用的商用区块链平台,才能保证资产切实有效的发行。 享云链率先原生支持单账户多币种,并支持通过合约发行隐私Token 目前像以太坊这样的公链,新增资产的发行、交易、转账都只能在合约中进行。对开发人员和资深用户来说,原生token与合约发行的token交易操作截然不同。虽然以太坊提出ERC-20等标准协议来支持用户发行资产,但用户仍需通过调用合约方式来进行转账操作,这种方式影响了转账效率(需要执行合约交易,拉起虚拟机),也引入了风险(非标准合约发行)。

图1:以太坊交易token的方式 享云链的多资产技术,既支持在合约上进行token的发行、转账,也支持使用原生交易进行转账。享云链对token的原生支持,将链上发行的token的账户-余额信息直接存储在区块链底层的存储模型中,合约中不必记录用户的token余额,只有需要发行方权限控制的发行操作才需调用合约。

图2:享云链交易token的方式 享云链上的多资产合约发行方法 目前看来,所有的享云链token都是按照下面这些方法来定义的。享云链支持solidity与C/C++几种语言。下面我们以C++语言合约代码为例,介绍下资产发行合约的相关内容。 合约方法:

  1. Name 可选,返回token的名字,便于展示,如: "LRCToken"。 (代码) tc::string Name();
    1. Symbol可选,返回token的简称 如:"LRC" (代码) tc::string Symbol();
  2. TotalSupply 可选 返回token发行总数。 (代码)tc::string TotalSupply();
  3. GetDecimals,返回token精度,即小数位数。 (代码)uint32_t GetDecimals();

5.TC_Issue资产发行函数,amount为发行token总量。 (代码)void TC_Issue(const char* amount); 举例说明个人资产发行合约 下面代码为一个资产发行合约的例子。该合约发行资产后,会将全部token转入给单个账户内。收到token的账户就可以管理资产,在享云链上进行资产的交易了。

include "tcmethod.hpp"//声明合约头文件

//发行时总量设置 1000*100000000

define E8 "00000000"

define AMOUNT "1000"

define TOTALSUPPLY AMOUNT E8

class LRCToken : public TCBaseContract{ //TCBaseContract合约基类 public:

代码语言:javascript
复制
//合约初始化函数,当合约部署时会自动调用
void Init(){
    //发行token,链上记账,此时balance[合约地址]=totalsupply
    TC_Issue(TOTALSUPPLY);
    transferALL();
}
//必选的合约接口
//精度
uint32_t decimals = 8;
uint32_t GetDecimals(){
    return decimals;
}
//可选的合约接口
//token简称
tc::string Symbol(){
    return "LRC";
}
//名字
tc::string name = {"LRCToken"};
tc::string Name(){
    return name;
}
//发行总量    tc::string TotalSupply(){
    return TOTALSUPPLY;
}

private:

代码语言:javascript
复制
//初始化时将所有token发送给指定账户
void transferALL(){
    //初始化时将token发送给指定账户
    tc::string AdminAddress= {"0x54fb1c7d0f011dd63b08f85ed7b518ab82028100"};
    TC_TransferToken(AdminAddress.c_str(), TC_GetSelfAddress(), TOTALSUPPLY);
}

}; TC_ABI(LRCToken, (Name)(GetDecimals)(Symbol)(TotalSupply)) //TC_ABI声明合约外部接口 以上就是相关合约代码的介绍,更多技术细节,可以访问项目github获取。 享云链上多资产技术与享云链其他技术的组合优势 享云链多资产赋予普通token资产以第一类资产的能力,让token资产能像原生数字货币一样自由流转,并能与任意的智能合约进行更复杂的交互操作。开发者能够通过智能合约发行Token资产,或通过跨链协议从其他现有公链转移数字货币到享云链上,还可以将链下的物理商品或资产Token化到享云链上,然后在享云链的去中心化交易所中进行交易。 也就是说,你的比特币、以太币等等所有的数字货币,都可以跨链转到享云链,然后享受到高性能的隐私保护和Defi等一条龙服务。这些跨链转入的加密货币(甚至是你用智能合约生成的token),都与其原生的链克具有同样的地位——直接在底层的账户模型中维护管理、执行公开或隐私的交易,而不是只能限制在智能合约内部。

图3:享云链支持合约发行多资产token

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • include "tcmethod.hpp"//声明合约头文件
  • define E8 "00000000"
  • define AMOUNT "1000"
  • define TOTALSUPPLY AMOUNT E8
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档