Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions docs/architecture/database.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
# 数据库配置指南

在 TRON Java 实现(java-tron)中,节点数据存储引擎提供 **LevelDB** 和 **RocksDB** 两种选择。默认情况下,**x86 平台使用 LevelDB,ARM 平台使用 RocksDB**。如果在 ARM 系统中手动配置为 LevelDB,系统会打印警告提示并仍然强制使用 RocksDB。开发者可根据平台环境、硬件条件及性能需求,灵活选择合适的存储引擎。
在 TRON Java 实现(java-tron)中,节点数据存储引擎提供LevelDB和RocksDB两种选择。数据库在不同架构上的区别:

相比之下,**RocksDB 提供更丰富的配置参数,且通常具有更高的存储效率**。本文将介绍如何启用 RocksDB,以及如何将 x86 平台的 LevelDB 转换为 RocksDB。
- x86架构上,数据库支持LevelDB和RocksDB,当前RocksDB的版本是v5.15.10
- ARM架构上,数据库仅支持RocksDB,当前RocksDB的版本是v9.7.4

开发者可根据平台环境、硬件条件及性能需求,灵活选择合适的存储引擎。相比之下,RocksDB 提供更丰富的配置参数,且通常具有更高的存储效率。本文将介绍如何启用 RocksDB,以及如何将 x86 平台的 LevelDB 转换为 RocksDB。


## 使用 RocksDB
Expand Down Expand Up @@ -40,7 +43,7 @@ dbSettings = {


## x86 平台从 LevelDB 迁移至 RocksDB
LevelDB 与 RocksDB 的数据格式不兼容,节点间不支持直接切换存储引擎。若需从 LevelDB 迁移到 RocksDB,需使用官方提供的转换工具 `Toolkit.jar`。
若需从 LevelDB 迁移到 RocksDB,需使用官方提供的转换工具 `Toolkit.jar`。

### 1. 数据转换步骤
```
Expand Down Expand Up @@ -79,11 +82,12 @@ java -jar build/libs/Toolkit.jar db cp output-directory/database /tmp/output-dir
cd /tmp
java -jar build/libs/Toolkit.jar db convert output-directory/database output-directory-dst/database
```

>备注:
整个数据转换过程预计耗时约 **10 小时**,具体时间依赖于数据量和磁盘性能。

## 关于 LevelDB
LevelDB 是 x86 平台 java-tron 默认的数据存储引擎,适用于资源有限或轻量级的部署场景。它结构简单、易于维护,但在数据压缩、备份能力和大规模节点性能上不如 RocksDB。
LevelDB 是 x86 平台 java-tron 节点默认的数据存储引擎,适用于资源有限或轻量级的部署场景。它结构简单、易于维护,但在数据压缩、备份能力和大规模节点性能上不如 RocksDB。

若需深入了解两者的详细对比,请参考文档:
📘 [RocksDB 与 LevelDB 差异对比](https://github.com/tronprotocol/documentation/blob/master/TRX_CN/Rocksdb_vs_Leveldb.md)
2 changes: 1 addition & 1 deletion docs/architecture/event.md
Original file line number Diff line number Diff line change
Expand Up @@ -619,7 +619,7 @@ db.createUser({user:"tron",pwd:"123456",roles:[{role:"dbOwner",db:"eventlog"}]})

事件查询服务提供 HTTP 接口,用于查询 MongoDB 中存储的事件数据。该服务依赖 Java 环境。

**注意**:请确保 JDK 使用的是 **Oracle JDK 8**,而不是 Open JDK 8。
**注意**:x86架构上请使用Oracle JDK 8,ARM架构上请使用JDK 17

##### 步骤 1:下载源码

Expand Down
11 changes: 6 additions & 5 deletions docs/developers/run-in-idea.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,17 @@

java-tron 节点支持部署在 `Linux` 或 `MacOS` 操作系统上。其依赖的 JDK 版本要求如下:

- **通用要求**:依赖 Oracle JDK 1.8 版本
- **`v4.8.1` 及以上版本**:新增支持 ARM 架构下的 JDK 17
- x86架构上:依赖 Oracle JDK 8
- ARM架构上:依赖JDK 17

下面的配置以x86架构、Oracle JDK 8为示例:

## 前置条件

在开始配置之前,请确保您的开发环境满足以下条件:

- 操作系统为 `Linux` 或 `MacOS`
- 已安装 Oracle JDK 1.8
- 已安装 Oracle JDK 8
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

是不是也要提一下JDK 17?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

前面有一句陈述“下面的配置以x86架构、Oracle JDK 8为示例:”

- 已安装 `git`
- 已安装 [IntelliJ IDEA](https://www.jetbrains.com/idea/download/)

Expand All @@ -39,7 +40,7 @@ Lombok 通过注解的方式简化 Java 代码,是 java-tron 开发的必备
![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/IDE_annotation.png)

### 步骤 3:验证并统一 JDK 版本
为确保项目能够正确编译和运行,必须在 IntelliJ IDEA 的两个关键位置都将 JDK 版本设置为 Oracle JDK 1.8。
为确保项目能够正确编译和运行,必须在 IntelliJ IDEA 的两个关键位置都将 JDK 版本设置为 Oracle JDK 8。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里也是

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

要不查一下这个文档里面?有一些之前的内容也保留着jdk8的叙述


#### 1. 配置项目 SDK (Project SDK)
这是用于编译项目源代码和进行语法分析的核心 JDK。
Expand All @@ -55,7 +56,7 @@ Lombok 通过注解的方式简化 Java 代码,是 java-tron 开发的必备

![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/IDE_JDK.png)

> **重要提示**: **Project SDK** 和 **Gradle JVM** 这两个设置必须完全一致,且都指向 Oracle JDK 1.8,否则可能会在构建过程中遇到意外错误。
> **重要提示**: **Project SDK** 和 **Gradle JVM** 这两个设置必须完全一致,且都指向 Oracle JDK 8,否则可能会在构建过程中遇到意外错误。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

由于图中仍然是JDK 1.8,要不要加一个说明? 图中的1.8就是JDK8

Copy link
Contributor Author

@King31T King31T Dec 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

好的。另外解释下为什么x86上从JDK 1.8改成JDK8了,因为arm是JDK 17 , 所以针对JDK做了一下命名规范。




Expand Down
5 changes: 4 additions & 1 deletion docs/using_javatron/installing_javatron.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

本文档将指导开发者如何在 `Linux` 或 `macOS` 操作系统上部署 TRON java-tron 节点。

**重要提示:**java-tron 节点目前仅支持 `Oracle JDK 1.8`,不支持其他版本的 JDK。
java-tron 节点目前支持在x86和ARM架构上运行(ARM架构的支持从4.8.1版本开始)。不同架构上,JDK的支持情况:

- x86架构上,目前仅支持Oracle JDK 8
- ARM架构上,目前仅支持JDK 17。

## 硬件配置要求

Expand Down
2 changes: 1 addition & 1 deletion docs/using_javatron/private_network.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
## 前置要求
在开始之前,请确保您的开发环境满足以下条件:

- **Java Development Kit (JDK)**:您的环境必须安装 Oracle JDK 1.8
- **Java Development Kit (JDK)**:x86架构上,须安装 Oracle JDK 8;ARM架构上,须安装JDK 17
- **TRON 账户**:您需要预先创建至少两个 TRON 网络地址,并安全地保存好地址和其对应的私钥。其中一个地址将作为初始见证节点(超级代表),另一个用于普通账户。
- **地址创建工具**:您可以使用以下任一工具来生成和管理您的 TRON 账户:
- [Wallet-cli](https://github.com/tronprotocol/wallet-cli):一个官方提供的命令行钱包工具,适合在服务器环境中使用。
Expand Down
9 changes: 4 additions & 5 deletions docs/using_javatron/toolkit.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ TRON Toolkit 是一个集成了多种 `java-tron` 周边工具的实用程序,

本文将详细介绍如何获取和使用 TRON Toolkit。

**注意**: 由于在ARM架构上只支持RocksDB,所以像`db convert`和`db archive`这样处理LevelDB的工具只能在x86架构上使用。

## Toolkit的获取
您可以通过编译 `java-tron` 源代码或直接从已发布的版本中获取 `Toolkit.jar` 文件。推荐从 [GitHub Releases](https://github.com/tronprotocol/java-tron/releases) 下载最新版本。

Expand Down Expand Up @@ -260,7 +262,7 @@ TRON Toolkit 支持数据库数据转换功能,可以将 LevelDB 格式的数

```
# full command
java -jar Toolkit.jar db convert [-h] [--safe] <src> <dest>
java -jar Toolkit.jar db convert [-h] <src> <dest>
# examples
java -jar Toolkit.jar db convert output-directory/database /tmp/database
```
Expand All @@ -269,12 +271,9 @@ TRON Toolkit 支持数据库数据转换功能,可以将 LevelDB 格式的数

* `<src>`:指定 LevelDB 数据目录。默认值为 `output-directory/database`。
* `<dest>`:指定输出的 RocksDB 数据目录。默认值为 `output-directory-dst/database`。
* `--safe <boolean>`:是否以安全模式转换数据。默认值为 `false`,但为了更好的数据兼容性,建议设置成`true`。
* 如果启用安全模式,工具将从 LevelDB 读取数据并写入 RocksDB,此过程耗时较长。
* 如果禁用安全模式(默认),由于当前版本中 RocksDB 与 LevelDB 兼容,工具仅会将 `engine.properties` 配置项从 `leveldb` 更改为 `rocksdb`,操作速度更快。
* `-h | --help <boolean>`:显示帮助信息。默认值为 `false`。

> **重要提示**:在使用本工具进行任何操作之前,**必须**停止当前运行的节点
> **重要提示**:在使用本工具进行任何操作之前,必须停止当前运行的节点

## LevelDB 启动优化工具

Expand Down