腾讯在区块链方向做了很多尝试,区块链已经整合到集团内部的单一业务线,比如腾讯安全、腾讯云及其微众银行。+ C# G# R% T% C7 \
0 K& Q; K1 _9 t: F3 u/ j) A5 ?+ k4 F但说到腾讯的连锁,最直接的业务是腾讯区块链。本文将整理腾讯区块链的相关信息。你可以用这些材料感受一下腾讯区块链和其他区块链企业的界限。
" `- _$ R7 [1 B6 R5 @: `) S, m6 W# X
. O3 U7 _ {: i0 [* `腾讯区块链是独立可控的区块链基础设施,可以为业务场景构建安全高效的解决方案。为企事业单位搭建价值连接器,共同推动价值互联网发展。8 l1 v* w# H( B& L- Z+ y, }
; d& Z' w% f- N& S; W4 r1 A
腾讯区块链的整体应用框架秉承了区块链分布式、弱中心、自组织的精神,在业务发展过程中尽可能弱化各节点对集中式设施的依赖,可以解决应用从前端到后端的全生命周期问题。! J5 r- a, m& ?3 B* Q
5 P. _3 x) ^6 N/ S# z1 [, V
从技术实现上,腾讯区块链的整体应用可以分为四层:区块链基础服务层、行业应用服务层、业务逻辑表达层和联盟治理层。
, H$ ?9 X# f+ D4 F" X- d9 n: `/ o. p, I: M! ?4 g8 r7 @7 u
其中,区块链基础服务层、行业应用服务层、业务逻辑表示层属于节点软件的范畴,应该部署在各自的节点上,属于联盟成员的私有设施。治理层属于联盟的公共设施,应部署在具有联盟委员会性质的中立节点上。目前由区块链技术服务商运营更为合适,便于后续的软件升级和维护。
6 j& T% J: p* O0 T8 Q" `
% v' G% P& `& U0 k: e2 h2 u( @从产品来看,腾讯区块链主要包括baas和trustsql。/ h* a% s* Y) J: `" r* `
9 [0 V# ~+ }( N2 y
baas主要提供商户注册、连锁、节点信息查询以及一些连锁操作。商户注册成功后,组织id、连锁信息等。可以通过baas,获取,这是后续接口服务的必要信息。
3 f7 H' x/ m( S d, n9 \5 {4 o: t
: O M! o3 I; K) K6 J9 H9 }trustsql是腾讯区块链的底层服务,主要提供交易插入、交易查询等操作。用户可以直接开发这一层,但是难度也会增加很多。为了更好地让用户快速访问腾讯区块链,trustsql提供了上层接口封装,主要包括数字资产服务和共享信息服务两种类型。这两个服务提供了rest风格的接口,可以轻松访问。( g, Y$ [! d3 j ^" ]. v; s$ d, B
) q1 g9 q( e3 u- }* o3 \5 f; r
数字资产服务、共享信息服务、和trustsql服务是去中心化的,以镜像的形式部署到节点,由操作权限控制,用户可以根据自己的需要关闭和打开接口。
2 h: Q" `! S" i- m1 c. X: C5 E4 c. ?' [. s* L+ h O3 m
BaaS平台架构" ^8 o2 w x# k) e; r
8 z6 r+ S+ a/ [BaaS开放平台定位为腾讯区块链提供的企业级区块链应用开放平台,客户可以使用测试链进行服务测试或搭建自己的专属联盟链。BaaS开放平台的整体架构设计分为两部分:链管理平台和节点管理平台。
- e. ~( ?8 \" v) b' O# y5 b% j6 S
$ _4 o1 F! e, c ]: a+ V5 ~链管理平台,负责链的搭建和链、节点、成员的管理,不涉及业务逻辑和读写数据。
" d: d7 K4 U; d/ Z' O/ K1 a0 J$ O2 M5 t, \4 S
节点管理平台部署在节点本地,可以帮助用户管理数据和业务逻辑,具有用户公钥管理和区块链浏览器功能。) f( k- f+ s) h: E8 P a& z
: N$ M0 C: k- i/ C& u& h链管理平台管理联盟链的维度,以管理功能为主,提供BaaS级功能API进行调用,不涉及节点上的业务数据。链的所有者和参与者可以注册并登录baas平台,查看和管理他们创建或参与的联盟链。
2 ?# b2 g/ X' @. Q# s+ s
! U& ?$ e# z# M: f2 r节点管理平台管理节点维度,聚焦业务功能,提供部署在每个节点上的节点级功能API,用于调用(数字资产、共享图书)和区块链浏览器。节点的所有者可以登录自己的节点管理平台,查看和管理自己拥有的节点和链接的数据。
+ D* }; H% @/ N
) K' }/ |; p7 b此外,腾讯区块链提供两类接口服务:BaaS级功能接口和节点级功能接口。用于完成管理和业务功能。7 [0 l9 w* T& b! t% S
6 v- P. @' f% j; s; h- o o
为了进一步简化应用平台的接口对接,还提供了SDK开发套件,封装了公私钥对生成、地址生成、签名、验证、加解密等功能,并提供了java和C++语言的支持,方便业务开发人员直接使用。- n8 O) k m$ I/ y. n9 |, a- j
; T8 L+ Y M' ]9 a7 q V4 m4 h# c$ j' D' _3 z$ ]& K0 E& f
, `/ y- B9 u* A7 G$ P* Y/ ~& \. d) ^0 g
BaaS级功能% {5 Y& p& s0 C0 P3 M
. d+ J9 ]2 u6 y3 D0 b7 X
BaaS级功能接口主要用于链管理和私钥托管服务,包括:
$ f; W# A4 x3 }
1 c/ x- c, w+ O0 D4 m2 W! m. ](1)区块链浏览器界面中的“通过节点获取链信息”界面和“获取链上的链和节点信息”界面;3 R. ~% c6 B/ m0 M8 X1 a
* @7 d2 b$ B* } {4 X
(2)腾讯公钥基础设施(TPKI)接口;
. C! K* J: |: Z# t! {; t6 p2 U6 d' ]; ]: e8 z1 f, |
节点功能接口) n! X9 x5 }# _- ~5 \! X
) K0 f+ U( u; l* V- i( V
通过镜像文件部署在用户节点本地,主要用于包括:
1 |; G: v V7 w/ }! W9 x9 Y5 e# l, C' O
(1)数字资产服务接口;
$ i$ A- a2 q- m+ v! u/ G/ {+ y! E( X; l$ L
(2)共享信息服务接口;
6 G0 q! |2 u4 h, u
. C" u* ?9 X6 X4 |, L4 h7 R9 D: i(3)区块链浏览器界面中的“通过区块高度获取交易信息”界面;
, [- ?) Y6 q& S3 X' b: }3 ^9 B. Y
" T* p& [$ D- }; j4 T( q! t接口设计思路
# H, u& ]' o/ ]
. g4 p2 G" ?; Z# t- M! V8 c2 ATrustSQL应用平台接口包括数字资产和信息共享两个应用场景,其他场景的接口后面会不断介绍。界面设计遵循以下思路:! L3 u) ~5 P+ \) i6 [1 ]
2 ?# {( p4 a' I( L/ ~* |9 @(1)机构私钥和机构用户私钥建议用户自己保存,平台也提供托管服务。
- e; h# |9 |2 ]) z# e, u6 O6 H3 ]. u1 J# l+ S: n
(2)数字资产的接口交互过程分为申请和提交两个步骤,只有调用同一个节点的接口才能完成。Application是生成要签名的字符串的请求,submission是签名确认。查询界面除外。
+ Z. s; N5 n D7 O R8 i( w8 R7 [: i1 S2 J/ H2 h! C
(3)信息共享界面支持无签名参数提交。此时界面会返回待签名的字符串,用户可以根据待签名的字符串生成签名,再次提交。( H6 {! x/ U% r" F
/ m7 _. I/ ~" d; e" W" n联盟链创建流程) [$ M! ]' [* z! }+ w" }7 @4 j
: M, ?. x7 C2 Z0 a
联盟链创建的过程主要包括四个步骤,即创建新的联盟链、添加节点、邀请成员和启动联盟链。创建时,可以根据流程提示进行操作。
& B- J' S4 t3 B# h# p- J( j+ W
新联盟链主要完成联盟链的命名和相关描述。6 q# |- R' S6 t, ?, v' ?: k
' ]$ v6 s7 u9 x6 T1 p, G
添加节点主要是加入联盟链中的所有参与者,一个联盟链至少需要四个节点一起参与才能开始运行。目前添加节点有三种方式,分别是购买节点、添加关联节点、关联已有腾讯云机。
2 x4 B" ~. ^4 B: H
$ D+ w' g( o2 S4 A- ~邀请成员主要是指联盟链发起方邀请其他链的参与者加入联盟链的能力。发起方邀请其他机构进入联盟链时,可根据被邀请方是否需要自带节点进入联盟链分为两类:分发节点和自带节点。* [8 c0 N4 m1 P0 z
% T& P0 b* _7 Q3 u) X启动一个联盟链至少需要4个节点。当满足这个条件时,可以启动联盟链。
: L8 D1 \$ ]$ V
9 C5 M4 _, t, g, L2 c/ b1 O3 B数字资产服务基本流程(以资产发行为例):
0 u+ f, c. i g. ^' o, K5 {2 t: m" a4 R
1.用户在baas平台注册,注册成功后获取组织id。! U' R$ S6 K |2 U0 F: z
- B9 {6 F" N0 z, Z; k/ r4 d. {* @7 Q
2.在baas接口上传组织的公钥,公钥用于验证,对应的私钥用于对应方的加密。建议自己保存私钥。baas还提供私钥托管服务。
g' `- b/ R6 i* | ?. L# q t5 s( h1 \
3.构建新的联盟链涉及与腾讯云关联、购机、输入节点信息、启动联盟链、成功后获取链id。
* E& w5 f# ?1 n' D7 W& G1 U( v. L/ A4 `! z2 P5 O% x
4.数字资产发行申请。
: ^$ m6 a( a( [/ V! K
+ `+ q9 \0 S7 |7 x) v; ?# J$ ]! B* m5.数字资产的发布和提交。
A6 y2 Z/ D* C( p3 m3 R, F* v, A2 k. v9 h. u, N% P
共享信息服务的基本流程(以共享信息的添加为例):
$ [# G, E" B5 ?0 U2 }7 X1 h) l0 O7 X
* F6 `7 c2 S3 u( R8 q) y) t$ |. n1.用户在baas平台注册,注册成功后获取组织id。
; ^- ^- Z4 H/ O3 O! a$ |3 i2 s: e3 N" d8 H/ g- }* Q6 b, |
2.在baas接口上传组织的公钥,公钥用于验证,对应的私钥用于对应方的加密。建议自己保存私钥。baas还提供私钥托管服务。, S/ V" I( u6 t2 f
. r% d0 h E, `) }. }2 C2 |+ U; P3.构建新的联盟链涉及与腾讯云关联、购机、输入节点信息、启动联盟链、成功后获取链id。. M3 A7 C1 Y7 B) C9 Y
; c) i1 p0 C6 s4.信息共享申请。
6 b4 b# t \8 q
% P+ t& I1 s8 a5.提交共享信息。 |