{"id":13672379,"url":"https://github.com/andelf/opentron","last_synced_at":"2026-02-03T10:20:11.489Z","repository":{"id":38253605,"uuid":"284119911","full_name":"opentron/opentron","owner":"opentron","description":"OpenTron is the first fully independent implementation of the Tron protocol, written in Rust.","archived":false,"fork":false,"pushed_at":"2023-04-13T17:19:43.000Z","size":2781,"stargazers_count":65,"open_issues_count":16,"forks_count":20,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-08-03T09:12:04.606Z","etag":null,"topics":["blockchain","tron","tron-protocol"],"latest_commit_sha":null,"homepage":"https://medium.com/@oikoscash/announcing-opentron-753b344e2a4c","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opentron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-31T20:04:00.000Z","updated_at":"2024-06-06T08:37:25.000Z","dependencies_parsed_at":"2023-02-12T06:45:20.272Z","dependency_job_id":null,"html_url":"https://github.com/opentron/opentron","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentron%2Fopentron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentron%2Fopentron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentron%2Fopentron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opentron%2Fopentron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opentron","download_url":"https://codeload.github.com/opentron/opentron/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224087289,"owners_count":17253528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","tron","tron-protocol"],"created_at":"2024-08-02T09:01:33.872Z","updated_at":"2025-04-27T21:32:53.566Z","avatar_url":"https://github.com/opentron.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"![OpenTron logo](https://github.com/opentron/press-kit/raw/master/logos/logo-w-typeface-white-1100x300.png)\n[![Chat on Telegram](https://img.shields.io/badge/opentron-Chat%20on%20Telegram-blue)](https://t.me/opentron)\n\nOpenTron is an implementation of the Tron blockchain written in Rust. This project is under active development and is\nnot ready for general use.\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n- [Rationale](#rationale)\n- [Roadmap](#roadmap)\n  - [TODOs](#todos)\n- [Quickstart](#quickstart)\n- [License](#license)\n  - [Contribution](#contribution)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Rationale\n\n1. Decentralised\n\n   The Tron network currently has [one and only implementation](https://github.com/tronprotocol/java-tron). This\n   has lead to some criticism of Tron being too centralized. We want to change that by providing an alternative\n   implementation and independent development team.\n\n2. High performance\n\n   API calls to java-tron nodes often results in CPU timeouts and other \"out of resource\" related errors. This is partly\n   due to java-tron being written in Java, a garbage collected language that runs on a virtual machine. OpenTron is\n   written in Rust, a modern compiled language that is increasingly adopted for blockchain and systems development due\n   to its high performance, safety and modern design.\n\n3. Modern codebase\n\n   Java-tron was forked a few years ago from a Java Ethereum implementation. It has accumulated a lot of technical debt\n   over the years and has a lot of inconsistent or missing documentation. We believe that a greenfield implementation\n   will enable us to produce a cleaner code base that is easier to understand, improve and extend. In addition, since\n   Rust has first class support for WebAssembly, it will be possible to re-use its code for creating web based clients,\n   wallets, explorers, etc.\n\n## Roadmap\n\n- [x] Block data sync, only blocks (raw transactions), without transaction info and any other state data. Handle chain fork and block Merkle tree verification.\n- [ ] Simple transaction broadcast, without much verification, just broadcast transactions to the network as quickly as possible(an airdrop tool can be made from it)\n- [x] Handle transaction verification. all state data will be available. (difficult, EVM engine, resource consumption mode, witness/vote/proposal, chain parameter are all handled at this stage, to make the state data identical as java-tron )\n- [x] Build a query API layer upon state data. json-rpc.\n- [ ] Build a event API layer upon state data.\n- [ ] block mining logic (difficult, DPoS mining, need resource to become an SR)\n\n### TODOs\n\n- [ ] Full Tron Protocol implementation\n  - [x] proto2: refactor the protobuf\n  - [x] primitives\n    - [x] use primitive-types\n    - [x] keys: Address, PublicKey, PrivateKey, Signature\n  - [x] config file\n    - [x] genesis block parsing\n    - [x] toml config file parsing\n    - [x] reorganize chain parameters\n  - [x] chain-db\n    - [x] Block / Transaction\n  - [x] state-db\n  - [x] discover protocol\n  - [ ] channel protocol\n    - [x] demo works\n    - [x] sync\n    - [ ] TODO: minor bug fix, timeout error\n    - [ ] integrate with state-db\n  - [ ] mempool - block producing\n  - [x] governance\n    - [x] witness schedule\n    - [x] voting\n    - [x] proposal\n    - [ ] block reward - still has minor bug\n  - [x] executor/actuator\n    - [x] account\n    - [x] trx/trc10 assets\n    - [x] witness and voting\n    - [x] proposal\n    - [x] resource freeze/unfreeze\n    - [x] exchange\n    - [x] smart contract\n    - [ ] market (4.1)\n  - [ ] EVM / TVM\n    - [x] 3.7 TVM \u003chttps://github.com/opentron/evm\u003e and `tvm` crate\n    - [x] 4.0 TVM with zksnark: `ztron` crate\n      - [x] shielded trc20 transaction - ztron\n      - [x] integration\n    - [x] 4.1 TVM\n      - [x] CREATE2\n    - [ ] massive tests against resource usage, exit_reason\n  - [ ] RPC API replacement\n    - will not support gRPC\n    - might have json-rpc support\n    - [x] GraphQL API for chain query and state query\n    - [ ] GraphQL API to broadcast transaction\n\n## Quickstart\n\nSee [INSTALL.md](./INSTALL.md) for more detailed information.\n\n```console\n\u003e # Install rust-nightly\n\u003e curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly\n\u003e rustup component add rustfmt\n\n\u003e # Install protoc\n\u003e brew install protobuf  # macOS\n\u003e sudo pacman -S protobuf  # ArchLinux\n\u003e sudo apt install protobuf-compiler libprotobuf-dev # Ubuntu / Debian\n\n\u003e # Get code\n\u003e git clone https://github.com/opentron/opentron.git\n\n\u003e # Compile opentron\n\u003e cd ./opentron/\n\u003e cargo build\n\n\u003e cargo run -- --config etc/conf.nile.toml\n```\n\n### Local Testnet\n\n```sh\n./target/release/opentron --config ./etc/conf.local-test.toml\n```\n\nThen open \u003chttp://localhost:3000\u003e and play with the GraphQL APIs.\n\n## License\n\nLicensed under either of\n\n- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any\nadditional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandelf%2Fopentron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandelf%2Fopentron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandelf%2Fopentron/lists"}