比原BMIP002协议

概述

比原链技术社区最近提出了一套资产规范提议,该提议允许在issue类型的交易中实现标准资产token。该标准定义资产在链上的基本功能,以及发行人通过智能合约管理资产的规范。

功能

资产是一种可以在区块链上发行的价值,给定资产的的所有单位都是可替代的。

每个资产都有全球唯一的资产ID,该资产ID来自发行程序和资产定义,发行程序通常定义一组可能的签名秘钥和阀值数量的签名,这些签名必需被提供以授权发布资产的新单元。

资产定义由提交给区块链的任意键值数据组成,提供所有参与者查看。

该标准为用户提供了一种发行资产的简单方法。它允许任何满足Bytom标准的token很容易被其他应用程序支持:比如钱包,区块链浏览器,到交易所。

一个例子是商家可以在很短的时间内在他们的商业应用中列出token。

规则

资产定义

以下规范使用标准均JSON模式的语法

语法 介绍
name 定义的资产token名字
symbol 定义的资产
decimals 定义token使用的小数位数
quorum 定义必须交易签名以发出此token单位的可能签名密钥的阈值数。
reissue 定义标志是否可以多次发布资产
description 包括由任意键值数据组成的资产描述

Issuance Program

创建资产时,Bytom会自动创建具有智能合约的发行程序。发行人可以根据需要多次发布任意数量的单位。自定义发行计划可能会对何时,以及由谁发布新单位强制执行进一步的限制。

提示: 以下代码片段未在Equity0.1.1(或更高版本)中编写。我们建议没有限制的发行资产程序和至少2个签名秘钥

    contract  IssueAsset(publicKey1: PublicKey,
publicKey2: PublicKey,
publicKey3: PublicKey) locks valueAmount of valueAsset
{
clause spend(sig1: Signature, sig2: Signature) {
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])
unlock valueAmount of valueAsset
}
}
Issuance Program will be inactive after certain block height by adding the limitHeight parameter.
contract IssueAssetWithLimit(publicKey1: PublicKey,
publicKey2: PublicKey,
publicKey3: PublicKey,
limitHeight: Integer) locks valueAmount of valueAsset
{
clause spend(sig1: Signature, sig2: Signature, limitHeight: Integer) {
verify below(limitHeight)
verify checkTxMultiSig([publicKey1, publicKey2, publicKey3], [sig1, sig2])
unlock valueAmount of valueAsset
}
}

比原BMIP002协议在blockmeta中的展示

通过上面对BMIP002协议的介绍,我们知道BMIP002协议本质是对发行在比原链上的资产的一个规范,那接下来我们介绍一下这套规范在blockmeta中的具体展示。

blockmeta官网:https://blockmeta.com/

在blockmeta中主要展示在3个地方,第一点:我们打开我们发行的资产详情页面,如图中圈起来的标识,如果满足BMIP002协议的资产,会显示YES。下图中的资产不支持BMIP002协议,所以显示NO。

第二点,打开资产列表页面,如果发行的资产支持BMIP002协议,资产名的又下角会显示logo。且在整个资产列表中,支持BMIP002协议的资产排序是靠前的。

最后一点是,我们打开一笔交易的详情,找到一笔交易的地址,我们打开地址详情页面,可以看到属于该地址的资产。如下图:

以上就是BMIP002协议在blockmeta中的具体展示。

BMIPs:https://github.com/Bytom/bmips

BMIP002协议介绍的更多相关文章

  1. TCP/IP 协议介绍

    转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...

  2. 第二章 ZAB协议介绍

    ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法. ZAB 协议并不像 Paxos 算法那样,是一种 ...

  3. JSON-RPC轻量级远程调用协议介绍及使用

    这个项目能够帮助开发人员利用Java编程语言轻松实现JSON-RPC远程调用.jsonrpc4j使用Jackson类库实现Java对象与JSON对象之间的相互转换.jsonrpc4j包含一个JSON- ...

  4. [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP       ...

  5. Python基础教程之udp和tcp协议介绍

    Python基础教程之udp和tcp协议介绍 UDP介绍 UDP --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但 ...

  6. 常用音频协议介绍&&有关音频编码的知识与技术参数

    (转载)常用音频协议介绍 会议电视常用音频协议介绍及对比白皮书 一.数字化音频原理:声音其实是一种能量波,因此也有频率和振幅的特征,频率对应于时间轴线,振幅对应于电平轴线.通常人耳可以听到的频率在20 ...

  7. 各种开源协议介绍 BSD、Apache Licence、GPL V2 、GPL V3 、LGPL、MIT_转

    转自:各种开源协议介绍 BSD.Apache Licence.GPL V2 .GPL V3 .LGPL.MIT 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的 ...

  8. OSPF协议介绍及配置 (上)

    OSPF协议介绍及配置 (上) 一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加 ...

  9. VRRP协议介绍--转

    http://www.cnblogs.com/jony413/articles/2697404.html VRRP协议介绍 参考资料: RFC 3768 1. 前言 VRRP(Virtual Rout ...

随机推荐

  1. python 贪吃蛇

    #!/usr/bin/python3 ''' 项目分析: -构成 -蛇Snake -实物Food -世界World -蛇和食物属于整个世界 class world: self.snake self.f ...

  2. TestNG Suite 运行出现中文乱码如何解决

    场景: 用TestNG框架运行测试类,控制台视图输出出现中文乱码. 解决方案: 1.eclipse属性>workspace>other>utf-8 2.修改eclipse.ini 文 ...

  3. 一对一关联模型,HAS_ONE

    class UserModel extends RelationModel{ protected $_link = array( 'Profile'=> HAS_ONE, //就这一行就行了 ) ...

  4. Redis集群概述

    Redis Cluster与Redis3.0.0同时发布,以此结束了Redis无官方集群方案的时代,目前,Redis已经发布了3.0.7版本. redis cluster是去中心化,去中间件的,也就是 ...

  5. OC 应用跳转QQ私聊界面或者申请加群

    申请加群 NSString *qq_number = QQ; NSString* urlStr = [NSString stringWithFormat:@"mqqapi://card/sh ...

  6. tesseract库

    1.简介 # -*-coding:utf8 -*- #图形验证码识别技术 ''' 阻碍我们爬虫的,有时候是在登录或者请求一些数据时候的图形验证码.因此这里我们讲解 一种能将图片翻译成文字的技术.将图片 ...

  7. 【LeetCode每天一题】Unique Paths(唯一的路径数)

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).The ...

  8. JS 变量和函数提升 全局变量和局部变量

    变量提升 1. var a = 10; function test() { a = 100; console.log(a); console.log(this.a); var a; console.l ...

  9. MYSQL.版本查看-LINUX

    MYSQL.版本查看-LINUX 方式1: 不需登录mysql,登录Linux服务后,执行如下指令: # mysql -V 注意: 那个是大写的V,如果使用小写的v,在root没有设置密码的情况下,就 ...

  10. Vim编辑器设置及其使用

    一.vim编辑器的相关配置文件 /etc/vimrc:vim编辑器的全局配置文件,针对所有用户有效 /etc/virc:vi编辑器的全局配置文件,针对所有用户有效 ~/.vimrc:vim编辑器的其他 ...