diff --git a/docs/architecture/network.md b/docs/architecture/network.md deleted file mode 100644 index 6c193097..00000000 --- a/docs/architecture/network.md +++ /dev/null @@ -1,143 +0,0 @@ -# Tron网络结构 - -Tron网络采用Peer-to-Peer(P2P)的网络架构,网络中的节点地位对等。网络中的节点有SuperNode、FullNode、SolidityNode三种类型,SuperNode主要用于生成区块,FullNode用于同步区块、广播交易,SolidityNode用于同步固化的区块。任何部署运行Tron代码的设备都可以加入Tron网络并作为一个节点,和Tron网络中的其他节点有相同的地位,他们可以创建交易,广播交易,同步区块等,也可以作为SuperNode的候选人参与选举。 - -![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/network.png) - -## SuperNode介绍 - -[超级代表](https://github.com/tronprotocol/Documentation/blob/master/中文文档/波场区块链浏览器介绍/什么是超级代表.md)(简称SR) 是TRON网络上的记账人,一共27个,负责对网络上广播出来的交易数据进行验证,并将交易打包进区块中,他们是轮流的方式打包区块。超级代表的信息是在TRON网络上公开的,所有人都可以获取这些信息,最便捷的方式是在TRON的[区块链浏览器](https://tronscan.org/#/sr/representatives)查看超级代表列表及其信息。 - -最低配置要求: -CPU:16核 内存:32G 带宽:100M 硬盘:1T -推荐配置要求: -CPU:64核及以上 内存:64G及以上 带宽:500M及以上 硬盘:2T及以上 - -## FullNode介绍 - -FullNode是拥有完整区块链数据的节点,能够实时更新数据,负责交易的广播和验证,提供操作区块链的api和查询数据的api。 - -最低配置要求: -CPU:16核 内存:32G 带宽:100M 硬盘:1T -推荐配置要求: -CPU:32核及以上 内存:48G及以上 带宽:500M及以上 硬盘:2T及以上 - -## SolidityNode介绍 - -SolidityNode是只从自己信任的FullNode同步固化块的节点,并提供区块、交易查询等服务。 - -> NOTE: 原则上不鼓励继续使用 SolidityNode, 目前 FullNode 可以替代 SolidityNode 的功能. - -最低配置要求: -CPU:16核 内存:32G 带宽:100M 硬盘:1T -推荐配置要求: -CPU:32核及以上 内存:48G及以上 带宽:500M及以上 硬盘:2T及以上 - -## 主网、测试网、私有网络 - -加入主网或测试网或私有网络的节点在部署时运行的是同一份代码,区别仅仅在于节点启动时加载的配置文件不同。 - -### 1. 主网 - -[主网配置文件](https://github.com/tronprotocol/tron-deployment/blob/master/main_net_config.conf) - -### 2. 测试网 - -[测试网配置文件](https://github.com/tronprotocol/tron-deployment/blob/master/test_net_config.conf) - -### 3. 搭建私有网络 - -#### 3.1 前提 - -1. 具备至少两个钱包账户的私钥与地址;[如何生成钱包账户](https://tronscan.org/#/wallet/new) -2. 至少部署一个SuperNode用于出块; -3. 部署任意数量的FullNode节点用于同步区块、广播交易; -4. SuperNode与FullNode组成了私有网络,可以进行网络发现、区块同步、广播交易; - - -#### 3.2 部署 - -##### 3.2.1 步骤一:部署超级节点 - -1. 下载private_net_config.conf - - ```shell - wget https://raw.githubusercontent.com/tronprotocol/tron-deployment/master/private_net_config.conf - ``` - -2. 在localwitness中添加自己的私钥 -3. 设置genesis.block.witnesses为私钥对应的地址 -4. 设置p2p.version为除了11111之外的任意正整数 -5. 第1个SR设置needSyncCheck为false,其他可以设置为true -6. 设置node.discovery.enable为true -7. 运行部署脚本 - -```text -nohup java -Xmx6g -XX:+HeapDumpOnOutOfMemoryError -jar FullNode.jar --witness -c private_net_config.conf &>/dev/null & - -命令行参数说明: ---witness: 启动witness功能,i.e.: --witness ---log-config: 指定日志配置文件路径,i.e.: --log-config logback.xml --c: 指定配置文件路径,i.e.: -c config.conf -``` - -日志文件使用: -可以修改模块的level等级来控制日志的输出,默认每个模块的level级别为INFO,比如,只打印网络模块warn以上级别的信息,可以如下修改: - -```text - -``` - -配置文件中需要修改的参数: - -localwitness: -![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/localwitness.jpg) -witnesses: -![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/witness.png) -version: -![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/p2p_version.png) -enable: -![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/discovery_enable.png) - -##### 3.2.2 步骤二:部署FullNode节点 - -1. 下载private_net_config.conf - - ```shell - wget https://raw.githubusercontent.com/tronprotocol/tron-deployment/master/private_net_config.conf - ``` - -2. 设置seed.node ip.list 为SR的ip地址和端口 -3. 设置p2p.version与超级节点的p2p.version一致 -4. 设置genesis.block 与SR中的genesis.block配置一致 -5. 设置needSyncCheck为true -6. 设置node.discovery.enable 为true -7. 如果FullNode和SR部署在同一台机器上,则需要修改listen.port、http端口、rpc 端口 -8. 运行部署脚本 - -```text -nohup java -Xmx6g -XX:+HeapDumpOnOutOfMemoryError -jar FullNode.jar -c private_net_config.conf &>/dev/null & -命令行参数说明: ---log-config: 指定日志配置文件路径,i.e.: --log-config logback.xml。 --c: 指定配置文件路径,i.e.: -c config.conf。 -``` - -日志文件使用: -可以修改模块的level等级来控制日志的输出,默认每个模块的level级别为INFO,比如,只打印网络模块warn以上级别的信息,可以如下修改: - -```text - -``` - -配置文件中需要修改的参数: - -ip.list: -![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/ip_list.png) -p2p.version: -![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/p2p_version.png) -genesis.block: -![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/genesis_block.png) -needSyncCheck: -![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/need_sync_check.png) -node.discovery.enable: -![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/discovery_enable.png) diff --git a/docs/clients/wallet-cli-command.md b/docs/clients/wallet-cli-command.md index 4b3dc9a9..c93c3685 100644 --- a/docs/clients/wallet-cli-command.md +++ b/docs/clients/wallet-cli-command.md @@ -2033,7 +2033,7 @@ The reward is : 0 ``` wallet> updateBrokerage [OwnerAddress] [brokerage] ``` -`OwnerAddress` 为witness的地址,base58格式。`brokerage` 为要改成的比例,1-100之间。 +`OwnerAddress` 为witness的地址,base58格式。`brokerage` 为要改成的比例,0-100之间。 示例: ```shell diff --git a/docs/releases/history.md b/docs/releases/history.md index 031d0945..e56ab706 100644 --- a/docs/releases/history.md +++ b/docs/releases/history.md @@ -3,6 +3,7 @@ | 名称 |版本号 | 发布日期 | 包含的TIP | 版本说明 | 技术解读 | | -------- | -------- | -------- | -------- | -------- | -------- | +| Cleobulus | GreatVoyage-v4.7.5 | 2024-5-30 | [TIP-653](https://github.com/tronprotocol/tips/blob/master/tip-653.md) | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.5) | [Specs](#greatvoyage-v475cleobulus) | | Bias | GreatVoyage-v4.7.4 | 2024-3-15 | [TIP-635](https://github.com/tronprotocol/tips/blob/master/tip-635.md)
[TIP-621](https://github.com/tronprotocol/tips/blob/master/tip-621.md) | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.4) | [Specs](#greatvoyage-v474bias) | | Solon | GreatVoyage-v4.7.3.1 | 2024-1-12 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.3.1) | [Specs](#greatvoyage-v4731solon) | | Chilon | GreatVoyage-v4.7.3 | 2023-10-25 | [TIP-586](https://github.com/tronprotocol/tips/blob/master/tip-586.md)
[TIP-592](https://github.com/tronprotocol/tips/blob/master/tip-592.md) | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.7.3) | [Specs](#greatvoyage-v473chilon) | @@ -76,6 +77,55 @@ | N/A | Odyssey-v1.0.3 | 2018-4-5 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/Odyssey-v1.0.3) | N/A | | N/A | Exodus-v1.0 | 2017-12-28 | N/A | [Release Note](https://github.com/tronprotocol/java-tron/releases/tag/Exodus-v1.0) | N/A | +## GreatVoyage-v4.7.5(Cleobulus) + +Cleobulus版本引入了多个重要的优化和更新,新增调整部分 TVM 操作码能量成本的提案,使能量成本更加合理;增强的交易及区块检查逻辑,提高了系统的容错能力;优化的线程间同步逻辑,提高了数据一致性。下面是详细介绍。 + +### 核心协议 + +#### 1. 优化区块同步和生产逻辑 +Cleobulus版本优化了产块逻辑,在获取到产块锁之后,再检查是否具备产块条件,以避免前后状态不一致,提高了TRON网络的稳定性。 + +Cleobulus版本增强了区块检查逻辑,所有节点增加对区块大小和区块时间的检查。 + +源代码:[https://github.com/tronprotocol/java-tron/pull/5833](https://github.com/tronprotocol/java-tron/pull/5833) [https://github.com/tronprotocol/java-tron/pull/5830](https://github.com/tronprotocol/java-tron/pull/5830) + +#### 2. 加强创建账户类交易的大小检查 + +Cleobulus版本优化了账户创建相关逻辑,加强了账户创建类交易的大小检查, 并增加了第82号TRON网络参数,来设置创建账户类交易所允许的最大字节数,该参数的取值范围为[500, 10000],初始值为1000,后期可以通过发起提案投票的方式修改。 + +源代码:[https://github.com/tronprotocol/java-tron/pull/5835](https://github.com/tronprotocol/java-tron/pull/5835) + +### TVM +#### 1. 调整 TVM中个别操作码的能量成本 +Cleobulus版本基于各个操作码实际执行所需的资源和时间情况,调整了 `VOTEWITNESS` 和 `SUICIDE` 操作码的能量成本,以使能量消耗更加合理。 + +该优化是TRON网络的第81号参数,Cleobulus部署之后默认为关闭状态,可以通过发起提案投票的方式开启。 + +TIP: [https://github.com/tronprotocol/tips/blob/master/tip-653.md](https://github.com/tronprotocol/tips/blob/master/tip-653.md) +源代码:[https://github.com/tronprotocol/java-tron/pull/5837](https://github.com/tronprotocol/java-tron/pull/5837) + +### 其它变更 +#### 1. 优化线程间的同步逻辑 + +Cleobulus版本优化了请求区块相关逻辑,在打印日志时不再读取fetchBlockInfo数据,提高了多线程对fetchBlockInfo对象的并发访问的稳定性。 + +Cleobulus版本优化了同步区块处理逻辑,无论syncBlockToFetch队列是否为空,节点均能正常处理区块数据,提高了区块同步效率。 + +源代码:[https://github.com/tronprotocol/java-tron/pull/5831](https://github.com/tronprotocol/java-tron/pull/5831) +[https://github.com/tronprotocol/java-tron/pull/5832](https://github.com/tronprotocol/java-tron/pull/5832) + +#### 2. 删除冗余逻辑 +Cleobulus版本删除了区块处理过程中的冗余逻辑,提高了代码的可读性和可维护性。 + +源代码:[https://github.com/tronprotocol/java-tron/pull/5834](https://github.com/tronprotocol/java-tron/pull/5834) + +--- + +*Seek virtue and eschew vice.* +

---Cleobulus

+ + ## GreatVoyage-v4.7.4(Bias)