Open
Description
Background
Java-Tron currently only supports the x86 architecture. Nevertheless, ARM architecture has gained significant traction recently, especially in cloud computing and mobile devices. ARM processors are known for their energy efficiency and cost-effectiveness, making them increasingly popular in data centers, cloud computing, and edge computing scenarios. It will be great to have an option to run Java-Tron using the ARM architecture.
Key developments in ARM architecture:
- Apple's transition from Intel to its ARM-based processors for Macs, dubbed Apple Silicon
- AWS Graviton, Microsoft Azure Ampere Altra, Alibaba Cloud Yitian 710 and Google Axion processors used in cloud computing
- Increasing adoption of ARM in supercomputers and high-performance computing
ARM advantages:
- Better performance per watt, low energy consumption, and low cost
- Lower total cost of ownership for data centers
- Growing ecosystem and software support
Related Issues and PRs
- RocksDB Linux ARM support. #5845
- M3 MacBook Pro / aarch64 unable to run java-tron node. #5815
- Java-tron - Release linux/arm64 builds #4692
- Why my node stopped sync? #4592
- run private chain on mac(m2) with errors #4548
- FullNode.jar doesn't start without any error message #4534
- Building on ARM64 fails #4525
- Update protoc-gen-grpc-java dependency to > v1.26.0 to be able to build in ARM64 #4248
- Run java-tron on ARM - AWS Arm-based Graviton2 instances / Apple M1 #4132
- Tron compile with Apple Silicon MacBook Pro m1 #3834
- Build failed Raspbian #363
Scope of Impact
- Build and deployment processes
- Core application code
- Third-party dependencies
- Development and testing environments
Current Progress Summary
-
JDK version
-
Native code
- RocksDBJNI: org.rocksdb:rocksdbjni:7.7.3
- LevelDBJNI: com.halibobor:leveldbjni-all:1.18.3, just for CI Test, production environment only supports RocksDB
- zksnark-java-sdk: io.github.tronprotocol:zksnark-java-sdk:1.0.0
-
Third-party dependencies
- protoc-gen-grpc-java: GreatVoyage-v4.7.3 released Oct 25, 2023, upgraded io.grpc:protoc-gen-grpc-java from 1.9.0 to 1.52.1 for ARM64 architecture by feat(net):update com.google.protobuf and io.grpc version #5254
-
Floating-point arithmetic
- Migrate pow operation from java.lang.Math to java.lang.StrictMath in GreatVoyage-v4.7.7(Epicurus)
- Replace java.math with the cross-platform consistent java.strictMath in GreatVoyage-v4.8.0(Kant)
- For historical data(the Bancor trading pair), Hardcoded Special Cases(48 POW calculation instances)
-
Build and deployment process
- Update build scripts to support ARM architecture.
- Ensure CI/CD pipelines can be built and tested in ARM environments.
- Docker support
Metadata
Metadata
Assignees
Type
Projects
Status
In Progress