# 序列化方式与存储

出于智能合约兼容、并发性能和安全方面的考虑，我们选择了在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年被开源中国评选为最受欢迎的国产开源软件之一。&#x20;

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

### Kroy介绍

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

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

### RocksDB介绍

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://datacbc.gitbook.io/index/kai-fa-zhi-nan/xu-lie-hua-fang-shi-yu-cun-chu.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
