当微服务撞上区块链

2018-03-12 14:43:39 csdn  点击量: 评论 (0)
导语:每一种新技术的产生与发展,都会与既有的技术与实践存在着联系,例如微服务作为一种技术架构,实际上是在SOA架构和JavaEE等分布式架

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


基本的对账处理流程如下
1. 区块链平台和企业应用的记录必须有关联的id(可以是多要素的组合)
2. 区块链平台和企业应用都要保证生成的对账文件明细记录的连续性
3.对于“隔日账”需重复核对

 

区块链是一种新兴的技术,他的本质是一种加入业务特性的分布式数据库,通过对区块链技术的研究,我们找到了业务与区块链技术结合的方式,提出了微服务应用架构集成区块链的技术模式。


1) 区块链的业务价值是通过数据共享降低信任成本。
区块链建立了一个记账簿,每个参与方在交易中都通过这个记账簿进行交互,保证每一笔发生的交易一定被可靠的记录下来并不可篡改,不必再反复确认,不必担心技术问题导致的业务流程变更,不必做应急系统,从而降低了信任成本。

2)区块链技术的本质是分布式数据库。
区块链技术的数据共享方式要满足(1)多副本、(2)可靠记录、(3)不可篡改、(4)多方透明几个特性,总结下来,区块链技术对应用而言,就是一个分布式数据库,分别对应分布式数据库的(1)分布式存储、(2)点对点可靠传输、(3)存储过程与(4)数据安全几个方面。

3)为分布式应用而生的微服务,与区块链技术是天生的一对。
微服务通过区块链网关与区块链平台交互,区块链网关主要功能包括通讯网关、事件监听,同时配合微服务应用框架,完成数据一致性、对账功能。与区块链网关集成的能力,是微服务架构天生具备的。

以上是对我们研究成果一个简要介绍,后续我们还会对使用区块链技术的细节进行分析,与大家共同探讨。

 

附记:理解区块链技术常见的几个困惑

困惑1:比特币是区块链技术的一个应用,不能把比特币应用的所有内容都归结为区块链技术
上文提到,区块链技术从比特币中独立出来是 2014 年左右的事情,此前每每举出区块链的案例都是比特币,给区块链技术的应用造成了很多误解。我建议先了解区块链技术,再了解比特币,先理解联盟链的业务场景,再了解公有链的业务场景,公有链看作是联盟链的一种大规模延展,,可以少走一些弯路。
 
困惑2:公有链情况下数据存储性能不高,但联盟链的性能可以远高于公有链,能满足多数场景的要求
数据一致性问题是分布式存储最大的问题,而并发越高,冲突的概率就越大。区块链技术之所以能支持的每秒交易数(TPS)不高,主要是共识机制比较复杂,或者说共识机制就是刻意为了降低并发性,减少数据冲突的概率。在公有链上,这是一个无法逾越的问题,只能从事实时性要求不敏感的业务。但是,在联盟链中,由于链中的参与方并不多,也不需要每个节点都记账,就可以使用一些性能更高的共识机制,例如前面说的PBFT。我们曾经尝试过一种全对等的算法,可以支持更高的性能。
 
困惑3:应用区块链技术不一定必须有矿工来挖矿
初次接触区块链技术,矿工/挖矿这个概念让人非常费解:(1)为什么一定要挖矿?(2)为什么要给记账成功的节点奖励比特币来鼓励记账?(3)非比特币的业务中如何鼓励记账?这个困惑归根结底还是把区块链和比特币混淆造成的。前面说过,挖矿是通过工作量证明(POW)达成共识的机制,挖矿能力愈强就取得了记录权。更重要的是比特币的货币属性,发行货币要么靠国家信用(例如纸币),要么靠奇缺资源(例如黄金),比特币为了防止滥发,就需要用算力做为一种奇缺资源。这样说来,比特币实际上把共识算法、货币属性、鼓励记账这几件事都用挖矿来解决了,思路确实精妙。但是,在业务规则不同的联盟链中就不一样了,除了有其他更高效的共识算法外,不需要奇缺资源,不需要专门对记账做鼓励,因为必须记账已经是核心企业之间的契约,可以通过技术手段保证数据的同步,支持审计等能力,自然就不需要挖矿了。
 
困惑4:目前应用区块链技术不是去中心,而是多中心
去中心是一个理想,经常有人问(1)为什么要去中心?去中心有什么好处?(2)真的能去中心吗?后来,我深入研究联盟链的场景时发现,实际的业务场景大多是多中心(这又是比特币惹的祸,他真的想去中心),例如上述的企业联盟方式,几个建立联盟的核心企业就是多中心,他们共同成为一个新的中心。传统方式建立新的中心,往往通过建立清算机构的方式,而区块链技术让建立中心的成本降低了。
 
困惑5:不是所有的区块链节点都是记账节点,很多节点仅仅用来进行数据同步而已
多中心就意味着不是每个节点都需要记账,记账的工作由几个中心节点负责就可以了,其他节点与记账节点间是数据同步的关系,也就是非记账节点上也有全部数据。联盟链中非记账节点一般处在加盟企业,由于数据可见性的要求,非记账节点中的数据并不是都可见的,但是这一副本可以做为一种法律依据,提高了篡改数据的成本。
 
从数据的角度来看,区块链本质是一种分布式数据库,这里的“分布式”是指区块链技术利用链式存储结构不仅解决了分布式数据存储问题,也解决了存储时的分布式一致性问题。区块链技术利用分布式记账簿保证数据可靠传输和访问,利用可自动执行的智能合约来编程和操作数据。所以,我认为,基于分布式数据库来理解区块链,认清区块链技术常见的一些困惑和误区,可以让大家对区块链有个比较正确的理解方式。

 
大云网官方微信售电那点事儿

责任编辑:售电衡衡

免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
我要收藏
个赞