序列化方式与存储

出于智能合约兼容、并发性能和安全方面的考虑,我们选择了在Java序列化中非常快的两种序列化方式:

fastjson + Kroy

DATACBc是BaaS区块链服务,为了兼容后续智能合约的变化,我们引入了json序列化方式,可以方便兼容不同的智能合约。由于fastjson出过好几次安全性事件,综合考虑下,我们仅仅中合约兼容中使用了最简单的json序列化,而最终的存储数据我们会将json字符串进行Kroy序列化,避免由于fastjson序列化引起的安全事件。

出于便捷部署和存储性能考虑,我们选择了非常适合分布式存储的数据库:

RocksDB

fastjson介绍

fastjson 是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

fastjson相对其他JSON库的特点是快,从2011年fastjson发布1.1.x版本之后,其性能从未被其他Java实现的JSON库超越。

fastjson在阿里巴巴大规模使用,在数万台服务器上部署,fastjson在业界被广泛接受。在2012年被开源中国评选为最受欢迎的国产开源软件之一。

开源地址:https://github.com/alibaba/fastjson

Kroy介绍

Kroy 序列化,号称 Java 中最快的序列化框架。

Kroy 是一个快速序列化/反序列化工具,依赖于字节码生成机制(底层使用了 ASM 库),因此在序列化速度上有一定的优势。

RocksDB介绍

RocksDB是用于键值数据的高性能嵌入式数据库。它是Google的LevelDB的一个分支,经过优化,可以利用许多CPU内核,并有效利用快速存储(例如固态驱动器)来处理输入/输出受限的工作负载。它基于日志结构的合并树数据结构。它是用C ++编写的,并为C ++,C和Java提供了正式的语言绑定。

最后更新于