This development guide introduces the basic building blocks of developing decentralized technologies on the TRON platform. It explains smart contracts and decentralized applications (DApps) from a developer’s standpoint. If you wish to walk through a “Hello World” Smart Contract development process, click here.
Decentralized Apps
A decentralized application (DApp) is an application that runs on a decentralized P2P network. Since DApps do not depend on a central entity for functioning, this eliminates the risk of a single point of failure. Records and data from DApps are also stored on the blockchain.
Smart Contracts
A smart contract is a computer protocol with a purpose to digitally verify the negotiation of a contract. They not only define the rules and penalties related to an agreement in the same way that a traditional contract does, but it can also automatically enforce those obligations. If and when the pre-defined rules are met, the agreement is automatically enforced. The smart contract code facilitates, verifies, and enforces the negotiation or performance of an agreement or transaction. It is the simplest form of decentralized automation.
DApps vs Smart Contracts
DApps are a ‘blockchain enabled’ website, where the Smart Contract is what allows it to connect to the blockchain. The easiest way to understand this is to understand how traditional websites operate. As opposed to traditional, centralized applications, where the backend code is running on centralized servers, DApps have their backend code running on a decentralized P2P network. Decentralized applications consist of the whole package, from backend to frontend. The smart contract is only one part of the Dapp.
Prospective IDEs and Editors
- Webstorm
An IDE for JavaScript development, as Javascript is necessary for interfacing with the blockchain via TronWeb. - Intellij Idea
An IDE for Java development. Also can be used to set up Full and Solidity Nodes. - Sublime Text & Atom Editor
Sublime and Atom are both source code editors with support for a variety of programming languages.
Programming Experience
Solidity
Experience with the Solidity programming language is necessary for developing smart contracts on the Tron protocol. (See the documentation) Smart contracts in Tron are developed in the Solidity programming language. Solidity is a contract-oriented programming language for writing smart contracts. It is used for implementing smart contracts on various blockchain platforms. The TVM will be compatible with EVM environments so developers can build, debug and execute smart contracts in a mixed environment with Solidity.
Javascript
Experience with Javascript is necessary for interfacing with the blockchain using Tron Web. Tron Web is a critical tool for developing decentralized applications such as websites and Chrome extensions.
Command Line Experience
Various tools that are used for development requires command line knowledge to interact, run, and download.
Download Developer Tools
Tron-Box
Tron-Box is a development environment based on the Tron Virtual Machine (TVM) that allows developers to write, deploy and debug Solidity smart contracts on the Tron blockchain.
Similar to Truffle on the Ethereum platform, Tron Box is a development environment, testing framework for the Tron blockchain using the Tron Virtual Machine (TVM).
Tron-Web
Tron Web aims to deliver a unified, seamless development experience influenced by Ethereum’s Web3 implementation. Similar to Web3 on the Ethereum platform, Tron Web has taken the core of Web3 and expanded upon it to unlock the functionality of TRON’s unique feature set along with offering new tools for integrating DApps in the browser, Node.js and IoT devices.
Tron-Grid
Tron Grid uses SpringBoot to provide a query interface. It takes Java-Tron and writes events into Mongo DB. The user can poll the Smart Contract’s details. Similar to Infuraon the Ethereum platform, Tron Grid provides Tron clients running in the cloud, so you don’t have to run one yourself to work with Tron. Tron Grid allows developers to access important tools to develop decentralized applications on the Tron protocol.