美文网首页
陆基技术咖漫谈:互联网平台怎样与区块链技术交互

陆基技术咖漫谈:互联网平台怎样与区块链技术交互

作者: 陆基科技 | 来源:发表于2019-03-05 15:06 被阅读0次

    【陆基研习社】

    获取一手区块链行业资源。微信号:rootkeybc

    区块链技术本质上就是分布式数据库,互联网平台与区块链技术的结合,并不是说互联网平台与数据库的结合,而是应该把区块链平台做为一个第三方应用进行交互。

    目前区块链平台一般有SDK和REST服务两种方式,这里我们讨论REST,采用远程调用方式,引入区块链网关,把互联网平台与区块链平台集成的功能集中到网关中。

    区块链网关主要功能包括通讯网关、事件监听、与多链交互,同时结合互联网平台框架,完成数据一致性、对账功能。 

    1、通讯网关

    通讯网关,负责处理互联网平台发起的对区块链平台的调用。

    由于区块链平台的服务能力(每秒交易数 TPS)有限,为保证区块链平台的可用性,区块链网关采用了异步处理模式,实现限流、隔离、服务升降级等能力。

    由于区块链平台提供的接口各有不同,区块链网关在接受请求后记录交易流水,把区块链平台提供的服务模拟为幂等服务,调用者可以多次调用区块链网关,而区块链网关仅仅调用区块链平台一次。为方便运维,我们可以为区块链平台提供的服务定义SLA,根据这些定义灵活的进行调用的控制。

    2、事件监听

    如果记账簿发生了改变,如何通知互联网平台呢,这就是区块链网关中事件监听发挥的作用。目前很多区块链平台并没有提供事件接口,即使未来有也很难统一,前面也说过,智能合约运行在沙箱中,为保证数据一致性不可能支持对外部服务的调用,也不能做为事件监听的回调,这样就需要在区块链网关中进行处理。

    互联网平台可以注册对某一类交易进行监听,区块链网关定时通过区块链平台的查询接口检索,发现数据变更时通知互联网平台。这是一个效率不高的方法,但区块链平台本身性能也不高,时延主要由共识机制造成,轮训的做法并不会有太大影响,这也是期待区块链平台本身提升的地方。

    3、数据一致性

    不能把所有数据都存储在区块链平台中,而是将交易数据存储在区块链平台,这样就有了本地数据库的数据与区块链交易数据的一致性问题。一般来说,我们不能依赖区块链平台支持事务的回滚,因为这个分布式的记账簿一旦记账就是不可更改的,我们甚至不能指望区块链平台实时给应用反馈记账是否成功,因为有可能返回超时错误,不清楚是否记账成功。

    于是,区块链网关需要和互联网平台配合保证数据的一致性,一般情况下互联网平台中的业务处理采用异步模式,发出记账申请后处于等待状态,区块链网关将记账申请转发给区块链平台。如果区块链平台返回接受Accept或者拒绝Reject,将结果通知互联网平台;如果区块链平台返回超时或者不可确定错误,即开始定时轮询,得到结果后通知互联网平台。

    同时,互联网平台本身需要具备事务补偿的模式,如果记账失败进行反交易处理。这种数据一致性处理的方式,是互联网平台多种处理方式中的一种,我们一般使用服务编排的方式降低这种模式的开发复杂度。

    4、对账

    既然数据有本地存放,也有区块链平台存放,就有不一致的可能,就必须对账。传统对账有以我为主、以他为主两种模式。这里就只能以他为主,以区块链平台为主了。由于区块链技术针对交易的特点对存储结构进行了要求,利用已有的时间戳、交易先后次序,可以是对账变得更加容易。

    5、与多链交互

    多链交互有两层意义:一是为了让互联网平台利用网关作为中转站实现与多个区块链进行交互,满足不同区块链生态用户共同的需求;二是为了让互联网平台国际化,区块链本身是无国界的,接入区块链就是间接的使互联网平台接入全球网络。以区块链网关作为中转站,针对不同链实现多种协议,根据调用指令分发到不同的链执行或者数据上链。

    相关文章

      网友评论

          本文标题:陆基技术咖漫谈:互联网平台怎样与区块链技术交互

          本文链接:https://www.haomeiwen.com/subject/wyxouqtx.html