之前区块链设计模式系列(二)本地优先里提到区块链和分布式数据库在一致性方面的差异。
区块链和分布式数据库另外一个很重要的差异是:
- 数据库通常只用于数据的存储,数据的处理都在业务系统里。虽然早期有存储过程之类功能,但是目前的实际使用中,尤其是分布式数据库中,已经不再使用。
- 区块链则是兼顾了链上数据存储和链上数据的处理。这是因为链上数据的可信程度和本地数据不同,为了在处理过程中延续数据的可信程度,链上数据处理(合约)及其结果也必须经过共识。
这个差别导致的一个情况是,基于数据库的IT系统只有两部分:存储部分的数据库和进行数据处理的业务系统;但是基于区块链的IT系统有四部分:链上数据,链上数据处理(合约),本地数据存储(数据库),本地数据处理(业务系统)。这导致区块链系统和业务系统之间始终存在一条鸿沟,让两者无法很好的融合。
因此,区块链很适合在一个封闭的数据集上,随着时间不断叠加操作的场景,典型的场景就是帐本。
但是,CITA-Cloud的目标是让区块链能够更加贴合传统的IT系统,因此要想办法打破两者之间的鸿沟。