腾讯在区块链方向的尝试很多,集团内已经把区块链融入到单个的业务条线里,例如腾讯安全、腾讯云以及旗下微众银行等。
不过谈到腾讯的链,那最直接的业务就是腾讯区块链。本文我们将整理腾讯区块链的相关资料。可以利用这些资料感受到腾讯区块链与其他区块链业务的边界。
腾讯区块链是自主可控的区块链基础设施,可为业务场景,构建安全高效的解决方案。为企业及机构搭建价值连接器,共同推动价值互联网发展。
腾讯区块链的整体应用框架,秉持区块链的分布式、弱中心、自组织精神,尽可能地弱化各个节点在业务开展过程中对中心化设施的依赖,并且能解决应用从前到后全生命周期的问题。
从技术实现上可以把腾讯区块链整体应用分为四层:区块链基础服务层、行业应用服务层、业务逻辑表现层、联盟治理层。
其中区块链基础服务层、行业应用服务层、业务逻辑表现层属于节点软件范畴,应该部署在各自的节点上,属于联盟成员的私有设施;联盟治理层属于联盟的公共设施,应该部署在联盟委员会性质的中立节点上,当前比较合适的做法是由区块链技术服务商来运营,以为后续的软件升级和维护提供便利。
从产品上看,腾讯区块链主要包括baas和trustsql两部分。
baas主要提供商户注册、链、节点信息查询、以及一些链的操作,商户注册成功之后,通过baas可以获取到机构id、链信息等,这些信息是后续接口服务的必要信息。
trustsql是腾讯区块链的底层服务,主要提供交易的插入、交易的查询等操作,用户可以直接针对这一层进行开发,但是难度也会相对增加很多。为了更好的让用户快速的接入腾讯区块链,对trustsql提供了上层接口封装,主要有两种,即数字资产服务、共享信息服务,这两种服务提供rest风格的接口,可以很方便的接入。
数字资产服务、共享信息服务、以及trustsql服务都是去中心化的,以镜像的形式部署到节点上,并有操作权限的控制,用户可以根据自己的需要关闭和打开接口。
BaaS开放平台定位为腾讯区块链提供的企业级区块链应用开放平台,客户可使用测试链进行服务测试或搭建自己专属的联盟链。BaaS开放平台整体架构设计分为两部分:链管理平台和节点管理平台。
链管理平台,负责建链及链、节点、成员的管理,不涉及业务逻辑与读写数据。
节点管理平台,部署于节点本地,可帮助用户管理数据、业务逻辑,具备用户公钥管理以及区块链浏览器等功能。
链管理平台进行联盟链维度的管理,偏重于管理功能,提供BaaS级功能API以供调用,不涉及节点上的业务数据。链的所有者与参与者,均可以注册登录baas平台进行注册登录,查看及管理自己所创建或参与的联盟链。
节点管理平台进行节点维度的管理,偏重于业务功能,提供部署于各个节点上的节点级功能API以供调用(数字资产、共享账本)、区块链浏览器。节点的所有者,可以登录自己的节点管理平台,查看及管理自己所拥有的节点与链上数据。
此外,腾讯区块链共提供2类接口服务:BaaS级功能接口与节点级功能接口。用于完成管理与业务功能。
为了进一步简化应用平台接口对接的工作,还配套有SDK开发包,封装了公私钥对生成、地址生成、签名、验签、加密、解密等函数,提供java、C++两种语言支持,方便业务开发者直接使用。
BaaS级功能
BaaS级功能接口主要用于链的管理与私钥托管服务,具体包括:
(1)区块链浏览器接口中的“通过节点获取所在链信息”接口、“获取链与链上节点信息”接口;
(2)腾讯公钥基础设施(TPKI)接口;
节点级功能接口
通过镜像文件,部署于用户节点本地,主要用于包括:
(1)数字资产服务接口;
(2)共享信息服务接口;
(3)区块链浏览器接口中的“通过区块高度获取交易信息”接口;
接口设计思路
TrustSQL应用平台接口包括数字资产和信息共享两种应用场景,后期还会不断推出其他场景的接口。接口设计上遵循如下思路:
(1)机构的私钥以及机构用户的私钥,建议用户自行保存,平台也提供托管服务。
(2)数字资产的接口交互过程,分为“申请”和“提交”两个步骤,两个步骤需要调用同一节点的接口方可完成,“申请”是请求生成待签名串,“提交”是提交签名确认。查询接口除外。
(3)信息共享的接口支持不包含签名参数的提交,这时,接口会返回待签名串,用户可根据待签名串生成签名后,再次提交。
联盟链创建流程主要包括四个步骤,依次为新建联盟链、添加节点、邀请成员和启动联盟链。创建时可根据流程提示进行操作。
新建联盟链主要完成联盟链的命名以及相关相关描述。
添加节点主要是为联盟链加入各个参与方,且一条联盟链至少需要四个节点共同参与才能启动运行。目前添加节点有三种方式,分别是:购买节点、添加已关联节点、关联已有腾讯云机器。
邀请成员主要为联盟链的发起方邀请其他链上的参与方进入联盟链的能力。发起方在邀请其他机构进入联盟链时,可根据被邀请方是否需要自带节点进入联盟链可分为两类:分配节点和自带节点。
启动一条联盟链至少需要4个节点。当满足该条件时,即可启动运行一条联盟链。
数字资产服务的基本流程(以资产发行为例):
1.用户在baas平台进行注册 ,注册成功之后获取到机构id。
2.在baas界面上传机构公钥,公钥用于验签,与之对应的私钥用于通讯方加密,私钥建议自己保存,baas也提供私钥托管服务。
3.新建联盟链,涉及到与腾讯云关联、购买机器、录入节点信息、启动联盟链,成功之后获取到链id。
4.数字资产发行申请。
5.数字资产发行提交。
共享信息服务的基本流程(以共享信息新增为例):
1.用户在baas平台进行注册,注册成功之后获取到机构id。
2.在baas界面上传机构公钥,公钥用于验签,与之对应的私钥用于通讯方加密,私钥建议自己保存,baas也提供私钥托管服务。
3.新建联盟链,涉及到与腾讯云关联、购买机器、录入节点信息、启动联盟链,成功之后获取到链id。
4.共享信息申请。
5.共享信息提交