区块链服务网络是一个基于联盟链技术和共识信任机制的全球性基础设施网络。服务网络致力于改变目前联盟链应用的局域网架构高成本问题,以互联网理念为开发者提供公共区块链资源环境,极大降低区块链应用的开发、部署、运维、互通和监管成本,从而使区块链技术得到快速普及和发展。


01、引言


区块链技术具有信息公开、内容不可篡改,分布式去中心化存储等特点,虽然比特币等数字货币是区块链技术应用最广的领域,但未来区块链技术在其他方面的应用前景也非常广阔。区块链架构主要分为公有链和联盟链两种。在公有链架构下,任何用户均可自由地匿名加入或退出一个公有链应用,并不受任何监管地进行数据交易和信息扩散,具有透明性、隐私性和完全去中心化的特性。目前除了大部分虚拟货币使用公有链以外,几乎没有其他信息化应用采用纯公有链架构。


联盟链架构业务属性均由应用所有方制订,用户需得到应用所有方批准后方能加入应用。联盟链技术可以用来优化大多数传统信息化系统的业务流程,特别适用于没有强力中心、多方协作、风险可控的业务场景。联盟链的共享账本机制可以极大降低该类场景下的对账成本、提高数据获取效率、增加容错能力、巩固信任基础、以及避免恶意造假。传统联盟链应用的各参与方需共建一个共识排序节点,并需单独建立和运维自身专属的记账节点。每个节点均需使用物理服务器或者云服务,所有节点通过互联网或云服务内部网络连接在一起,从而形成类似局域网的孤立区块链应用。这种传统结构意味着应用的参与方每参与一个不同组织联盟的区块链应用就需要建立一套区块链运行环境,从而导致参与者负担过重,并且绝大多数情况下服务器资源处于低负荷运行或闲置状态。这种高成本的部署和运维架构是当前区块链应用发展的主要瓶颈。另外,各局域网式的区块链应用所采用的底层平台异构,没有统一的技术标准,业务数据无法交互,制约了区块链的技术转化和产业布局,因此,行业内亟需建立一个各方认可的公共基础设施网络。


区块链服务网络(Blockchain-based Service Network,BSN)的设计和建设初衷就是提供一个可以低成本开发、部署、运维、互通和监管联盟链应用的公共基础设施网络。服务网络将不支持任何公有链应用。区块链服务网络是一个基于联盟链技术和共识信任机制的全球性基础设施网络。服务网络致力于改变目前联盟链应用的局域网架构高成本问题,以互联网理念为开发者提供公共区块链资源环境,极大降低区块链应用的开发、部署、运维、互通和监管成本,从而使区块链技术得到快速普及和发展。



02 、区块链服务网络架构与特点


区块链服务网络由公共城市节点和共识排序集群服务组成。服务网络在每个城市均建立一个或多个公共城市节点,所有城市节点通过互联网连接起来,形成物理城市节点遍布全国的区块链服务网络。区块链应用的开发者只要将应用部署到服务网络的多个城市节点上,使用者即可通过服务网络网关进行几乎无成本的接入。区块链应用开发者和使用者均不需要再购买物理服务器或者云服务来搭建自己的记账和共识节点,而使用服务网络提供的公共服务,从而大大节约了开发者和使用者的成本,从而促进了区块链技术的快速发展和普及。


图1 区块链服务网络架构


区块链服务网络主要特点如下:


  • 提供公共城市节点 


区块链服务网络在每个城市建立联盟链公共城市节点,所有应用统一部署在城市节点中,用户连接城市节点网关进行业务处理,不需要每个企业针对每个联盟组织应用自建记账节点。城市节点由服务网络统一运维开发者,只需专注于核心业务创新,不需花费精力在记账节点的建设和维护上。


  • 提供统一排序节点服务: 


服务网络提供统一排序节点服务,所有城市节点上的所有联盟链应用共享该服务。开发者完全不需要建设和维护排序节点。


  • 负载均衡服务: 


城市节点上的记账节点和统一排序节点服务均具备灵活的负载均衡机制。当某应用需要更多计算力和TPS时,服务网络会自动为其分配更多的记账节点和排序节点资源。


  • 智能网关和预制链码: 


为了进一步降低开发者的成本,服务网络每个城市节点均配置了智能网关,可以由外部系统接入服务网络。配合以可以从开发者门户直接选择安装的预制链码包,使开发者在完全不懂区块链开发语言的情况下,使用自己熟悉的编程语音,即可如同连入传统数据库一般使用区块链服务网络。


  • 应用部署和接入方便 


服务发布者发布区块链服务时,选择需要的城市节点、每个节点的TPS、带宽、存储容量后,一键即可完成所有节点的应用部署。应用使用方可以通过互联网或专线随时连入就近城市节点使用应用。


  • 实现跨链数据互通


通过区块链服务网络的证书和权限机制,两个不同的区块链应用之间只要互相授权,即可实现数据的互相调用。


  • 降低运营成本 


由应用服务发布方统一选择节点、带宽、TPS、存储量配置,并承担应用在服务网络上的费用。 平均总价格只是区块链云服务的五分之一到三分之一。而应用服务的使用者可以免费连入服务网络使用相关应用。


表1 服务网络与区块链云服务对比


03 、区块链网络节点管理


区块链服务网络城市节点管理系统负责节点的管理。城市节点管理系统主要用于管理区块链服务网络中城市节点的开通、更新和退出等业务,在开通、更新和退出的过程中,将与服务网络运营系统、服务网络运维系统、服务网络计费系统、财务系统产生数据交互。


图2 城市节点管理系统功能图


  • 与运营系统的交互:


  • 城市节点开通时需将城市节点信息、城市节点资源推送给运营系统,供用户在部署服务时选择;


  • 城市节点退出时,也要通知运营系统,取消已退出的城市节点的相关选项;


  • 与计费系统的交互:


  • 城市节点开通时需将城市节点的定价信息、结算模型、结算账户信息等推送给计费系统,以便给在城市节点上部署服务的用户计费;


  • 定价信息、结算模型、结算账户等信息发生了变更时,也需要通知计费系统;


  • 城市节点退出后需要通知计费系统删除其定价信息、结算模型、结算账户等信息


  • 与运维系统的交互:


  • 城市节点开通时,需要通知运维系统部署节点网关、Peer节点等;


  • 节点资源发生变更时需要通知运维系统进行处理;


  • 城市节点退出时也需要通知运维系统;


  • 与财务系统的交互:


  • 城市开通开通时,需要将结算模型和结算账户信息推送给财务系统;


  • 城市节点的结算模型和结算账户发生变更时,也需要将结算模型和结算账户信息推送给账务系统;


  • 城市节点证书管理


在城市节点开通、以及退出时,系统需要对城市节点证书进行生命周期管理,包括证书的颁发、更新、四个方面:


  • 颁发:城市节点开通时,通过CA管理系统为城市节点颁发证书;


  • 更新:城市节点到期续约时,通过CA管理系统更新城市节点的证书有效期;


  • 注销:城市节点退出时,通过CA管理系统注销城市节点的证书;


  • 下载:城市节点可以下载自己的证书。 


04 、区块链服务网络开发者管理


区块链服务网络开发者管理具有完善的流程,用户登录后,需先完成实名认证,实名认证包括个人认证和企业认证。实名认证成功之后可以在服务网络中参与其他用户发布的应用服务。在区块链服务网络门户中,如果需要上架产品或者发布服务,则除了需要完成实名认证之外,还需要完成开发者身份认证。


图3开发者管理流程


  • 注册


登录服务网络门户:按照页面提示,输入相应的信息即可完成新用户注册。


  • 实名认证


用户登录后,需先完成实名认证,实名认证包括个人认证和企业认证。实名认证成功之后可以在服务网络中参与其他用户发布的应用服务


  • 应用服务参与


实名认证完成后,登录用户可以在应用商店中选择公开服务并申请参与,申请后等待发布者审核通过即可正常使用,但若所申请的功能中包含专线,则除了需要发布者审核外,还需运营平台审核,在运营平台审核的过程中,运营商工作人员将线下联系参与者,并为参与者安装专线。


  • 开发者身份认证


在区块链服务网络门户中,如果需要上架产品或者发布服务,则除了需要完成实名认证之外,还需要完成开发者身份认证。


  • 应用产品上架


应用产品是指仅在服务网络门户的应用商店中上架,只能购买的应用;在用户购买之后,产品开发者为购买者单独发布。开发者身份认证通过后,登录用户录入产品信息后即可申请上架,经运营系统审核通过之后显示在应用商店中。


  • 应用服务发布


应用服务是指区块链服务网络中部署并运行的区块链应用。开发者身份认证通过后,登录用户在页面中录入服务基本信息、链码信息、功能角色及发布的城市节点信息等即可申请发布服务,经运营系统审核、测试、复审、发布等流程后即可正式投入使用。


  • 接入方式


应用的链下业务系统通过服务网络城市节点网关调用在节点部署的应用业务链码进行链上交易处理、数据写链和数据查询等操作。


服务发布者和参与者可使用自己的IDC资源或云服务部署链下业务系统通过互联网或专线连接到城市节点网关,也可以申请使用服务网络云资源服务部署链下应用业务系统。


  • 身份和权限验证


在服务网络中,每个应用参与者在业务接入的城市节点都拥有独立的身份证书。证书由区块链服务网络托管,用户可以在服务门户下载自己的证书。用户可以使用在同一城市节点的已有证书参与该城市节点的多个应用,也可以为不同应用申请新的证书。链下应用系统访问链上的数据时,应当使用自己的用户证书或者用户CODE通过节点网关进行链上交易处理。服务发布者可以在服务网络门户为应用参与者设置应用的链码权限。该权限控制着参与者可以访问应用的哪些链码或者哪些链码的方法,如果参与者没有所要访问的链码或者链码方法的权限,访问将被拒绝。


开发应用的时候应当注意,在设置应用内部权限的时候应该根据应用的链码权限设置。否则可能出现参与者访问拥有应用功能权限而没有该功能所对应的链码的权限的时候会出现错误。 


图4 系统调用流程


  • 数据安全和数据隐私


服务网络的区块链应用服务运行在各自相互隔离的交易通道上,其数据也存储在各自的数据库中,服务网络节点间采用TLS数据通讯保证数据传输安全。应用可以在链下业务系统数据上链时进行数据加密或进行hash处理,以保证链上交易处理和数据存储的数据安全。如果采用hash数据,服务发布者需要自行提供业务合作方间共享源数据的方法;如果采用加密数据,则需要在应用业务合作方间共享解密密钥的方法。应用也可以选择在应用链码中构建访问控制和加密处理,以控制应用参与者的数据访问权限和保证数据账本存储安全。


05 、区块链服务网络部署情况


区块链服务网络目前已经在54个城市完成部署或者正在部署中,已经具有多个行业应用,未来随着网络规模的扩大和应用的完善,其成本低,效率高的特点将会发挥的更加明显。


  • Init :链码初始化的方法,在链码实例化或者升级的时候调用一次,以便链码可以执行任何必要的初始化,包括应用程序状态的初始化。


  • Invoke :接收和处理链下业务系统调用事务处理提案,其参数包含调用的链码程序中函数的名称和具体业务处理数据参数。即在Invoke中根据不同的方法参数调用其他分支处理响应的业务。Invoke可以简单的理解为链码方法的入口。


  • Query:提供查询链码数据的方法,该方法只作为查询使用,不提供操作链上数据的操作。可在Query操作时调用,亦可在Invoke方法中作为某些方法的分支被调用。该方法可以不实现。

*专家文章为作者独立观点,不代表移动Labs立场. 转载此文章须经作者同意,并请附上出处(移动Labs)及本页链接。