Livre blanc TRON

TRON Whitepaper v2.0

Oleh Justin Sun · 2017

Introduction

Introduction

1.1 Vision

TRON is an ambitious project dedicated to the establishment of a truly decentralized Internet and its infrastructure. The TRON Protocol, one of the largest blockchain-based operating systems in the world, offers public blockchain support of high throughput, high scalability, and high availability for all Decentralized Applications (DApps) in the TRON ecosystem. The July 2018 acquisition of BitTorrent further cemented TRON’s leadership in pursuing a decentralized ecosystem.
1.2 Background

The introduction of Bitcoin in 2009 revolutionized society’s perception of the traditional financial system in the wake of the Great Recession (2007-2008). As centralized hedge funds and banks collapsed from speculation in opaque financial derivatives, blockchain technology provided a transparent universal ledger from which anybody could glean transaction information. The transactions were cryptographically secured using a Proof of Work (PoW) consensus mechanism, thus preventing double spend issues.

In late 2013, the Ethereum white paper proposed a network in which smart contracts and a Turing-complete Ethereum Virtual Machine (EVM) would allow developers to interact with the network through DApps. However, as transaction volumes in Bitcoin and Ethereum peaked in 2017, it was apparent from the low transaction throughput times and high transaction fees that cryptocurrencies like Bitcoin and Ethereum in their existing state were not scalable for widespread adoption. Thus, TRON was founded and envisioned as an innovative solution to these pressing scalability challenges.

TRON development roadmap phase 1 timeline from July 2017 to June 2018

1.3 History The TRON DAO was established in July 2017 in Singapore. In December 2017, TRON had launched its open source protocol. The Testnet, Blockchain Explorer, and Web Wallet were all launched by March 2018. TRON Mainnet launched shortly afterward in May 2018, marking the Odyssey 2.0 release as a technical milestone. In June 2018, TRON declared its independence with the creation of the Genesis block, along with the July 2018 acquisition of BitTorrent. In October 2018, TRON launched the TRON Virtual Machine (TVM), a complete developers’ toolset, and 360 support system. The TRON roadmap involves combining BitTorrent’s 100 million users with the TRON network via Project Atlas, as well as fostering the developer community to launch exciting new DApps on the TRON network1. 1 V1.0 is available at https://tron.network/static/doc/white_paper_v_1_0.pdf

TRON development roadmap phase 2 timeline from July 2018 to 2019

1.4 Terminology

Address/Wallet An address or wallet consisting of account credentials on the TRON network are generated by a key pair, which consists of a private key and a public key, the latter being derived from the former through an algorithm. The public key is usually used for session key encryption, signature verification, and encrypting data that could be decrypted by a corresponding private key.

ABI An application binary interface (ABI) is an interface between two binary program modules; usually one of these modules is a library or an operating system facility, and the other is a user run program.

API An application programming interface (API) is mainly used for user clients development. With API support, token issuance platforms can also be designed by developers themselves.

Asset In TRON's documents, asset is the same as token, which is also denoted as TRC-10 token.

Bandwidth Points (BP) To keep the network operating smoothly, TRON network transactions use BP as fuel. Each account gets 5000 free daily BP and more can be obtained by freezing TRX for BP. Both TRX and TRC-10 token transfers are normal transactions costing BP. Smart contract deployment and execution transactions consume both BP and Energy.

Block Blocks contain the digital records of transactions. A complete block consists of the magic number, block size, block header, transaction counter, and transaction data.

Block Reward Block production rewards are sent to a sub-account (address/wallet). Super Representatives can claim their rewards on Tronscan or through the API directly.

Block Header A block header is part of a block. TRON block headers contain the previous block’s hash, the Merkle root, timestamp, version, and witness address.

Cold Wallet Cold wallet, also known as offline wallet, keeps the private key completely disconnected from any network. Cold wallets are usually installed on "cold" devices (e.g. computers or mobile phones staying offline) to ensure the security of TRX private key.

DApp Decentralized Application is an App that operates without a centrally trusted party. An application that enables direct interaction/agreements/communication between end users and/or resources without a middleman.

gRPC gRPC (gRPC Remote Procedure Calls) is an open source remote procedure call (RPC) system 2 initially developed at Google. It uses HTTP/2 for transport, Protocol Buffers as the interface description language, and provides features such as authentication, bidirectional streaming and flow control, blocking or nonblocking bindings, and cancellation and timeouts. It generates cross-platform client and server bindings for many languages. Most common usage scenarios include connecting services in microservices style architecture and connecting mobile devices, and browser clients to backend services.

Hot Wallet Hot wallet, also known as online wallet, allows user's private key to be used online, thus it could be susceptible to potential vulnerabilities or interception by malicious actors.

JDK Java Development Kit is the Java SDK used for Java applications. It is the core of Java development, comprising the Java application environment (JVM+Java class library) and Java tools.

KhaosDB TRON has a KhaosDB in the full-node memory that can store all the newly-forked chains generated within a certain period of time and supports witnesses to switch from their own active chain swiftly into a new main chain. See 2.2.2 State Storage for more details.

LevelDB LevelDB was initially adopted with the primary goal to meet the requirements of fast R/W and rapid development. After launching the Mainnet, TRON upgraded its database to an entirely customized one catered to its very own needs. See 2.2.1 Blockchain Storage for more details.

Merkle Root A Merkle root is the hash of all hashes of all transactions included as part of a block in a blockchain network. See 3.1 Delegated Proof of Stake (DPoS) for more details. 2 https://en.wikipedia.org/wiki/GRPC

Public Testnet (Shasta) A version of the network running in a single-node configuration. Developers can connect and test features without worrying about the economic loss. Testnet tokens have no value and anyone can request more from the public faucet.

RPC
3 In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared network), which is coded as if it were a normal (local) procedure call, without the programmer explicitly coding the details for the remote interaction.

Scalability Scalability is a feature of the TRON Protocol. It is the capability of a system, network, or process to handle a growing amount of work or its potential to be enlarged to accommodate that growth.

SUN SUN replaced drop as the smallest unit of TRX. 1 TRX = 1,000,000 SUN.

Throughput High throughput is a feature of TRON Mainnet. It is measured in Transactions Per Second (TPS), namely the maximum transaction capacity in one second.

Timestamp The approximate time of block production is recorded as Unix timestamp, which is the number of milliseconds that have elapsed since 00:00:00 01 Jan 1970 UTC.

TKC Token configuration.

TRC-10 A standard of crypto token on TRON platform. Certain rules and interfaces are required to follow when holding an initial coin offering on TRON blockchain.

TRX TRX stands for Tronix, which is the official cryptocurrency of TRON.

3 https://en.wikipedia.org/wiki/Remote_procedure_call

Introduction

1.1 Vision

TRON est un projet ambitieux dédié à la mise en place d'un Internet véritablement décentralisé et à ses infrastructures. Le protocole TRON, l'un des plus grands systèmes d'exploitation basés sur blockchain au monde. monde, offre une prise en charge publique blockchain d'un débit élevé, d'une évolutivité élevée et d'une haute disponibilité pour toutes les applications décentralisées (DApps) de l'écosystème TRON. L'acquisition en juillet 2018 de BitTorrent a encore consolidé le leadership de TRON dans la poursuite d'un écosystème décentralisé.
1.2 Contexte

L’introduction du Bitcoin en 2009 a révolutionné la perception qu’avait la société du secteur financier traditionnel. système à la suite de la Grande Récession (2007-2008). Comme les hedge funds centralisés et les banques effondré à cause de la spéculation sur des dérivés financiers opaques, la technologie blockchain a fourni un grand livre universel transparent à partir duquel chacun pourrait glaner des informations sur les transactions. Le les transactions ont été sécurisées cryptographiquement à l'aide d'un mécanisme de consensus Proof of Work (PoW), évitant ainsi les problèmes de double dépense.

Fin 2013, le livre blanc Ethereum proposait un réseau dans lequel des smart contract et un La machine virtuelle Turing-complete Ethereum (EVM) permettrait aux développeurs d'interagir avec le réseau via DApps. Cependant, alors que les volumes de transactions en Bitcoin et Ethereum ont culminé en 2017, il ressortait des faibles délais de traitement des transactions et des frais de transaction élevés que les crypto-monnaies comme Bitcoin et Ethereum dans leur état actuel n'étaient pas évolutives pour une utilisation généralisée. adoption. Ainsi, TRON a été fondée et envisagée comme une solution innovante à ces problèmes urgents. défis d’évolutivité.

TRON development roadmap phase 1 timeline from July 2017 to June 2018

1.3 Historique Le TRON DAO a été créé en juillet 2017 à Singapour. En décembre 2017, TRON avait a lancé son protocole open source. Le Testnet, Blockchain Explorer et Web Wallet étaient tous lancé en mars 2018. TRON Mainnet a été lancé peu de temps après en mai 2018, marquant le Sortie d'Odyssey 2.0 comme étape technique. En juin 2018, TRON a déclaré son indépendance avec la création du bloc Genesis, ainsi que l'acquisition de BitTorrent en juillet 2018. Dans En octobre 2018, TRON a lancé la machine virtuelle TRON (TVM), un ensemble complet d'outils pour les développeurs, et système de support 360. La feuille de route TRON consiste à combiner les 100 millions d’utilisateurs de BitTorrent avec le réseau TRON via Project Atlas, ainsi qu'en encourageant la communauté des développeurs à lancer de nouvelles DApp passionnantes sur le réseau TRON1. 1 V1.0 est disponible à https://tron.network/static/doc/white_paper_v_1_0.pdf

1.4 Terminologie

Adresse/portefeuille Une adresse ou un portefeuille composé d'identifiants de compte sur le réseau TRON est généré par un paire de clés, composée d'une clé privée et d'une clé publique, cette dernière étant dérivée de la première grâce à un algorithme. La clé publique est généralement utilisée pour le chiffrement de la clé de session, la signature vérification et cryptage des données qui pourraient être déchiffrées par une clé privée correspondante.

IBI Une interface binaire d'application (ABI) est une interface entre deux modules de programme binaires ; habituellement l'un de ces modules est une bibliothèque ou une fonctionnalité du système d'exploitation, et l'autre est un module exécuté par l'utilisateur. programme.

API Une interface de programmation d'application (API) est principalement utilisée pour le développement des clients utilisateurs. Avec API support, les plateformes d'émission token peuvent également être conçues par les développeurs eux-mêmes.

Actif Dans les documents de TRON, l'actif est le même que token, qui est également désigné par TRC-10 token.

Points de bande passante (BP) Pour assurer le bon fonctionnement du réseau, les transactions du réseau TRON utilisent BP comme carburant. Chaque compte obtient 5 000 BP quotidiens gratuits et davantage peut être obtenu en gelant TRX pour BP. TRX et TRC-10 Les transferts token sont des transactions normales coûtant à BP. Déploiement et exécution de contrats intelligents les transactions consomment à la fois du BP et de l’énergie.

Bloquer Les blocs contiennent les enregistrements numériques des transactions. Un bloc complet est constitué du nombre magique, taille de bloc, en-tête de bloc, compteur de transactions et données de transaction.

Bloquer la récompense Les récompenses de production de blocs sont envoyées sur un sous-compte (adresse/portefeuille). Les super représentants peuvent réclamez leurs récompenses sur Tronscan ou directement via l'API.

En-tête de bloc Un en-tête de bloc fait partie d'un bloc. Les en-têtes de bloc TRON contiennent le hash du bloc précédent, le Racine Merkle, horodatage, version et adresse du témoin.Portefeuille froid Le portefeuille froid, également appelé portefeuille hors ligne, maintient la clé privée complètement déconnectée de tout réseau. Les portefeuilles froids sont généralement installés sur des appareils « froids » (par exemple des ordinateurs ou des téléphones portables). rester hors ligne) pour assurer la sécurité de la clé privée TRX.

DApp Une application décentralisée est une application qui fonctionne sans partie de confiance centrale. Une candidature qui permet une interaction/des accords/une communication directe entre les utilisateurs finaux et/ou les ressources sans intermédiaire.

gRPC gRPC (gRPC Remote Procedure Calls) est un système d'appel de procédure à distance (RPC) open source 2 initialement développé chez Google. Il utilise HTTP/2 pour le transport, Protocol Buffers comme interface langage de description et fournit des fonctionnalités telles que l'authentification, le streaming bidirectionnel et le flux contrôle, liaisons bloquantes ou non bloquantes, annulation et délais d'attente. Il génère liaisons client et serveur multiplateformes pour de nombreuses langues. Scénarios d'utilisation les plus courants inclure des services de connexion dans une architecture de style microservices et la connexion d'appareils mobiles, et clients de navigateur vers les services backend.

Portefeuille chaud Le portefeuille chaud, également connu sous le nom de portefeuille en ligne, permet d'utiliser la clé privée de l'utilisateur en ligne. sensibles aux vulnérabilités potentielles ou à l’interception par des acteurs malveillants.

JDK Java Development Kit est le SDK Java utilisé pour les applications Java. C'est le cœur de Java développement, comprenant l'environnement d'application Java (bibliothèque de classes JVM+Java) et Java outils.

KhaosDB TRON a une KhaosDB dans la mémoire complète du nœud qui peut stocker toutes les chaînes nouvellement créées générées dans un certain laps de temps et aide les témoins à quitter rapidement leur propre chaîne active dans une nouvelle chaîne principale. Voir 2.2.2 Stockage d'état pour plus de détails.

NiveauDB LevelDB a été initialement adopté dans le but principal de répondre aux exigences de R/W rapide et de développement. Après avoir lancé le Mainnet, TRON a mis à niveau sa base de données vers une base de données entièrement personnalisée on répondait à ses propres besoins. Voir 2.2.1 Stockage Blockchain pour plus de détails.

Racine de Merkle Une racine Merkle est le hash de tous les hash de toutes les transactions incluses dans le cadre d'un bloc dans un blockchain. réseau. Voir 3.1 Preuve de participation déléguée (DPoS) pour plus de détails. 2 https://en.wikipedia.org/wiki/GRPC

TRON development roadmap phase 2 timeline from July 2018 to 2019

Réseau de test public (Shasta) Une version du réseau fonctionnant dans une configuration à nœud unique. Les développeurs peuvent se connecter et tester fonctionnalités sans se soucier de la perte économique. Les token Testnet n'ont aucune valeur et tout le monde peut demandez plus au robinet public.

RPC
3 En informatique distribuée, un appel de procédure à distance (RPC) se produit lorsqu'un programme informatique provoque un procédure (sous-programme) à exécuter dans un espace d’adressage différent (généralement sur un autre ordinateur sur un réseau partagé), qui est codé comme s'il s'agissait d'un appel de procédure normal (local), sans le programmeur codant explicitement les détails de l’interaction à distance.

Évolutivité L'évolutivité est une fonctionnalité du protocole TRON. C'est la capacité d'un système, d'un réseau ou d'un processus à gérer une quantité croissante de travail ou son potentiel d’être élargi pour s’adapter à cette croissance.

SOLEIL SUN a remplacé drop en tant que plus petite unité de TRX. 1 TRX = 1 000 000 SOLEIL.

Débit Le débit élevé est une fonctionnalité du réseau principal TRON. Il est mesuré en transactions par seconde (TPS), à savoir la capacité maximale de transaction en une seconde.

Horodatage L'heure approximative de production du bloc est enregistrée sous forme d'horodatage Unix, qui correspond au nombre de millisecondes écoulées depuis 00:00:00 le 1er janvier 1970 UTC.

CTK Configuration du jeton.

TRC-10 Un standard de crypto token sur la plateforme TRON. Certaines règles et interfaces doivent être respectées lors de la détention d'une offre initiale de pièces le TRON blockchain.

TRX TRX signifie Tronix, qui est la crypto-monnaie officielle de TRON.

3 https://en.wikipedia.org/wiki/Remote_procedure_call

Architecture

Architecture

TRON adopts a 3-layer architecture divided into Storage Layer, Core Layer, and Application Layer. The TRON protocol adheres to Google Protobuf, which intrinsically supports multi-language extension.

TRON three-layer architecture diagram showing Application Layer Core Layer and Storage Layer

Figure 1: TRON 3-layer Architecture

2.1 Core

There are several modules in the core layer, including smart contracts, account management, and consensus. A stack-based virtual machine is implemented on TRON and an optimized instruction set is used. In order to better support DApp developers, Solidity was chosen as the smart contract 4 language, followed by future support of other advanced languages. In addition, TRON's consensus mechanism is based on Delegated Proof of Stake (DPoS) and many innovations were made in order to meet its unique requirements. 2.2 Storage

TRON designed a unique distributed storage protocol consisting of Block Storage and State Storage. The notion of a graph database was introduced into the design of the storage layer to better meet the need for diversified data storage in the real world. 2.2.1 Blockchain Storage

TRON blockchain storage chooses to use LevelDB, which is developed by Google and proven successful with many companies and projects. It has high performance and supports arbitrary byte arrays as both keys and values, singular get, put and delete, batched put and delete, bi-directional iterators, and simple compression using the very fast Snappy algorithm. 2.2.2 State Storage

TRON has a KhaosDB in the full-node memory that can store all the newly forked chains generated within a certain period of time and supports witnesses to switch from their own active chain swiftly into a new main chain. It can also protect blockchain storage by making it more stable from being terminating abnormally in an intermediate state. 2.3 Application

Developers can create a diverse range of DApps and customized wallets on TRON. Since TRON enables smart contracts to be deployed and executed, the opportunities of utility applications are unlimited. 4 Solidity official documentation: https://solidity.readthedocs.io/

2.4 Protocol

TRON protocol adheres to Google Protocol Buffers , which is a language-neutral, platform-neutral, 5 and extensible way of serializing structured data for use in communications protocols, data storage, and more. 2.4.1 Protocol Buffers

Protocol Buffers (Protobuf) is a flexible, efficient, automated mechanism for serializing structured data, similar to JSON or XML, but much smaller, faster and simpler.

Protobuf (.proto) definitions can be used to generate code for C++, Java, C#, Python, Ruby, Golang, and Objective-C languages through the official code generators. Various third-party implementations are also available for many other languages. Protobuf eases development for clients by unifying the API definitions and also optimizing data transfers. Clients can take the API .proto from TRON’s protocol repository and integrate through the automatically-generated code libraries.

As a comparison, Protocol Buffers is 3 to 10 times smaller and 20 to 100 times faster than XML, with less ambiguous syntax. Protobuf generates data access classes that are easier to use programmatically. 2.4.2 HTTP

TRON Protocol provides a RESTful HTTP API alternative to the Protobuf API. They share the same interface but the HTTP API can be readily used in javascript clients. 2.5 TRON Virtual Machine (TVM)

The TVM is a lightweight, Turing complete virtual machine developed for TRON’s ecosystem. The TVM connects seamlessly with the existing development ecosystem to provide millions of global developers with a custom-built blockchain system that is efficient, convenient, stable, secure, and scalable.
2.6 Decentralized Exchange (DEX)

5 Google Protocol Buffers official documentation: https://developers.google.com/protocol-buffers/

The TRON network natively supports decentralized exchange functions. A decentralized exchange consists of multiple trading pairs. A trading pair (notation “Exchange”) is an Exchange Market between TRC-10 tokens, or between a TRC-10 token and TRX. Any account can create a trading pair between any tokens, even if the same pair already exists on the TRON network. Trading and price fluctuations of the trading pairs follow the Bancor Protocol . The TRON network stipulates that 6 the weights of the two tokens in all trading pairs are equal, so the ratio of their balances is the price between them. For example, consider a trading pair containing two tokens, ABC and DEF. ABC has a balance of 10 million and DEF has a balance of 1 million. Since their weights are equal, 10 ABC = 1 DEF. This means that the ratio of ABC to DEF is 10 ABC per DEF. 2.7 Implementation

The TRON blockchain code is implemented in Java and was originally a fork from EthereumJ.

6 Bancor Protocol official website: https://about.bancor.network/protocol/

Architecture

TRON adopte une architecture à 3 couches divisée en couche de stockage, couche principale et couche d'application. Le protocole TRON adhère à Google Protobuf, qui prend intrinsèquement en charge le multilingue prolongation.

TRON three-layer architecture diagram showing Application Layer Core Layer and Storage Layer

Figure 1 : TRON Architecture à 3 couches

2.1 Noyau

Il existe plusieurs modules dans la couche principale, notamment smart contracts, la gestion des comptes et consensus. Une machine virtuelle basée sur une pile est implémentée sur TRON et une instruction optimisée l’ensemble est utilisé. Afin de mieux accompagner les développeurs DApp, Solidity a été choisi comme smart contract 4 langue, suivie par la prise en charge future d'autres langues avancées. De plus, le consensus de TRON Le mécanisme est basé sur la preuve de participation déléguée (DPoS) et de nombreuses innovations ont été apportées en afin de répondre à ses exigences uniques. 2.2 Stockage

TRON a conçu un protocole de stockage distribué unique composé de stockage par blocs et d'état Stockage. La notion de base de données graphes a été introduite dans la conception de la couche de stockage pour mieux répondre au besoin de stockage de données diversifié dans le monde réel. 2.2.1 Stockage blockchain

TRON blockchain Storage choisit d'utiliser LevelDB, développé par Google et éprouvé avec succès auprès de nombreuses entreprises et projets. Il a des performances élevées et prend en charge les octets arbitraires tableaux comme clés et valeurs, obtention, mise et suppression singulières, mise et suppression par lots, bidirectionnel itérateurs et compression simple utilisant l'algorithme Snappy très rapide. 2.2.2 Stockage d'état

TRON a une KhaosDB dans la mémoire complète du nœud qui peut stocker toutes les chaînes nouvellement fourchues générées dans un certain laps de temps et aide les témoins à quitter rapidement leur propre chaîne active dans une nouvelle chaîne principale. Il peut également protéger le stockage blockchain en le rendant plus stable contre les se terminant anormalement dans un état intermédiaire. 2.3 Demande

Les développeurs peuvent créer une gamme diversifiée de DApps et de portefeuilles personnalisés sur TRON. Depuis TRON permet aux smart contract d'être déployés et exécutés, les opportunités des applications utilitaires sont illimité. 4 Documentation officielle Solidité : https://solidity.readthedocs.io/

2.4 Protocole

Le protocole TRON adhère à Google Protocol Buffers , qui est neutre en termes de langage, de plate-forme, 5 et extensible de sérialiser des données structurées pour une utilisation dans les protocoles de communication, le stockage de données, et plus encore. 2.4.1 Tampons de protocole

Protocol Buffers (Protobuf) est un mécanisme flexible, efficace et automatisé pour la sérialisation structurée données, similaires à JSON ou XML, mais beaucoup plus petites, plus rapides et plus simples.

Les définitions Protobuf (.proto) peuvent être utilisées pour générer du code pour C++, Java, C#, Python, Ruby, Golang et Objective-C via les générateurs de code officiels. Divers tiers des implémentations sont également disponibles pour de nombreux autres langages. Protobuf facilite le développement de clients en unifiant les définitions des API et en optimisant également les transferts de données. Les clients peuvent utiliser l'API .proto du référentiel de protocoles de TRON et intégré via le code généré automatiquement bibliothèques.

À titre de comparaison, les tampons de protocole sont 3 à 10 fois plus petits et 20 à 100 fois plus rapides que XML, avec une syntaxe moins ambiguë. Protobuf génère des classes d'accès aux données plus faciles à utiliser par programmation. 2.4.2 HTTP

Le protocole TRON fournit une alternative à l'API HTTP RESTful à l'API Protobuf. Ils partagent la même chose interface mais l'API HTTP peut être facilement utilisée dans les clients javascript. 2.5 TRON Machine virtuelle (TVM)

Le TVM est une machine virtuelle complète et légère de Turing développée pour l'écosystème de TRON. Le TVM se connecte de manière transparente à l'écosystème de développement existant pour fournir des millions de développeurs avec un système blockchain personnalisé qui est efficace, pratique, stable, sécurisé et évolutif.
2.6 Échange décentralisé (DEX)

5 Documentation officielle des tampons de protocole Google : https://developers.google.com/protocol-buffers/Le réseau TRON supporte nativement les fonctions d'échange décentralisées. Un échange décentralisé se compose de plusieurs paires de trading. Une paire de trading (notation « Exchange ») est un marché d'échange entre des TRC-10 token, ou entre un TRC-10 token et un TRX. N'importe quel compte peut créer un trading paire entre n’importe quel token, même si la même paire existe déjà sur le réseau TRON. Commerce et les fluctuations de prix des paires de trading suivent le protocole Bancor. Le réseau TRON stipule que 6 les poids des deux token dans toutes les paires de trading sont égaux, donc le rapport de leurs soldes est le prix entre eux. Par exemple, considérons une paire de trading contenant deux token, ABC et DEF. ABC a un solde de 10 millions et DEF a un solde de 1 million. Puisque leurs poids sont égaux, 10 ABC = 1 DÉF. Cela signifie que le rapport ABC/DEF est de 10 ABC par DEF. 2.7 Mise en œuvre

Le code TRON blockchain est implémenté en Java et était à l'origine un fork de EthereumJ.

6 Site officiel du Protocole Bancor : https://about.bancor.network/protocol/

Consensus

Consensus

3.1 Delegated Proof of Stake (DPoS)

The earliest consensus mechanism is the Proof of Work (PoW) consensus mechanism. This protocol is currently implemented in Bitcoin and Ethereum . In PoW systems, transactions 7 8 broadcast through the network are grouped together into nascent blocks for miner confirmation. The confirmation process involves hashing transactions using cryptographic hashing algorithms until a merkle root has been reached, creating a merkle tree:

Figure 2: 8 TRX transactions are hashed into the merkle root. This merkle root is then included in the block header, which is attached to the previously confirmed blocks to form a blockchain. This allows for easy and transparent tracking of transactions, timestamps, and other related information.

7 Bitcoin whitepaper: https://bitcoin.org/bitcoin.pdf 8 Ethereum whitepaper: https://github.com/ethereum/wiki/wiki/White-Paper

Cryptographic hashing algorithms are useful in network attack prevention because they possess several properties :
9

● Input/Output length size​ - The algorithm can pass in an input of any length in size, and outputs a fixed length hash value.
● Efficiency​ - The algorithm is relatively easy and fast to compute.
● Preimage resistance​ - For a given output ​z​, it is impossible to find any input ​x​ such that h(x) =​ ​z​. In other words, the hashing algorithm ​h(x)​ is a one-way function in which only the output can be found, given an input. The reverse is not possible.
● Collision resistance​ - It is computationally infeasible to find any pairs \(x_1 \neq x_2\) such that \(h(x_1) = h(x_2)\). In other words, the probability of finding two different inputs hashing to the same output is extremely low. This property also implies ​second preimage resistance​.
● Second preimage resistance​ - Given ​x​1​, and thus ​h(x​1​)​, it is computationally infeasible to find any ​x​2​ such that ​h(x​1​) = h(x​2​)​. While this property is similar to ​collision resistance​, the property differs in that it is saying an attacker with a given ​x​1​ will find it computationally infeasible to find any ​x​2​ hashing to the same output.
● Deterministic​ - maps each input to one and only one output. ● Avalanche effect​ - a small change in the input results in an entirely different output.

These properties give the cryptocurrency network its intrinsic value by ensuring attacks do not compromise the network. When miners confirm a block, they are rewarded tokens as a built-in incentive for network participation. However, as the global cryptocurrency market capitalization steadily increased, the miners became centralized and focused their computing resources on hoarding tokens as assets, rather than for network participation purposes. CPU miners gave way to GPUs, which in turn gave way to powerful ASICs. In one notable study, the total power consumption of Bitcoin mining has been estimated to be as high as 3 GW , comparable to Ireland’s 10 power consumption. This same study projected total power consumption to reach 8 GW in the near future.

To solve the energy waste issue, the Proof of Stake (PoS) consensus mechanism was proposed by many new networks. In PoS networks, token holders lock their token balances to become block validators. The validators take turns proposing and voting on the next block. However, the problem with standard PoS is that validator influence correlates directly to the amount of tokens locked up. This results in parties hoarding large amounts of the network’s base currency wielding undue influence in the network ecosystem.

The TRON consensus mechanism uses an innovative Delegated Proof of Stake system in which 27 Super Representatives (SRs) produce blocks for the network. Every 6 hours, TRX account holders who freeze their accounts can vote for a selection of SR candidates, with the top 27 candidates deemed the SRs. Voters may choose SRs based on criteria such as projects sponsored by SRs to 9 PAAR, C., PELZL, J., ​Understanding Cryptography: A Textbook for Students and Practitioners​, 2010 ed. Springer-Verlag Berlin Heidelberg, 2010.
10 https://www.sciencedirect.com/science/article/pii/S2542435118301776

increase TRX adoption, and rewards distributed to voters. This allows for a more democratized and decentralized ecosystem. SRs’ accounts are normal accounts, but their accumulation of votes allows them to produce blocks. With the low throughput rates of Bitcoin and Ethereum due to their PoW consensus mechanism and scalability issues, TRON’s DPoS system offers an innovative mechanism resulting in 2000 TPS compared to Bitcoin’s 3 TPS and Ethereum’s 15 TPS.

The TRON protocol network generates one block every three seconds, with each block awarding 32 TRX to Super Representatives. A total of 336,384,000 TRX will be awarded annually to the 27 SRs. Each time an SR finishes block production, rewards are sent to a sub-account in the super-ledger. SRs can check, but not directly make use of these TRX tokens. A withdrawal can be made by each SR once every 24 hours, transferring the rewards from the sub-account to the specified SR account.

The three types of nodes on the TRON network are Witness Node, Full Node, and Solidity Node. Witness nodes are set up by SRs and are mainly responsible for block production and proposal creation/voting. Full nodes provide APIs and broadcast transactions and blocks. Solidity nodes sync blocks from other Full Nodes and also provide indexable APIs.

Consensus

3.1 Preuve de participation déléguée (DPoS)

Le mécanisme de consensus le plus ancien est le mécanisme de consensus Proof of Work (PoW). Ceci Le protocole est actuellement implémenté dans Bitcoin et Ethereum . Dans les systèmes PoW, les transactions 7 8 diffusés à travers le réseau sont regroupés en blocs naissants pour confirmation par le mineur. Le Le processus de confirmation implique de hashing transactions à l'aide d'algorithmes cryptographiques hashing jusqu'à ce qu'un La racine Merkle a été atteinte, créant un arbre Merkle :

Figure 2 : 8 transactions TRX sont hashed dans la racine merkle. Cette racine merkle est ensuite incluse dans l'en-tête du bloc, qui est attaché aux blocs précédemment confirmés pour former un blockchain. Cela permet un suivi facile et transparent de transactions, horodatages et autres informations connexes.

7 Livre blanc Bitcoin : https://bitcoin.org/bitcoin.pdf 8 Livre blanc Ethereum : https://github.com/ethereum/wiki/wiki/White-Paper

Les algorithmes cryptographiques hashing sont utiles dans la prévention des attaques réseau car ils possèdent plusieurs propriétés :
9

● Taille de la longueur d'entrée/sortie - L'algorithme peut transmettre une entrée de n'importe quelle longueur, et génère une valeur hash de longueur fixe.
● Efficacité​ - L'algorithme est relativement simple et rapide à calculer.
● Résistance de préimage​ - Pour une sortie ​z​ donnée, il est impossible de trouver une entrée ​x​ telle que h(x) =​ ​z​. En d’autres termes, l’algorithme hashing ​h(x)​ est une fonction unidirectionnelle dans laquelle seul le la sortie peut être trouvée, étant donné une entrée. L’inverse n’est pas possible.
● Résistance aux collisions​ - Il est informatiquement impossible de trouver des paires ​x​1 ​≠ x​2​ ​telles que ​h(x​1​) = h(x​2​)​. En d’autres termes, la probabilité de trouver deux entrées différentes hash au même le rendement est extrêmement faible. Cette propriété implique également une ​résistance à la seconde préimage​.
● Résistance de la deuxième pré-image - Étant donné ​x​1​, et donc ​h(x​1​)​, il est informatiquement impossible de trouver n'importe quel ​x​2​ tel que ​h(x​1​) = h(x​2​)​. Bien que cette propriété soit similaire à la ​résistance aux collisions​, la la propriété diffère en ce sens qu'elle signifie qu'un attaquant avec un ​x​1​ donné le trouvera par calcul impossible de trouver un ​x​2​ hash sur la même sortie.
● Déterministe​ - mappe chaque entrée sur une et une seule sortie. ● Effet Avalanche​ - un petit changement dans l'entrée entraîne une sortie entièrement différente.

Ces propriétés confèrent au réseau de crypto-monnaie sa valeur intrinsèque en garantissant que les attaques ne compromettre le réseau. Lorsque les mineurs confirment un blocage, ils sont récompensés par des token sous forme de récompense intégrée. incitation à la participation au réseau. Cependant, comme la capitalisation boursière mondiale des cryptomonnaies En constante augmentation, les mineurs se sont centralisés et ont concentré leurs ressources informatiques sur thésauriser les token en tant qu'actifs, plutôt qu'à des fins de participation au réseau. Les mineurs de CPU ont cédé la place à Les GPU, qui à leur tour ont cédé la place aux puissants ASIC. Dans une étude notable, la puissance totale la consommation de l’exploitation minière Bitcoin a été estimée à 3 GW, comparable à celle de l’Irlande. 10 consommation d'énergie. Cette même étude prévoyait que la consommation totale d'énergie atteindrait 8 GW à court terme. futur.

Pour résoudre le problème du gaspillage énergétique, le mécanisme de consensus Proof of Stake (PoS) a été proposé par de nombreux nouveaux réseaux. Dans les réseaux PoS, les détenteurs de token verrouillent leurs soldes token pour devenir des blocs validators. Les validator proposent et votent à tour de rôle sur le bloc suivant. Cependant, le problème avec le PoS standard, l'influence de validator est directement corrélée au nombre de token bloqués. Cela conduit les parties à thésauriser de grandes quantités de la monnaie de base du réseau et à les utiliser de manière injustifiée. influence dans l’écosystème du réseau.

Le mécanisme de consensus TRON utilise un système innovant de Delegated Proof of Stake dans lequel 27 Les super représentants (SR) produisent des blocs pour le réseau. Toutes les 6 heures, les titulaires de comptes TRX qui gèlent leurs comptes peuvent voter pour une sélection de candidats SR, les 27 premiers candidats considérés comme les SR. Les électeurs peuvent choisir les SR en fonction de critères tels que les projets parrainés par les SR pour 9 PAAR, C., PELZL, J., ​Comprendre la cryptographie : un manuel pour les étudiants et les praticiens​, 2010 éd. Springer-Verlag Berlin Heidelberg, 2010.
10 https://www.sciencedirect.com/science/article/pii/S2542435118301776augmenter l’adoption du TRX et les récompenses distribuées aux électeurs. Cela permet une société plus démocratisée et écosystème décentralisé. Les comptes des SR sont des comptes normaux, mais leur accumulation de voix leur permet de produire des blocs. Avec les faibles débits de Bitcoin et Ethereum en raison de leur Mécanisme de consensus PoW et problèmes d'évolutivité, le système DPoS de TRON offre une solution innovante mécanisme résultant en 2000 TPS par rapport aux 3 TPS de Bitcoin et aux 15 TPS de Ethereum.

Le réseau de protocole TRON génère un bloc toutes les trois secondes, chaque bloc attribuant 32 TRX aux super représentants. Un total de 336 384 000 TRX seront attribués chaque année aux 27 SR. Chaque fois qu'un SR termine la production de blocs, les récompenses sont envoyées sur un sous-compte du super-grand livre. Les SR peuvent vérifier, mais ne peuvent pas utiliser directement ces TRX token. Un retrait peut être effectué par chacun SR une fois toutes les 24 heures, transférant les récompenses du sous-compte vers le SR spécifié compte.

Les trois types de nœuds sur le réseau TRON sont Witness Node, Full Node et Solidity Node. Les nœuds témoins sont mis en place par les SR et sont principalement responsables de la production et de la proposition des blocs. création/vote. Les nœuds complets fournissent des API et diffusent des transactions et des blocs. Synchronisation des nœuds Solidity blocs à partir d’autres nœuds complets et fournissent également des API indexables.

Account

Account

4.1 Types

The three types of accounts in the TRON network are regular accounts, token accounts, and contract accounts.

1. Regular accounts are used for standard transactions.
2. Token accounts are used for storing TRC-10 tokens.
3. Contract accounts are smart contract accounts created by regular accounts and can be triggered by regular accounts as well. 4.2 Creation

There are three ways to create a TRON account:

1. Create a new account through API 2. Transfer TRX into a new account address 3. Transfer any TRC-10 token into a new account address

An offline key-pair consisting of an address (public key) and a private key, and not recorded by the TRON network, can also be generated. The user address generation algorithm consists of generating a key-pair and then extracting the public key (64-byte byte array representing x, y coordinates). Hash the public key using the SHA3-256 function (the SHA3 protocol adopted is KECCAK-256) and extract the last 20 bytes of the result. Add 41 to the beginning of the byte array and ensure the initial address length is 21 bytes. Hash the address twice using SHA3-256 function and take the first 4 bytes as verification code. Add the verification code to the end of the initial address and obtain the address in base58check format through base58 encoding. An encoded Mainnet address begins with T and is 34 bytes in length. 4.3 Structure

The three different account types are Normal, AssetIssue, and Contract. An Account contains 7 parameters:

1. account_name​: the name for this account – e.g. BillsAccount.
2. type​: what type of this account is – e.g. 0 (stands for type ‘Normal’).
3. balance​: balance of this account – e.g. 4213312.

4. vote​: received votes on this account – e.g. {(“0x1b7w…9xj3”,323), (“0x8djq…j12m”,88),…,(“0x82nd…mx6i”,10001)}.
5. asset​: other assets expected TRX in this account – e.g. {<“WishToken”, 66666>, <”Dogie”, 233>}. 6. latest_operation_time​: the latest operation time of this account.

Protobuf data structure: message​ ​Account​ {
​message​ ​Vote​ {

​bytes​ vote_address = ​1​;

​int64​ vote_count = ​2​;

} ​bytes​ accout_name = ​1​;
AccountType type = ​2​;
​bytes​ address = ​3​;
​int64​ balance = ​4​;
​repeated​ Vote votes = ​5​;
map<​string​, ​int64​> asset = ​6​; ​int64​ latest_operation_time = ​10​; }

enum​ ​AccountType​ {
Normal = ​0​;
AssetIssue = ​1​;
Contract = ​2​; }

Compte

4.1 Types

Les trois types de comptes du réseau TRON sont les comptes réguliers, les comptes token et comptes de contrats.

1. Les comptes réguliers sont utilisés pour les transactions standard.
2. Les comptes de jetons sont utilisés pour stocker les TRC-10 token.
3. Les comptes de contrats sont des comptes smart contract créés par des comptes réguliers et peuvent être déclenchés également par les comptes réguliers. 4.2 Création

Il existe trois façons de créer un compte TRON :

1. Créer un nouveau compte via l'API 2. Transférer TRX vers une nouvelle adresse de compte 3. Transférez n'importe quel TRC-10 token vers une nouvelle adresse de compte

Une paire de clés hors ligne composée d'une adresse (clé publique) et d'une clé privée, et non enregistrée par le Le réseau TRON, peut également être généré. L'algorithme de génération d'adresse utilisateur consiste en générer une paire de clés puis extraire la clé publique (tableau d'octets de 64 octets représentant x, y coordonnées). Hachez la clé publique grâce à la fonction SHA3-256 (le protocole SHA3 adopté est KECCAK-256) et extrayez les 20 derniers octets du résultat. Ajoutez 41 au début du tableau d'octets et assurez-vous que la longueur de l’adresse initiale est de 21 octets. Hachez l'adresse deux fois à l'aide de la fonction SHA3-256 et prenez les 4 premiers octets comme code de vérification. Ajoutez le code de vérification à la fin du mot initial et obtenez l'adresse au format base58check via l'encodage base58. Un codé L'adresse du réseau principal commence par T et mesure 34 octets. 4.3 Structure

Les trois types de comptes différents sont Normal, AssetIssue et Contract. Un compte contient 7 paramètres :

1. account_name​ : le nom de ce compte – par ex. Compte de factures.
2. type​ : quel est le type de ce compte – par ex. 0 (signifie type « Normal »).
3. solde​ : solde de ce compte – par ex. 4213312.

4. vote​ : votes reçus sur ce compte – par ex. {("0x1b7w…9xj3",323), (« 0x8djq…j12m »,88),…,(« 0x82nd…mx6i »,10001)}.
5. actif​ : autres actifs TRX attendus dans ce compte – par ex. {<"WishToken", 66666>, <"Dogie", 233>}. 6. last_operation_time​ : la dernière heure de fonctionnement de ce compte.

Protobuf data structure: message​ ​Account​ {
​message​ ​Vote​ {

​bytes​ vote_address = ​1​;

​int64​ vote_count = ​2​;

} ​bytes​ accout_name = ​1​;
AccountType type = ​2​;
​bytes​ address = ​3​;
​int64​ balance = ​4​;
​repeated​ Vote votes = ​5​;
map<​string​, ​int64​> asset = ​6​; ​int64​ latest_operation_time = ​10​; }

enum​ ​AccountType​ {
Normal = ​0​;
AssetIssue = ​1​;
Contract = ​2​; }

Block

Block

A block typically contains a block header and several transactions.

Protobuf data structure: message​ ​Block​ {
BlockHeader block_header = ​1​; ​repeated​ Transaction transactions = ​2​; } 5.1 Block Header

A block header contains ​raw_data​, ​witness_signature​, and ​blockID​.

Protobuf data structure: message​ ​BlockHeader​ {
​message​ ​raw​ {

​int64​ timestamp = ​1​;

​bytes​ txTrieRoot = ​2​; 
​bytes​ parentHash = ​3​;

​uint64​ number = ​4​;  
​uint64​ version = ​5​;

​bytes​ witness_address = ​6​;

} ​bytes​ witness_signature = ​2​; ​bytes​ blockID = ​3​;
} 5.1.1 Raw Data

Raw data is denoted as ​raw_data​ in Protobuf. It contains the raw data of a message, containing 6 parameters:

1. timestamp​: timestamp of this message – e.g. 1543884429000. 2. txTrieRoot​: the Merkle Tree’s Root – e.g. 7dacsa…3ed. 3. parentHash​: the hash of the last block – e.g. 7dacsa…3ed. 4. number​: the block height – e.g. 4638708. 5. version​: reserved – e​.g. 5.

Block header and Merkle tree structure showing how TRX transactions are hashed into the Merkle root

6. witness_address​: the address of the witness packed in this block – e.g. 41928c...4d21. 5.1.2 Witness Signature

Witness signature is denoted as ​witness_signature​ in Protobuf, which is the signature for this block header from the witness node. 5.1.3 Block ID

Block ID is denoted as ​blockID​ in Protobuf. It contains the atomic identification of a block. A Block ID contains 2 parameters: 1. hash​: the hash of block. 2. number​: the hash and height of the block. 5.2 Transaction 5.2.1 Signing

TRON’s transaction signing process follows a standard ECDSA cryptographic algorithm, with a SECP256K1 selection curve. A private key is a random number, and the public key is a point on the elliptic curve. The public key generation process consists of first generating a random number as a private key, and then multiplying the base point of the elliptic curve by the private key to obtain the public key. When a transaction occurs, the transaction raw data is first converted into byte format. The raw data then undergoes SHA-256 hashing. The private key corresponding to the contract address then signs the result of the SHA256 hash. The signature result is then added to the transaction.
5.2.2 Bandwidth Model

Ordinary transactions only consume bandwidth points, but smart contract operations consume both energy and bandwidth points. There are two types of bandwidth points available. Users can gain bandwidth points from freezing TRX, while 5000 free bandwidth points are also available daily.

When a TRX transaction is broadcast, it is transmitted and stored in the form of a byte array over the network. Bandwidth Points consumed by one transaction = number of transaction bytes multiplied by bandwidth points rate. For example, if the byte array length of a transaction is 200, then the transaction consumes 200 bandwidth points. However, if a TRX or token transfer results in the target account being created, then only the bandwidth points consumed to create the account will be deducted, and additional bandwidth points will not be deducted. In an account creation scenario, the network will first consume the bandwidth points that the transaction initiator gained

from freezing TRX. If this amount is insufficient, then the network consumes the transaction initiator’s TRX.

In standard TRX transfer scenarios from one TRX account to another, the network first consumes the bandwidth points gained by the transaction initiator for freezing TRX. If that is insufficient, it then consumes from the free 5000 daily bandwidth points. If that is still not enough, then the network consumes the TRX of the transaction initiator. The amount is calculated by the number of bytes in the transaction multiplied by 10 SUN. Thus, for most TRX holders who may not necessarily freeze their TRX to participate in SR voting, the first step is automatically skipped (since TRX balance frozen = 0) and the 5000 daily free bandwidth powers the transaction.

For TRC-10 token transfers, the network first verifies whether the total free bandwidth points of the issued token asset are sufficient. If not, the bandwidth points obtained from freezing TRX are consumed. If there is still not enough bandwidth points, then it consumes the TRX of the transaction initiator.

5.2.3 Fee

TRON network generally does not charge fees for most transactions, however, due to system restrictions and fairness, bandwidth usage and transactions do take in certain fees.

Fee charges are broken down into the following categories: 1. Normal transactions cost bandwidth points. Users can use the free daily bandwidth points (5000) or freeze TRX to obtain more. When bandwidth points are not enough, TRX will be used directly from the sending account. The TRX needed is the number of bytes * 10 SUN. 2. Smart contracts cost energy (Section 6) but will also need bandwidth points for the transaction to be broadcasted and confirmed. The bandwidth cost is the same as above. 3. All query transactions are free. It doesn’t cost energy or bandwidth.

TRON network also defines a set of fixed fees for the following transactions: 1. Creating a witness node: 9999 TRX 2. Issuing a TRC-10 token: 1024 TRX 3. Creating a new account: 0.1 TRX 4. Creating an exchange pair: 1024 TRX 5.2.4 Transaction as Proof of Stake (TaPoS)

TRON uses TaPoS to ensure the transactions all confirm the main blockchain, while making it difficult to forge counterfeit chains. In TaPoS, the networks require each transaction include part of the hash of a recent block header. This requirement prevents transactions from being replayed on forks not including the referenced block, and also signals the network that a particular user and their

stake are on a specific fork. This consensus mechanism protects the network against Denial of Service, 51%, selfish mining, and double spend attacks.
5.2.5 Transaction Confirmation

A transaction is included in a future block after being broadcast to the network. After 19 blocks are mined on TRON (including its own block), the transaction is confirmed. Each block is produced by one of the top 27 Super Representatives in a round robin fashion. Each block takes ~3 seconds to be mined on the blockchain. Time may slightly vary for each Super Representative due to network conditions and machine configurations. In general, a transaction is considered fully confirmed after ~1 minute. 5.2.6 Structure

Transaction APIs consist of the following functions: message​ ​Transaction​ { ​message​ ​Contract​ { ​enum​ ​ContractType​ { AccountCreateContract = ​0​; // Create account/wallet TransferContract = ​1​; // Transfer TRX TransferAssetContract = ​2​; // Transfer TRC10 token VoteWitnessContract = ​4​; // Vote for Super Representative (SR) WitnessCreateContract = ​5​; // Create a new SR account AssetIssueContract = ​6​; // Create a new TRC10 token WitnessUpdateContract = ​8​; // Update SR information ParticipateAssetIssueContract = ​9​; // Purchase TRC10 token AccountUpdateContract = ​10​; // Update account/wallet information FreezeBalanceContract = ​11​; // Freeze TRX for bandwidth or energy UnfreezeBalanceContract = ​12​; // Unfreeze TRX WithdrawBalanceContract = ​13​; // Withdraw SR rewards, once per day UnfreezeAssetContract = ​14​; // Unfreeze TRC10 token UpdateAssetContract = ​15​; // Update a TRC10 token’s information ProposalCreateContract = ​16​; // Create a new network proposal by any SR ProposalApproveContract = ​17​; // SR votes yes for a network proposal ProposalDeleteContract = ​18​; // Delete a network proposal by owner CreateSmartContract = ​30​; // Deploy a new smart contract TriggerSmartContract = ​31​; // Call a function on a smart contract GetContract = ​32​; // Get an existing smart contract UpdateSettingContract = ​33​; // Update a smart contract’s parameters ExchangeCreateContract = ​41​; // Create a token trading pair on DEX ExchangeInjectContract = ​42​; // Inject funding into a trading pair

ExchangeWithdrawContract = ​43​; // Withdraw funding from a trading pair ExchangeTransactionContract = ​44​; // Perform token trading UpdateEnergyLimitContract = ​45​; // Update origin_energy_limit on a smart contract } } }

Bloc

Un bloc contient généralement un en-tête de bloc et plusieurs transactions.

Protobuf data structure: message​ ​Block​ {
BlockHeader block_header = ​1​; ​repeated​ Transaction transactions = ​2​; } 5.1 En-tête de bloc

Un en-tête de bloc contient ​raw_data​, ​witness_signature​ et ​blockID​.

Protobuf data structure: message​ ​BlockHeader​ {
​message​ ​raw​ {

​int64​ timestamp = ​1​;

​bytes​ txTrieRoot = ​2​; 
​bytes​ parentHash = ​3​;

​uint64​ number = ​4​;  
​uint64​ version = ​5​;

​bytes​ witness_address = ​6​;

} ​bytes​ witness_signature = ​2​; ​bytes​ blockID = ​3​;
} 5.1.1 Données brutes

Les données brutes sont désignées par ​raw_data​ dans Protobuf. Il contient les données brutes d'un message, contenant 6 paramètres :

1. timestamp​ : horodatage de ce message – par ex. 1543884429000. 2. txTrieRoot​ : la racine de l'arbre Merkle – par ex. 7dacsa…3éd. 3. parentHash​ : le hash du dernier bloc – par ex. 7dacsa…3éd. 4. nombre​ : la hauteur du bloc – par ex. 4638708. 5. version​: réservé – par ex. 5.

Block header and Merkle tree structure showing how TRX transactions are hashed into the Merkle root

6. Witness_address​ : l'adresse du témoin contenue dans ce bloc – par ex. 41928c...4d21. 5.1.2 Signature du témoin

La signature du témoin est désignée par ​witness_signature​ dans Protobuf, qui est la signature de ce en-tête de bloc du nœud témoin. 5.1.3 ID de bloc

L'ID de bloc est noté ​blockID​ dans Protobuf. Il contient l'identification atomique d'un bloc. Un bloc L'ID contient 2 paramètres : 1. hash​ : le hash du bloc. 2. numéro​ : le hash et la hauteur du bloc. 5.2 Opérations 5.2.1 Signature

Le processus de signature de transaction de TRON suit un algorithme cryptographique ECDSA standard, avec un Courbe de sélection SECP256K1. Une clé privée est un nombre aléatoire et la clé publique est un point sur le courbe elliptique. Le processus de génération de clé publique consiste à générer d'abord un nombre aléatoire clé privée, puis en multipliant le point de base de la courbe elliptique par la clé privée pour obtenir le clé publique. Lorsqu'une transaction se produit, les données brutes de la transaction sont d'abord converties au format octet. Les données brutes subissent ensuite un SHA-256 hashing. La clé privée correspondant au contrat adresse signe ensuite le résultat du SHA256 hash. Le résultat de la signature est ensuite ajouté au transaction.
5.2.2 Modèle de bande passante

Les transactions ordinaires ne consomment que des points de bande passante, mais les opérations smart contract consomment les deux. points d’énergie et de bande passante. Il existe deux types de points de bande passante disponibles. Les utilisateurs peuvent gagner points de bande passante contre le gel de TRX, tandis que 5 000 points de bande passante gratuits sont également disponibles quotidiennement.

Lorsqu'une transaction TRX est diffusée, elle est transmise et stockée sous la forme d'un tableau d'octets sur le réseau. Points de bande passante consommés par une transaction = nombre d'octets de transaction multiplié par le taux de points de bande passante. Par exemple, si la longueur du tableau d'octets d'une transaction est de 200, alors la transaction consomme 200 points de bande passante. Cependant, si un transfert TRX ou token entraîne le compte cible en cours de création, puis uniquement les points de bande passante consommés pour créer le compte seront déduits et les points de bande passante supplémentaires ne seront pas déduits. Dans une création de compte Dans ce scénario, le réseau consommera d'abord les points de bande passante gagnés par l'initiateur de la transaction.du gel de TRX. Si ce montant est insuffisant, alors le réseau consomme la transaction TRX de l’initiateur.

Dans les scénarios de transfert TRX standard d'un compte TRX à un autre, le réseau consomme d'abord les points de bande passante gagnés par l'initiateur de la transaction pour geler TRX. Si cela est insuffisant, alors consomme à partir des 5 000 points de bande passante quotidiens gratuits. Si cela ne suffit toujours pas, alors le réseau consomme le TRX de l'initiateur de la transaction. Le montant est calculé par le nombre d'octets dans la transaction multipliée par 10 SUN. Ainsi, pour la plupart des détenteurs de TRX qui ne gèlent pas nécessairement leur TRX pour participer au vote SR, la première étape est automatiquement ignorée (puisque le solde TRX gelé = 0) et les 5 000 bandes passantes gratuites quotidiennes alimentent la transaction.

Pour les transferts TRC-10 token, le réseau vérifie d'abord si le total des points de bande passante libre du l'actif token émis est suffisant. Sinon, les points de bande passante obtenus en gelant TRX sont consommé. S’il n’y a toujours pas assez de points de bande passante, alors cela consomme le TRX de la transaction initiateur.

5.2.3 Frais

Le réseau TRON ne facture généralement pas de frais pour la plupart des transactions, cependant, en raison du système les restrictions et l'équité, l'utilisation de la bande passante et les transactions entraînent certains frais.

Les frais facturés sont répartis dans les catégories suivantes : 1. Les transactions normales coûtent des points de bande passante. Les utilisateurs peuvent utiliser les points de bande passante quotidiens gratuits (5000) ou geler TRX pour en obtenir plus. Lorsque les points de bande passante ne suffisent pas, TRX sera utilisé directement à partir du compte d’envoi. Le TRX nécessaire est le nombre d'octets * 10 SUN. 2. Les contrats intelligents coûtent de l'énergie (Section 6) mais nécessiteront également des points de bande passante pour le transaction à diffuser et à confirmer. Le coût de la bande passante est le même que ci-dessus. 3. Toutes les transactions de requête sont gratuites. Cela ne coûte ni énergie ni bande passante.

Le réseau TRON définit également un ensemble de frais fixes pour les transactions suivantes : 1. Création d'un nœud témoin : 9999 TRX 2. Émission d'un TRC-10 token : 1024 TRX 3. Création d'un nouveau compte : 0.1 TRX 4. Création d'une paire d'échange : 1024 TRX 5.2.4 Transaction comme preuve de participation (TaPoS)

TRON utilise TaPoS pour garantir que les transactions confirment toutes le blockchain principal, tout en le réalisant difficile de forger des chaînes contrefaites. Dans TaPoS, les réseaux exigent que chaque transaction comprenne une partie de le hash d’un en-tête de bloc récent. Cette exigence empêche la relecture des transactions sur forks n'incluant pas le bloc référencé, et signale également au réseau qu'un utilisateur particulier et sonles enjeux sont sur une fourchette spécifique. Ce mécanisme de consensus protège le réseau contre le déni de Service, 51 %, exploitation minière égoïste et attaques à double dépense.
5.2.5 Confirmation de transaction

Une transaction est incluse dans un futur bloc après avoir été diffusée sur le réseau. Après 19 blocs sont extrait le TRON (y compris son propre bloc), la transaction est confirmée. Chaque bloc est produit par l'un des 27 meilleurs super-représentants dans un tournoi à la ronde. Chaque bloc prend environ 3 secondes pour être extrait sur le blockchain. Le temps peut légèrement varier pour chaque super représentant en raison du réseau conditions et configurations des machines. En général, une transaction est considérée comme entièrement confirmée après ~1 minute. 5.2.6 Structure

Transaction APIs consist of the following functions: message​ ​Transaction​ { ​message​ ​Contract​ { ​enum​ ​ContractType​ { AccountCreateContract = ​0​; // Create account/wallet TransferContract = ​1​; // Transfer TRX TransferAssetContract = ​2​; // Transfer TRC10 token VoteWitnessContract = ​4​; // Vote for Super Representative (SR) WitnessCreateContract = ​5​; // Create a new SR account AssetIssueContract = ​6​; // Create a new TRC10 token WitnessUpdateContract = ​8​; // Update SR information ParticipateAssetIssueContract = ​9​; // Purchase TRC10 token AccountUpdateContract = ​10​; // Update account/wallet information FreezeBalanceContract = ​11​; // Freeze TRX for bandwidth or energy UnfreezeBalanceContract = ​12​; // Unfreeze TRX WithdrawBalanceContract = ​13​; // Withdraw SR rewards, once per day UnfreezeAssetContract = ​14​; // Unfreeze TRC10 token UpdateAssetContract = ​15​; // Update a TRC10 token’s information ProposalCreateContract = ​16​; // Create a new network proposal by any SR ProposalApproveContract = ​17​; // SR votes yes for a network proposal ProposalDeleteContract = ​18​; // Delete a network proposal by owner CreateSmartContract = ​30​; // Deploy a new smart contract TriggerSmartContract = ​31​; // Call a function on a smart contract GetContract = ​32​; // Get an existing smart contract UpdateSettingContract = ​33​; // Update a smart contract’s parameters ExchangeCreateContract = ​41​; // Create a token trading pair on DEX ExchangeInjectContract = ​42​; // Inject funding into a trading pair

ExchangeWithdrawContract = ​43​; // Withdraw funding from a trading pair ExchangeTransactionContract = ​44​; // Perform token trading UpdateEnergyLimitContract = ​45​; // Update origin_energy_limit on a smart contract } } }

TRON Virtual Machine

TRON Virtual Machine

6.1 Introduction

TRON Virtual Machine (TVM) is a lightweight, Turing complete virtual machine developed for the TRON's ecosystem. Its goal is to provide a custom-built blockchain system that is efficient, convenient, stable, secure and scalable.

TVM initially forked from EVM and can connect seamlessly with the existing solidity smart contract 11 development ecosystem. Based on that, TVM additionally supports DPoS consensus.

TVM employs the concept of Energy. Different from the Gas mechanism on EVM, operations of transactions and smart contracts on TVM are free, with no TRX consumed. Technically, executable computation capacity on TVM is not restricted by total holding amount of tokens. 6.2 Workflow

The compiler first translates the Solidity smart contract into bytecode readable and executable on the TVM. The TVM then processes data through opcode, which is equivalent to operating the logic of a stack-based finite state machine. Finally, the TVM accesses blockchain data and invokes External Data Interface through the Interoperation layer. 11 EVM: Ethereum Virtual Machine (https://github.com/ethereum/ethereumj)

TVM workflow showing compiler translating Solidity smart contracts into bytecode for execution on the TRON Virtual Machine

Figure 3: TVM Workflow

6.3 Performance 6.3.1 Lightweight Architecture

TVM adopts a lightweight architecture with the aim of reducing resource consumption to guarantee system performance. 6.3.2 Robust

TRX transfers and smart contract execution cost bandwidth points only, instead of TRX, which exempts TRON from being attacked. Bandwidth consumption is predictable and static since each computational step cost is fixed. 6.3.3 High Compatibility

TVM is compatible with EVM and will be compatible with more mainstream VMs in the future. Thereby, all smart contracts on EVM are executable on TVM. 6.3.4 Low Cost

Due to TVM’s bandwidth setup, development costs are reduced and developers can focus on the logic development of their contract code. TVM also offers all-in-one interfaces for contract deployment, triggering and viewing to offer the convenience for developers.

TRON Machine virtuelle

6.1 Présentation

TRON Virtual Machine (TVM) est une machine virtuelle légère et complète de Turing développée pour le L'écosystème de TRON. Son objectif est de fournir un système blockchain sur mesure qui soit efficace, pratique, stable, sécurisé et évolutif.

TVM est initialement dérivé de EVM et peut se connecter de manière transparente à la solidité existante smart contract 11 écosystème de développement. Sur cette base, TVM prend également en charge le consensus DPoS.

TVM utilise le concept d'énergie. Différent du mécanisme à gaz sur EVM, les opérations de les transactions et les smart contract sur TVM sont gratuits, sans TRX consommé. Techniquement, exécutable la capacité de calcul sur TVM n'est pas limitée par le montant total de détention de tokens. 6.2 Flux de travail

Le compilateur traduit d'abord le Solidity smart contract en bytecode lisible et exécutable sur le TVM. Le TVM traite ensuite les données via l'opcode, ce qui équivaut à faire fonctionner la logique d'une machine à états finis basée sur une pile. Enfin, le TVM accède aux données blockchain et invoque Interface de données externe via la couche d'interopération. 11 EVM : Ethereum Machine virtuelle (https://github.com/ethereum/ethereumj)

TVM workflow showing compiler translating Solidity smart contracts into bytecode for execution on the TRON Virtual Machine

Figure 3 : Flux de travail TVM

6.3 Performances 6.3.1 Architecture légère

TVM adopte une architecture légère dans le but de réduire la consommation de ressources pour garantir performances du système. 6.3.2 Robuste

Les transferts TRX et l'exécution smart contract coûtent uniquement des points de bande passante, au lieu de TRX, qui exempte TRON d'être attaqué. La consommation de bande passante est prévisible et statique puisque chaque le coût de l’étape de calcul est fixe. 6.3.3 Haute compatibilité

TVM est compatible avec EVM et sera compatible avec davantage de machines virtuelles grand public à l'avenir. Ainsi, tous les smart contract sur EVM sont exécutables sur TVM. 6.3.4 Faible coût

Grâce à la configuration de la bande passante de TVM, les coûts de développement sont réduits et les développeurs peuvent se concentrer sur le développement logique de leur code de contrat. TVM propose également des interfaces tout-en-un pour les contrats déploiement, déclenchement et visualisation pour offrir la commodité aux développeurs.

Smart Contract

Smart Contract

7.1 Introduction

A smart contract is a protocol that digitally verifies contract negotiation. They define the rules and penalties related to an agreement and also automatically enforce those obligations. The smart contract code facilitates, verifies, and enforces the negotiation or performance of an agreement or transaction. From a tokenization perspective, smart contracts also facilitate automatic funds transfers between participating parties should certain criteria be met.

TRON smart contracts are written in the Solidity language. Once written and tested, they can be compiled into bytecode, then deployed onto the TRON network for the TRON Virtual Machine. Once deployed, smart contracts can be queried via their contract addresses. The contract Application Binary Interface (ABI) shows the contract’s call functions and is used for interacting with the network. 7.2 Energy Model

The maximum energy limit for deploying and triggering a smart contract is a function of several variables:

● Dynamic energy from freezing 1 TRX is 50,000,000,000 (Total Energy Limit) / (Total Energy Weight) ● Energy limit is the daily account energy limit from freezing TRX ● Remaining daily account energy from freezing TRX is calculated as Energy Limit - Energy Used ● Fee limit in TRX is set in smart contract deploy/trigger call ● Remaining usable TRX in the account ● Energy per TRX if purchased directly (10 SUN = 1 Energy) = 100,000, SRs can vote on adjustment

There are two consumption scenarios to calculate for maximum energy limit for deployment and trigger. The logic can be expressed as follows:
const​ R = Dynamic Energy Limit const​ F = Daily account energy ​from​ freezing TRX const​ E = Remaining daily account energy ​from​ freezing TRX const​ L = Fee limit ​in​ TRX set ​in​ deploy/trigger call const​ T = Remaining usable TRX ​in​ account

const​ C = Energy per TRX ​if​ purchased directly

// Calculate M, defined as maximum energy limit for deployment/trigger of smart contract if​ F > LR let​ M = min(E+TC, LR) else let​ M = E+TC 7.3 Deployment

When a TRON solidity smart contract is compiled, the TRON Virtual Machine reads the compiled bytecode. The bytecode consists of a section for code deployment, contract code, and the Auxdata. The Auxdata is the source code’s cryptographic fingerprint, used for verification. The deployment bytecode runs the constructor function and sets up the initial storage variables. The deployment code also calculates the contract code and returns it to the TVM. The ABI is a JSON file that describes a TRON smart contract’s functions. This file defines the function names, their payability, the function return values, and their state mutability. 7.4 Trigger Function

Once the TRON smart contracts are deployed, their functions can be triggered individually either via TronStudio or through API calls. State-changing functions require Energy while read-only functions execute without Energy. 7.5 TRON Solidity

TRON Solidity is a fork from Ethereum’s Solidity language. TRON modifies the original project to support TRX and SUN units (1 TRX = 1,000,000 SUN). The rest of the language syntax is compatible with Solidity ^0.4.24. Thus the Tron Virtual Machine (TVM) is almost 100% compatible with EVM instructions.

Contrat intelligent

7.1 Introduction

Un smart contract est un protocole qui vérifie numériquement la négociation d'un contrat. Ils définissent les règles et pénalités liées à un accord et faire respecter automatiquement ces obligations. L'intelligent le code du contrat facilite, vérifie et impose la négociation ou l’exécution d’un accord ou transaction. Du point de vue de la tokenisation, les smart contract facilitent également les fonds automatiques les transferts entre les parties participantes si certains critères sont remplis.

TRON smart contracts sont écrits dans le langage Solidity. Une fois rédigés et testés, ils peuvent être compilé en bytecode, puis déployé sur le réseau TRON pour la machine virtuelle TRON. Une fois déployés, les smart contract peuvent être interrogés via leurs adresses contractuelles. La demande de contrat L'interface binaire (ABI) affiche les fonctions d'appel du contrat et est utilisée pour interagir avec le réseau. 7.2 Modèle énergétique

La limite d'énergie maximale pour le déploiement et le déclenchement d'un smart contract est fonction de plusieurs variables :

● L'énergie dynamique issue du gel 1 TRX est de 50 000 000 000 (limite d'énergie totale) / (énergie totale Poids) ● La limite d'énergie est la limite d'énergie quotidienne du compte suite au gel du TRX. ● L'énergie quotidienne restante due au gel du TRX est calculée comme Limite d'énergie - Énergie Utilisé ● La limite de frais dans TRX est définie dans l'appel de déploiement/déclenchement smart contract ● TRX restant utilisable dans le compte ● Énergie par TRX si achetée directement (10 SUN = 1 Énergie) = 100 000, les SR peuvent voter réglage

Il existe deux scénarios de consommation pour calculer la limite énergétique maximale pour le déploiement et déclencheur. La logique peut s’exprimer ainsi :
const​ R = Dynamic Energy Limit const​ F = Daily account energy ​from​ freezing TRX const​ E = Remaining daily account energy ​from​ freezing TRX const​ L = Fee limit ​in​ TRX set ​in​ deploy/trigger call const​ T = Remaining usable TRX ​in​ account

const​ C = Energy per TRX ​if​ purchased directly

// Calculate M, defined as maximum energy limit for deployment/trigger of smart contract if​ F > LR let​ M = min(E+TC, LR) else let​ M = E+TC 7.3 Déploiement

Lorsqu'une solidité TRON smart contract est compilée, la machine virtuelle TRON lit le contenu compilé. bytecode. Le bytecode se compose d'une section pour le déploiement du code, le code du contrat et les Auxdata. L’Auxdata est l’empreinte cryptographique du code source, utilisée pour la vérification. Le déploiement le bytecode exécute la fonction constructeur et configure les variables de stockage initiales. Le déploiement code calcule également le code du contrat et le renvoie au TVM. L'ABI est un fichier JSON qui décrit les fonctions d'un TRON smart contract. Ce fichier définit les noms des fonctions, leur payabilité, les valeurs de retour de la fonction et leur mutabilité d'état. 7.4 Fonction de déclenchement

Une fois les TRON smart contract déployés, leurs fonctions peuvent être déclenchées individuellement soit via TronStudio ou via des appels API. Les fonctions de changement d'état nécessitent de l'énergie tandis que les fonctions en lecture seule exécuter sans énergie. 7.5 TRON Solidité

TRON Solidity est un fork du langage Solidity de Ethereum. TRON modifie le projet d'origine pour prend en charge les unités TRX et SUN (1 TRX = 1 000 000 SUN). Le reste de la syntaxe du langage est compatible avec Solidité ^0.4.24. Ainsi la Machine Virtuelle Tron (TVM) est quasiment 100% compatible avec les instructions EVM.

Token

Token

8.1 TRC-10 Token

In the TRON network, each account can issue tokens at the expense of 1024 TRX. ​To issue tokens, the issuer needs to specify a token name, the total capitalization, the exchange rate to TRX, circulation duration, description, website, maximum bandwidth consumption per account, total bandwidth consumption, and the amount of token frozen. Each token issuance can also configure each account’s maximum daily token transfer Bandwidth Points, the entire network’s maximum daily token transfer Bandwidth Points, total token supply, locking duration in days, and the total amount of tokens locked. 8.2 TRC-20 Token

TRC-20 is a technical standard used for smart contracts implementing tokens supported by the TRON Virtual Machine. It is fully compatible with ERC-20.

The interface is as follows:
contract​ TRC20Interface { ​function​ ​totalSupply​() ​public​ ​constant​ ​returns​ (uint); ​function​ ​balanceOf​(address tokenOwner) ​public​ ​constant​ ​returns​ (uint balance); ​function​ ​allowance​(address tokenOwner, address spender) ​public​ ​constant returns​ (uint remaining); ​function​ ​transfer​(address to, uint tokens) ​public​ ​returns​ (bool success); ​function​ ​approve​(address spender, uint tokens) ​public​ ​returns​ (bool success); ​function​ ​transferFrom​(address from, address to, uint tokens) ​public returns​ (bool success);

​event​ ​Transfer​(address indexed from, address indexed to, uint tokens); 
​event​ ​Approval​(address indexed tokenOwner, address indexed spender, uint

tokens); }

From a developer’s perspective, there are several differences between TRC-10 and TRC-20. Some of the key differences are that TRC-10 tokens are accessible by APIs and smart contracts while TRC-20 tokens allow for interface customization but are only accessible within smart contracts.

From a cost perspective, TRC-10 tokens have transaction fees that are 1000 times lower than TRC-20, but carry bandwidth costs for API transfers and deposits. Transfers and deposits in smart contracts for TRC-10 tokens cost both bandwidth and energy.
8.3 Beyond

Since TRON uses the same Solidity version as Ethereum, more token standards could be readily ported to TRON.

Token

8.1 Jeton TRC-10

Dans le réseau TRON, chaque compte peut émettre des token au prix de 1024 TRX. ​Pour émettre des tokens, l'émetteur doit préciser un nom token, la capitalisation totale, le taux de change par rapport au TRX, durée de diffusion, description, site Internet, consommation maximale de bande passante par compte, total la consommation de bande passante et la quantité de token gelée. Chaque édition token peut également configurer le maximum quotidien de chaque compte token transférer des points de bande passante, le maximum quotidien de l'ensemble du réseau token transférer des points de bande passante, l'offre totale de token, la durée de verrouillage en jours et le montant total de token verrouillés. 8.2 Jeton TRC-20

TRC-20 est une norme technique utilisée pour les smart contract mettant en œuvre les token pris en charge par le TRON Machine virtuelle. Il est entièrement compatible avec ERC-20.

L'interface est la suivante :
contrat​ TRC20Interface { ​fonction​ ​totalSupply​() ​public​ ​retours​ ​constants​ (uint); ​fonction​ ​balanceOf​(adresse tokenOwner) ​public​ ​rendements​ ​constants​ (uint solde); ​fonction​ ​allocation​(adresse tokenPropriétaire, adresse du dépensier) ​publique​ ​constante renvoie​ (uint restant) ; ​fonction​ ​transfer​(adresse à, uint tokens) ​public​ ​retours​ (bool success) ; ​fonction​ ​approuve​(adresse dépensier, uint tokens) ​public​ ​retourne​ (bool succès); ​fonction​ ​transferFrom​(adresse de, adresse à, uint tokens) ​public renvoie​ (succès booléen) ;

​événement​ ​Transfer​(adresse indexée de, adresse indexée vers, uint tokens) ; 
​événement​ ​Approbation​(adresse indexée tokenPropriétaire, adresse dépensière indexée, uint

tokens); }

Du point de vue du développeur, il existe plusieurs différences entre TRC-10 et TRC-20. Certains L'une des principales différences réside dans le fait que les token TRC-10 sont accessibles par les API et les smart contract tandis que Les token TRC-20 permettent la personnalisation de l'interface mais ne sont accessibles que dans les smart contract.

Du point de vue des coûts, les TRC-10 token ont des frais de transaction 1 000 fois inférieurs à ceux des TRC-20, mais entraîne des coûts de bande passante pour les transferts et les dépôts d'API. Virements et dépôts en smart les contrats pour les TRC-10 token coûtent à la fois de la bande passante et de l'énergie.
8.3 Au-delà

Étant donné que TRON utilise la même version Solidity que Ethereum, davantage de normes token pourraient être facilement porté sur TRON.

Governance

Governance

9.1 Super Representative 9.1.1 General

Every account in the TRON network can apply and have the opportunity to become a Super Representative (denoted as SR). Everyone can vote for SR candidates. The top 27 candidates with the most votes will become SRs with the right and obligation to generate blocks. The votes are counted every 6 hours and the SRs will change accordingly.

To prevent malicious attacks, there is a cost to becoming an SR candidate. When applying, 9999 TRX will be burned from the applicant’s account. Once successful, such account can join the SR election. 9.1.2 Election

TRON Power (denoted as TP) is needed to vote and the amount of TP depends on the voter’s frozen assets (TRX).

TP is calculated in the following way:
TP 1 TRX frozen to get bandwidth 1 =

Every account in the TRON network has the right to vote for their own SRs.

After the release (unfreeze, available after 3 days), users won't have any frozen assets and lose all TP accordingly. As a result, all votes become invalid for the ongoing and future voting round unless TRX is frozen again to vote.

Note that the TRON network only records the most recent vote, which means that every new vote will negate all previous votes. 9.1.3 Reward a. Vote Reward

Also known as Candidate Reward, which the top 127 candidates updated once every round (6 hours) will share 115,200 TRX as mined. The reward will be split in accordance with the vote weight each candidate receives. Each year, the total reward for candidates will be 168,192,000 TRX. Total vote reward per round Why 115,200 TRX every round? 15, 00 TRX total vote reward per round (V R/round) 1 2 =
V R/round = 16 T RX/block × 20 blocks/min × 60 mins/hr × 6 hrs/round Notice: this is set by WITNESS_STANDBY_ALLOWANCE = 115,200 TRX. See dynamic network parameters. Total vote reward per year Why 168,192,000 TRX every year? 168, 192, 000 T RX = total vote reward per year (V R/year) V R/year = 115, 200 T RX/round × 4 rounds/day × 365 days/year b. Block Reward Also known as Super Representative Reward, which the top 27 candidates (SRs) who are elected every round (6 hours) will share roughly 230,400 TRX as mined. The reward will be split evenly between the 27 SRs (minus the total reward blocks missed due to network error). A total of 336,384,000 TRX will be awarded annually to the 27 SRs. Total block reward per round Why 230,400 TRX every round? 230, 400 T RX = total block reward per round (BR/round) BR/round = 32 T RX/bloc × 20 blocks/min × 60 mins/hr × 6 hrs/round Notice: the unit block reward is set by WITNESS_PAY_PER_BLOCK = 32 TRX. See dynamic network parameters. Total block reward per year Why 336,384,000 TRX every year? 336, 384, 000 T RX = total block reward per year (BR/year) BR/year = 230, 400 T RX/round × 4 rounds/day × 365 days/year January 1, 2021 There will be no inflation on the TRON network before January 1, 2021, and the TRON DAO will award all block rewards and candidate rewards prior to that date. c. Reward Calculation

SR reward calculation otal reward vote reward (V R) block reward (BR) t =
+

R total V R V =
×
total votes votes SR candidate received
R

block missed 2 B =
27 total BR − × 3
Note: the reward is calculated per SR per round (6 hours)

Rank 28 to rank 127 SR candidate reward calculation otal reward vote reward (V R) t =

R total V R V =
×
total votes votes SR candidate received
Note: the reward is calculated per SR candidate per round (6 hours) 9.2 Committee 9.2.1 General

The committee is used to modify TRON dynamic network parameters, such as block generation rewards, transaction fees, etc. The committee consists of the 27 SRs in the current round. Each SR has the right to propose and vote on proposals. When a proposal receives 19 votes or more, it is approved and the new network parameters will be applied in the next maintenance period (3 days). 9.2.2 Dynamic Network Parameters 0. MAINTENANCE_TIME_INTERVAL a. Description
Modify the maintenance interval time in ms. Known as the SR vote interval time per round.
b. Example [6 * 3600 * 1000] ms - which is 6 hours. c. Range [3 * 27* 1000, 24 * 3600 * 1000] ms 1. ACCOUNT_UPGRADE_COST a. Description Modify the cost of applying for SR account. b. Example [9,999,000,000] SUN - which is 9,999 TRX. c. Range [0,100 000 000 000 000 000] SUN 2. CREATE_ACCOUNT_FEE a. Description Modify the account creation fee.

b. Example [100,000] SUN - which is 1 TRX. c. Range [0,100 000 000 000 000 000] SUN 3. TRANSACTION_FEE a. Description Modify the amount of fee used to gain extra bandwidth. b. Example [10] SUN/byte. c. Range [0,100 000 000 000 000 000] SUN/byte 4. ASSET_ISSUE_FEE a. Description Modify asset issuance fee. b. Example [1024,000,000] SUN - which is 1024 TRX. c. Range [0,100 000 000 000 000 000] SUN 5. WITNESS_PAY_PER_BLOCK a. Description Modify SR block generation reward. Known as unit block reward. b. Example [32,000,000] SUN - which is 32 TRX. c. Range [0,100 000 000 000 000 000] SUN 6. WITNESS_STANDBY_ALLOWANCE a. Description Modify the rewards given to the top 127 SR candidates. Known as total vote reward per round. b. Example [115,200,000,000] SUN - which is 115,200 TRX. c. Range [0,100 000 000 000 000 000] SUN 7. CREATE_NEW_ACCOUNT_FEE_IN_SYSTEM_CONTRACT a. Description Modify the cost of account creation. Combine dynamic network parameters #8 to get total account creation cost:
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT REATE_NEW_ACCOUNT_BANDWIDTH_RATE
C × C

b. Example [0] SUN. c. Range [0,100 000 000 000 000 000] SUN 8. CREATE_NEW_ACCOUNT_BANDWIDTH_RATE

a. Description Modify the cost of account creation. Combine dynamic network parameters #7 to get total account creation cost:
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT REATE_NEW_ACCOUNT_BANDWIDTH_RATE
C × C

b. Example [1]. c. Range [0,100,000,000,000,000,000] 9. ALLOW_CREATION_OF_CONTRACTS a. Description To turn on Tron Virtual Machine (TVM). b. Example True - set to activate and effect since 10/10/2018 23:47 UTC. c. Range True/False 10. REMOVE_THE_POWER_OF_THE_GR a. Description Remove the initial GR genesis votes b. Example True - effected at 11/4/2018 08:46 UTC. c. Range True/False - Notice: cannot set back to False from True. 11. ENERGY_FEE a. Description Modify the fee of 1 energy. b. Example 20 SUN. c. Range [0,100 000 000 000 000 000] SUN 12. EXCHANGE_CREATE_FEE a. Description Modify the cost of trading pair creation. Known as the cost of creating a trade order. b. Example [1,024,000,000] SUN - which is 1024 TRX. c. Range [0,100 000 000 000 000 000] SUN 13. MAX_CPU_TIME_OF_ONE_TX a. Description Modify the maximum execution time of one transaction. Known as the timeout limit of one transaction. b. Example 50 ms. c. Range

[0, 1000] ms 14. ALLOW_UPDATE_ACCOUNT_NAME a. Description Modify the option to let an account update their account name.
b. Example False - which is available to propose from java-tron Odyssey v3.2. c. Range True/False - Notice: cannot set back to False from True. 15. ALLOW_SAME_TOKEN_NAME a. Description Modify the validation of allowing different token have a duplicate name.
b. Example False - which is available to propose from java-tron Odyssey v3.2. c. Range True/False - Notice: cannot set back to False from True. 16. ALLOW_DELEGATE_RESOURCE a. Description Modify the validation of allowing to issue token with a duplicate name, so the tokenID​ of the token, in long integer data type, would be the only atomic identification of a token.
b. Example False - which is available to propose from java-tron Odyssey v3.2. c. Range True/False - Notice: cannot set back to False from True. 17. TOTAL_ENERGY_LIMIT a. Description Modify the whole network total energy limit. b. Example [50,000,000,000,000,000] SUN - which is 50,000,000,000 TRX. c. Range [0,100,000,000,000,000,000] SUN 18. ALLOW_TVM_TRANSFER_TRC10 a. Description Allow TRC-10 token transfer within smart contracts. ALLOW_UPDATE_ACCOUNT_NAME, ALLOW_SAME_TOKEN_NAME, ALLOW_DELEGATE_RESOURCE proposals must all be approved before proposing this parameter change.
b. Example False - which is available to propose from java-tron Odyssey v3.2. c. Range True/False - Notice: cannot set back to False from True.

9.2.3 Create Proposal

Only the SR accounts have the rights to propose a change in dynamic network parameters. 9.2.4 Vote Proposal

Only committee members (SRs) can vote for a proposal and the member who does not vote in time will be considered as a disagree. The proposal is active for 3 days after it is created. The vote can be changed or retrieved during the 3-days voting window. Once the period ends, the proposal will either succeed (19+ votes) or fail (and end). 9.2.5 Cancel Proposal

The proposer can cancel the proposal before it becomes effective. 9.3 Structure

SRs are the witnesses of newly generated blocks. A witness contains 8 parameters:
1. address​: the address of this witness – e.g. 0xu82h…7237.
2. voteCount​: number of received votes on this witness – e.g. 234234.
3. pubKey​: the public key for this witness – e.g. 0xu82h…7237.
4. url​: the url for this witness – e.g. https://www.noonetrust.com.
5. totalProduced​: the number of blocks this witness produced – e.g. 2434.
6. totalMissed​: the number of blocks this witness missed – e.g. 7.
7. latestBlockNum​: the latest height of block – e.g. 4522. 8. isjobs​: a boolean flag.

Protobuf data structure: message​ ​Witness​{
​bytes​ address = ​1​;
​int64​ voteCount = ​2​;
​bytes​ pubKey = ​3​;
​string​ url = ​4​;
​int64​ totalProduced = ​5​;
​int64​ totalMissed = ​6​;
​int64​ latestBlockNum = ​7​; ​bool​ isJobs = ​8​; }

  1. DApp Development 10.1 APIs

The TRON network offers a wide selection of over 60+ HTTP API gateways for interacting with the network via Full and Solidity Nodes. Additionally, TronWeb is a comprehensive JavaScript library containing API functions that enable developers to deploy smart contracts, change the blockchain state, query blockchain and contract information, trade on the DEX, and much more. These API gateways can be directed towards a local privatenet, the Shasta testnet, or the TRON Mainnet.

10.2 Networks

TRON has both a Shasta testnet as well as a Mainnet. Developers may connect to the networks by deploying nodes, interacting via TronStudio, or using APIs via the TronGrid service. The TronGrid service consists of load balanced node clusters hosted on AWS servers worldwide. As DApp development scales up and API call volumes increase, TronGrid successfully fields the increase in API traffic.
10.3 Tools

TRON offers a suite of development tools for enabling developers to create innovative DApps.
TronBox is a framework that allows developers to test and deploy smart contracts via the TronWeb API. TronGrid is a load balanced and hosted API service that allows developers to access the TRON network without having to run their own node. TronGrid offers access to both the Shasta testnet as well as the TRON Mainnet. TronStudio is a comprehensive Integrated Development Environment (IDE) that enables developers to compile, deploy, and debug their Solidity smart contracts. TronStudio contains an internal full node that creates a private local environment for smart contract testing prior to deployment. The TronWeb API library connects developers to the network via a wide selection of HTTP API calls wrapped in JavaScript.
10.4 Resources

The TRON Developer Hub is a comprehensive API documentation site tailored towards 12 developers wishing to build on the TRON network. The Developer Hub provides a high-level conceptual understanding of TRON and walks users through the details of interacting with the 12 Developer Hub: https://developers.tron.network/

network. The guides walk developers through node setup, deployment and interaction with smart contracts, API interaction and implementation, building sample DApps, and using each of the developer tools. Additionally, developer community channels are available through Discord .
13

13 Discord: https://discordapp.com/invite/GsRgsTD

  1. Conclusion

TRON is a scalable blockchain solution that has employed innovative methods for tackling challenges faced by legacy blockchain networks. Having reached over 2M transactions per day, with over 700K TRX accounts, and surpassing 2000 TPS, TRON has enabled the community in creating a decentralized and democratized network.

Gouvernance

9.1 Super Représentant 9.1.1 Général

Chaque compte du réseau TRON peut postuler et avoir l'opportunité de devenir un Super Représentant (noté SR). Tout le monde peut voter pour les candidats SR. Les 27 meilleurs candidats avec le plus grand nombre de votes deviendront des SR avec le droit et l'obligation de générer des blocs. Les votes sont compté toutes les 6 heures et les SR changeront en conséquence.

Pour prévenir les attaques malveillantes, devenir candidat SR a un coût. Lors de votre candidature, 9999 TRX sera brûlé depuis le compte du demandeur. Une fois réussi, ce compte peut rejoindre le SR élection. 9.1.2 Élection

TRON La puissance (notée TP) est nécessaire pour voter et le montant de TP dépend de la puissance de l'électeur. avoirs gelés (TRX).

TP est calculé de la manière suivante :
TP 1 TRX gelé pour obtenir de la bande passante 1 =

Chaque compte du réseau TRON a le droit de voter pour ses propres SR.

Après la sortie (dégel, disponible après 3 jours), les utilisateurs n'auront plus aucun actif gelé et perdront tout TP en conséquence. En conséquence, tous les votes deviennent invalides pour le tour de scrutin en cours et à venir, à moins que TRX est à nouveau gelé pour voter.

Notez que le réseau TRON n'enregistre que le vote le plus récent, ce qui signifie que chaque nouveau vote annulera tous les votes précédents. 9.1.3 Récompense une. Récompense de vote

Également connu sous le nom de Récompense du candidat, que les 127 meilleurs candidats ont mis à jour une fois à chaque tour (6 heures) partagera 115 200 TRX tels qu’ils sont extraits. La récompense sera répartie en fonction du poids du vote chaque candidat reçoit. Chaque année, la récompense totale des candidats s'élèvera à 168 192 000 TRX. Récompense totale des votes par tour Pourquoi 115 200 TRX à chaque tour ? 15h00 TRX récompense totale des votes par tour (V R/tour) 1 2 =
V R/tour = 16 T RX/bloc × 20 blocs/min × 60 min/h × 6 heures/tour Remarque : ceci est défini par WITNESS_STANDBY_ALLOWANCE = 115 200 TRX. Voir les paramètres de réseau dynamiques. Récompense totale des votes par an Pourquoi 168 192 000 TRX chaque année ? 168 192 000 T RX = récompense totale des votes par an (V R/an) V R/an = 115, 200 T RX/tour × 4 tours/jour × 365 jours/an b. Bloquer la récompense Également connue sous le nom de Super Representative Reward, qui récompense les 27 meilleurs candidats (SR) élus chaque tour (6 heures) partagera environ 230 400 TRX extraits. La récompense sera répartie équitablement entre les 27 SR (moins le total des blocs de récompense manqués en raison d'une erreur réseau). Un total de 336 384 000 TRX seront attribués chaque année aux 27 SR. Récompense totale de bloc par tour Pourquoi 230 400 TRX à chaque tour ? 230 400 T RX = récompense de bloc totale par tour (BR/tour) BR/tour = 32 T RX/bloc × 20 blocs/min × 60 min/h × 6 h/tour Remarque : la récompense du bloc unitaire est définie par WITNESS_PAY_PER_BLOCK = 32 TRX. Voir le réseau dynamique paramètres. Récompense de bloc totale par an Pourquoi 336 384 000 TRX chaque année ? 336 384 000 T RX = récompense de bloc totale par an (BR/an) BR/an = 230, 400 T RX/tour × 4 tours/jour × 365 jours/an 1 janvier 2021 Il n'y aura pas d'inflation sur le réseau TRON avant le 1er janvier 2021, et le TRON DAO sera attribuer toutes les récompenses de bloc et les récompenses de candidat avant cette date. c. Calcul des récompenses

Calcul de la récompense SR récompense totale récompense de vote (V R) récompense de bloc (BR) t =
+

R. V R totale V =
×
total des voix votes reçus par le candidat SR
R.

bloc manqué 2 B =
27 BR total − × 3
Remarque : la récompense est calculée par SR et par tour (6 heures)

Calcul de la récompense du candidat SR du rang 28 au rang 127 récompense totale récompense de vote (V R) t =

R. V R totale V =
×
total des voix votes reçus par le candidat SR
Remarque : la récompense est calculée par candidat SR et par tour (6 heures) 9.2 Comité 9.2.1 Général

Le comité est utilisé pour modifier les paramètres dynamiques du réseau TRON, tels que la génération de blocs récompenses, frais de transaction, etc. Le comité est composé des 27 SR du tour en cours. Chaque SR a le droit de proposer et de voter sur les propositions. Lorsqu'une proposition reçoit 19 voix ou plus, elle est approuvé et les nouveaux paramètres réseau seront appliqués au cours de la prochaine période de maintenance (3 jours). 9.2.2 Paramètres de réseau dynamiques 0. MAINTENANCE_TIME_INTERVAL une. Descriptif
Modifier le temps d'intervalle de maintenance en ms. Connu sous le nom de temps d'intervalle de vote SR par rond.
b. Exemple [6 * 3600 * 1000] ms - soit 6 heures. c. Gamme [3271000, 2436001000] ms 1. ACCOUNT_UPGRADE_COST une. Descriptif Modifier le coût de demande de compte SR. b. Exemple [9 999 000 000] SOLEIL - soit 9 999 TRX. c. Gamme [0,100 000 000 000 000 000] DIM 2. CREATE_ACCOUNT_FEE une. Descriptif Modifier les frais de création de compte.b. Exemple [100 000] SOLEIL - soit 1 TRX. c. Gamme [0,100 000 000 000 000 000] DIM 3. TRANSACTION_FEE une. Descriptif Modifiez le montant des frais utilisés pour obtenir une bande passante supplémentaire. b. Exemple [10] SUN/octet. c. Gamme [0,100 000 000 000 000 000] SUN/octet 4. ASSET_ISSUE_FEE une. Descriptif Modifier les frais d'émission d'actifs. b. Exemple [1024 000 000] SOLEIL - soit 1024 TRX. c. Gamme [0,100 000 000 000 000 000] DIM 5. WITNESS_PAY_PER_BLOCK une. Descriptif Modifier la récompense de génération de bloc SR. Connu sous le nom de récompense de bloc unitaire. b. Exemple [32 000 000] SOLEIL - soit 32 TRX. c. Gamme [0,100 000 000 000 000 000] DIM 6. WITNESS_STANDBY_ALLOWANCE une. Descriptif Modifier les récompenses accordées aux 127 meilleurs candidats SR. Connu sous le nom de récompense totale du vote par tour. b. Exemple [115 200 000 000] SOLEIL - soit 115 200 TRX. c. Gamme [0,100 000 000 000 000 000] DIM 7. CREATE_NEW_ACCOUNT_FEE_IN_SYSTEM_CONTRACT une. Descriptif Modifier le coût de création de compte. Combinez les paramètres de réseau dynamiques #8 pour obtenir coût total de création de compte :
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT REATE_NEW_ACCOUNT_BANDWIDTH_RATE
C ×C

b. Exemple [0] DIM. c. Gamme [0,100 000 000 000 000 000] DIM 8. CREATE_NEW_ACCOUNT_BANDWIDTH_RATE

une. Descriptif Modifier le coût de création de compte. Combinez les paramètres de réseau dynamiques n°7 pour obtenir coût total de création de compte :
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT REATE_NEW_ACCOUNT_BANDWIDTH_RATE
C ×C

b. Exemple [1]. c. Gamme [0,100,000,000,000,000,000] 9. ALLOW_CREATION_OF_CONTRACTS une. Descriptif Pour activer la machine virtuelle Tron (TVM). b. Exemple True - défini pour être activé et pris en compte depuis le 10/10/2018 à 23h47 UTC. c. Gamme Vrai/Faux 10. REMOVE_THE_POWER_OF_THE_GR une. Descriptif Supprimer les votes initiaux de la genèse GR b. Exemple Vrai - effectué le 11/4/2018 08:46 UTC. c. Gamme Vrai/Faux - Remarque : impossible de revenir à Faux à partir de Vrai. 11. ÉNERGIE_FEE une. Descriptif Modifier les frais de 1 énergie. b. Exemple 20 DIM. c. Gamme [0,100 000 000 000 000 000] DIM 12. EXCHANGE_CREATE_FEE une. Descriptif Modifier le coût de création d'une paire de trading. Connu comme le coût de création d’un ordre commercial. b. Exemple [1 024 000 000] SOLEIL - soit 1 024 TRX. c. Gamme [0,100 000 000 000 000 000] DIM 13. MAX_CPU_TIME_OF_ONE_TX une. Descriptif Modifier le temps d'exécution maximum d'une transaction. Connu sous le nom de délai d'attente de une transaction. b. Exemple 50 ms. c. Gamme

[0, 1000] ms 14. ALLOW_UPDATE_ACCOUNT_NAME une. Descriptif Modifiez l'option pour permettre à un compte de mettre à jour son nom de compte.
b. Exemple False - qui peut être proposé à partir de Java-tron Odyssey v3.2. c. Gamme Vrai/Faux - Remarque : impossible de revenir à Faux à partir de Vrai. 15. ALLOW_SAME_TOKEN_NAME une. Descriptif Modifiez la validation en autorisant différents token à avoir un nom en double.
b. Exemple False - qui peut être proposé à partir de Java-tron Odyssey v3.2. c. Gamme Vrai/Faux - Remarque : impossible de revenir à Faux à partir de Vrai. 16. ALLOW_DELEGATE_RESOURCE une. Descriptif Modifier la validation de l'autorisation d'émettre token avec un nom en double, afin que le tokenID​ du token, en type de données entier long, serait le seul atome identification d’un token.
b. Exemple False - qui peut être proposé à partir de Java-tron Odyssey v3.2. c. Gamme Vrai/Faux - Remarque : impossible de revenir à Faux à partir de Vrai. 17. TOTAL_ENERGY_LIMIT une. Descriptif Modifier la limite énergétique totale de l'ensemble du réseau. b. Exemple [50 000 000 000 000 000] SOLEIL - soit 50 000 000 000 TRX. c. Gamme [0,100,000,000,000,000,000] SOLEIL 18. ALLOW_TVM_TRANSFER_TRC10 une. Descriptif Autoriser le transfert TRC-10 token dans les smart contracts. ALLOW_UPDATE_ACCOUNT_NAME, ALLOW_SAME_TOKEN_NAME, Les propositions ALLOW_DELEGATE_RESOURCE doivent toutes être approuvées avant d'être proposées. ce changement de paramètre.
b. Exemple False - qui peut être proposé à partir de Java-tron Odyssey v3.2. c. Gamme Vrai/Faux - Remarque : impossible de revenir à Faux à partir de Vrai.9.2.3 Créer une proposition

Seuls les comptes SR ont le droit de proposer une modification des paramètres dynamiques du réseau. 9.2.4 Proposition de vote

Seuls les membres du comité (SR) peuvent voter pour une proposition et le membre qui ne vote pas à temps sera considéré comme un désaccord. La proposition est active pendant 3 jours après sa création. Le vote peut être modifié ou récupéré pendant la fenêtre de vote de 3 jours. Une fois la période terminée, la proposition sera soit réussir (19+ votes), soit échouer (et terminer). 9.2.5 Annuler la proposition

Le proposant peut annuler la proposition avant qu'elle ne devienne effective. 9.3 Structure

Les SR sont les témoins des blocs nouvellement générés. Un témoin contient 8 paramètres :
1. adresse​ : l'adresse de ce témoin – par ex. 0xu82h…7237.
2. voteCount​ : nombre de votes reçus sur ce témoin – par ex. 234234.
3. pubKey​ : la clé publique de ce témoin – par ex. 0xu82h…7237.
4. url​ : l'url de ce témoin – par ex. https://www.noonetrust.com.
5. totalProduced​ : le nombre de blocs produits par ce témoin – par ex. 2434.
6. totalMissed​ : le nombre de blocs manqués par ce témoin – par ex. 7.
7. lastBlockNum​ : la dernière hauteur du bloc – par ex. 4522. 8. isjobs​ : un indicateur booléen.

Structure des données Protobuf : message​ ​Témoin​{
adresse ​octets​ = ​1​ ;
​int64​ voteCount = ​2​;
​octets​ pubKey = ​3​;
URL de chaîne = ​4​;
​int64​ totalProduced = ​5​;
​int64​ totalManqué = ​6​;
​int64​ lastBlockNum = ​7​; ​bool​ isJobs = ​8​; }

  1. Développement DApp 10.1 API

Le réseau TRON offre une large sélection de plus de 60 passerelles API HTTP pour interagir avec le réseau via des nœuds complets et solides. De plus, TronWeb est une bibliothèque JavaScript complète contenant des fonctions API qui permettent aux développeurs de déployer des smart contract, modifiez le blockchain état, interrogez blockchain et informations sur le contrat, négociez sur le DEX et bien plus encore. Ces API les passerelles peuvent être dirigées vers un réseau privé local, le réseau de test Shasta ou le réseau principal TRON.

10.2 Réseaux

TRON possède à la fois un réseau de test Shasta et un réseau principal. Les développeurs peuvent se connecter aux réseaux en déployer des nœuds, interagir via TronStudio ou utiliser des API via le service TronGrid. La grille Tron Le service se compose de clusters de nœuds à charge équilibrée hébergés sur des serveurs AWS dans le monde entier. En tant que DApp le développement s'intensifie et les volumes d'appels API augmentent, TronGrid répond avec succès à l'augmentation du Trafic API.
10.3 Outils

TRON propose une suite d'outils de développement permettant aux développeurs de créer des DApp innovantes.
TronBox est un framework qui permet aux développeurs de tester et de déployer des smart contract via TronWeb API. TronGrid est un service API hébergé et à charge équilibrée qui permet aux développeurs d'accéder au TRON réseau sans avoir à exécuter leur propre nœud. TronGrid offre un accès à la fois au Shasta testnet ainsi que le réseau principal TRON. TronStudio est un développement intégré complet Environnement (IDE) qui permet aux développeurs de compiler, déployer et déboguer leur solution intelligente Solidity contrats. TronStudio contient un nœud complet interne qui crée un environnement local privé pour smart contract tests avant le déploiement. La bibliothèque API TronWeb connecte les développeurs au réseau via une large sélection d'appels d'API HTTP enveloppés dans JavaScript.
10.4 Ressources

Le TRON Developer Hub est un site de documentation API complet conçu pour 12 développeurs souhaitant s’appuyer sur le réseau TRON. Le Developer Hub fournit un haut niveau compréhension conceptuelle de TRON et guide les utilisateurs à travers les détails de l'interaction avec le 12 Hub des développeurs : https://developers.tron.network/

réseau. Les guides guident les développeurs dans la configuration, le déploiement et l'interaction des nœuds avec Smart. contrats, interaction et mise en œuvre de l'API, création d'exemples de DApp et utilisation de chacun des outils de développement. De plus, les chaînes de la communauté des développeurs sont disponibles via Discord.
13

13 Discorde : https://discordapp.com/invite/GsRgsTD

  1. Conclusion

TRON est une solution blockchain évolutive qui a utilisé des méthodes innovantes pour lutter contre défis rencontrés par les anciens réseaux blockchain. Ayant atteint plus de 2 millions de transactions par jour, avec plus de 700 000 comptes TRX et dépassant les 2 000 TPS, TRON a permis à la communauté de créer un réseau décentralisé et démocratisé.