diff --git a/docs/architecture/database.md b/docs/architecture/database.md index 34589fea..128e9200 100644 --- a/docs/architecture/database.md +++ b/docs/architecture/database.md @@ -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 @@ -40,7 +43,7 @@ dbSettings = { ## x86 平台从 LevelDB 迁移至 RocksDB -LevelDB 与 RocksDB 的数据格式不兼容,节点间不支持直接切换存储引擎。若需从 LevelDB 迁移到 RocksDB,需使用官方提供的转换工具 `Toolkit.jar`。 +若需从 LevelDB 迁移到 RocksDB,需使用官方提供的转换工具 `Toolkit.jar`。 ### 1. 数据转换步骤 ``` @@ -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) diff --git a/docs/architecture/event.md b/docs/architecture/event.md index 656bb7ec..3bbc8f4d 100644 --- a/docs/architecture/event.md +++ b/docs/architecture/event.md @@ -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:下载源码 diff --git a/docs/developers/run-in-idea.md b/docs/developers/run-in-idea.md index c340d994..223e50a2 100644 --- a/docs/developers/run-in-idea.md +++ b/docs/developers/run-in-idea.md @@ -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 - 已安装 `git` - 已安装 [IntelliJ IDEA](https://www.jetbrains.com/idea/download/) @@ -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。 #### 1. 配置项目 SDK (Project SDK) 这是用于编译项目源代码和进行语法分析的核心 JDK。 @@ -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,否则可能会在构建过程中遇到意外错误。 diff --git a/docs/using_javatron/installing_javatron.md b/docs/using_javatron/installing_javatron.md index 06840240..3f0357ea 100644 --- a/docs/using_javatron/installing_javatron.md +++ b/docs/using_javatron/installing_javatron.md @@ -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。 ## 硬件配置要求 diff --git a/docs/using_javatron/private_network.md b/docs/using_javatron/private_network.md index 94d9daa5..ff76b0bb 100644 --- a/docs/using_javatron/private_network.md +++ b/docs/using_javatron/private_network.md @@ -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):一个官方提供的命令行钱包工具,适合在服务器环境中使用。 diff --git a/docs/using_javatron/toolkit.md b/docs/using_javatron/toolkit.md index 4c987ed1..7585414b 100644 --- a/docs/using_javatron/toolkit.md +++ b/docs/using_javatron/toolkit.md @@ -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) 下载最新版本。 @@ -260,7 +262,7 @@ TRON Toolkit 支持数据库数据转换功能,可以将 LevelDB 格式的数 ``` # full command - java -jar Toolkit.jar db convert [-h] [--safe] + java -jar Toolkit.jar db convert [-h] # examples java -jar Toolkit.jar db convert output-directory/database /tmp/database ``` @@ -269,12 +271,9 @@ TRON Toolkit 支持数据库数据转换功能,可以将 LevelDB 格式的数 * ``:指定 LevelDB 数据目录。默认值为 `output-directory/database`。 * ``:指定输出的 RocksDB 数据目录。默认值为 `output-directory-dst/database`。 -* `--safe `:是否以安全模式转换数据。默认值为 `false`,但为了更好的数据兼容性,建议设置成`true`。 - * 如果启用安全模式,工具将从 LevelDB 读取数据并写入 RocksDB,此过程耗时较长。 - * 如果禁用安全模式(默认),由于当前版本中 RocksDB 与 LevelDB 兼容,工具仅会将 `engine.properties` 配置项从 `leveldb` 更改为 `rocksdb`,操作速度更快。 * `-h | --help `:显示帮助信息。默认值为 `false`。 -> **重要提示**:在使用本工具进行任何操作之前,**必须**停止当前运行的节点。 +> **重要提示**:在使用本工具进行任何操作之前,必须停止当前运行的节点。 ## LevelDB 启动优化工具