OpenTron is the first fully independent implementation of the Tron protocol, written in Rust.
OpenTron is an implementation of the Tron blockchain written in Rust. This project is under active development and is not ready for general use.
Decentralised
The Tron network currently has one and only implementation. This has lead to some criticism of Tron being too centralized. We want to change that by providing an alternative implementation and independent development team.
High performance
API calls to java-tron nodes often results in CPU timeouts and other "out of resource" related errors. This is partly due to java-tron being written in Java, a garbage collected language that runs on a virtual machine. OpenTron is written in Rust, a modern compiled language that is increasingly adopted for blockchain and systems development due to its high performance, safety and modern design.
Modern codebase
Java-tron was forked a few years ago from a Java Ethereum implementation. It has accumulated a lot of technical debt over the years and has a lot of inconsistent or missing documentation. We believe that a greenfield implementation will enable us to produce a cleaner code base that is easier to understand, improve and extend. In addition, since Rust has first class support for WebAssembly, it will be possible to re-use its code for creating web based clients, wallets, explorers, etc.
tvm
crateztron
crate
See INSTALL.md for more detailed information.
> # Install rust-nightly
> curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly
> rustup component add rustfmt
> # Install protoc
> brew install protobuf # macOS
> sudo pacman -S protobuf # ArchLinux
> sudo apt install protobuf-compiler libprotobuf-dev # Ubuntu / Debian
> # Get code
> git clone https://github.com/opentron/opentron.git
> # Compile opentron
> cd ./opentron/
> cargo build
> cargo run -- --config etc/conf.nile.toml
./target/release/opentron --config ./etc/conf.local-test.toml
Then open http://localhost:3000 and play with the GraphQL APIs.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.