Informe técnico de TRON

Par Justin Sun · 2017

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

Introducción

1.1 Visión

TRON es un ambicioso proyecto dedicado al establecimiento de una Internet verdaderamente descentralizada y su infraestructura. El protocolo TRON, uno de los sistemas operativos basados en blockchain más grandes del mundo. mundo, ofrece soporte público blockchain de alto rendimiento, alta escalabilidad y alta disponibilidad para todas las aplicaciones descentralizadas (DApps) en el ecosistema TRON. La adquisición en julio de 2018 de BitTorrent consolidó aún más el liderazgo de TRON en la búsqueda de un ecosistema descentralizado.
1.2 Antecedentes

La introducción de Bitcoin en 2009 revolucionó la percepción que tenía la sociedad sobre el sistema financiero tradicional. tras la Gran Recesión (2007-2008). Como fondos de cobertura y bancos centralizados colapsado por la especulación en derivados financieros opacos, la tecnología blockchain proporcionó una libro de contabilidad universal transparente del que cualquiera podría obtener información sobre transacciones. el las transacciones se aseguraron criptográficamente mediante un mecanismo de consenso de prueba de trabajo (PoW), evitando así problemas de doble gasto.

A finales de 2013, el documento técnico Ethereum propuso una red en la que smart contracts y un La máquina virtual Ethereum completa de Turing (EVM) permitiría a los desarrolladores interactuar con la red a través de DApps. Sin embargo, como los volúmenes de transacciones en Bitcoin y Ethereum alcanzaron su punto máximo en 2017, Era evidente por los bajos tiempos de procesamiento de las transacciones y las altas tarifas de transacción que Las criptomonedas como Bitcoin y Ethereum en su estado actual no eran escalables para uso generalizado. adopción. Por lo tanto, TRON fue fundada y concebida como una solución innovadora para estos apremiantes desafíos de escalabilidad.

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

1.3 Historia El TRON DAO se estableció en julio de 2017 en Singapur. En diciembre de 2017, TRON tuvo lanzó su protocolo de código abierto. Testnet, Blockchain Explorer y Web Wallet fueron todos lanzado en marzo de 2018. TRON Mainnet se lanzó poco después, en mayo de 2018, marcando el Lanzamiento de Odyssey 2.0 como un hito técnico. En junio de 2018, TRON declaró su independencia con la creación del bloque Génesis, junto con la adquisición de BitTorrent en julio de 2018. en En octubre de 2018, TRON lanzó la TRON Virtual Machine (TVM), un completo conjunto de herramientas para desarrolladores. y sistema de soporte 360. La hoja de ruta TRON implica combinar los 100 millones de usuarios de BitTorrent con la red TRON a través del Proyecto Atlas, además de fomentar que la comunidad de desarrolladores lance Nuevas y emocionantes DApps en la red TRON1. 1 V1.0 está disponible en https://tron.network/static/doc/white_paper_v_1_0.pdf

1.4 Terminología

Dirección/Monedero Una dirección o billetera que consta de credenciales de cuenta en la red TRON es generada por un par de claves, que consta de una clave privada y una clave pública, esta última derivada de la primera a través de un algoritmo. La clave pública se utiliza generalmente para el cifrado de la clave de sesión, la firma verificación y cifrado de datos que podrían descifrarse mediante la clave privada correspondiente.

ABI Una interfaz binaria de aplicación (ABI) es una interfaz entre dos módulos de programa binario; normalmente uno de estos módulos es una biblioteca o una instalación del sistema operativo, y el otro es una ejecución del usuario programa.

API Una interfaz de programación de aplicaciones (API) se utiliza principalmente para el desarrollo de clientes de usuarios. Con API soporte, token las plataformas de emisión también pueden ser diseñadas por los propios desarrolladores.

Activo En los documentos de TRON, el activo es el mismo que token, que también se indica como TRC-10 token.

Puntos de ancho de banda (BP) Para mantener la red funcionando sin problemas, las TRON transacciones de la red utilizan BP como combustible. cada cuenta obtiene 5000 BP diarios gratis y se puede obtener más congelando TRX para BP. Tanto TRX como TRC-10 Las transferencias token son transacciones normales que le cuestan a BP. Implementación y ejecución de contratos inteligentes Las transacciones consumen tanto BP como energía.

Bloquear Los bloques contienen los registros digitales de las transacciones. Un bloque completo consta del número mágico, tamaño de bloque, encabezado de bloque, contador de transacciones y datos de transacción.

Recompensa de bloque Las recompensas por producción de bloques se envían a una subcuenta (dirección/billetera). Los súper representantes pueden reclame sus recompensas en Tronscan o directamente a través de la API.

Encabezado de bloque Un encabezado de bloque es parte de un bloque. Los encabezados de bloque TRON contienen el hash del bloque anterior, el Raíz de Merkle, marca de tiempo, versión y dirección del testigo.Cartera fría La billetera fría, también conocida como billetera fuera de línea, mantiene la clave privada completamente desconectada de cualquier red. Las billeteras frías generalmente se instalan en dispositivos "fríos" (por ejemplo, computadoras o teléfonos móviles). permanecer fuera de línea) para garantizar la seguridad de la clave privada TRX.

DApp La aplicación descentralizada es una aplicación que funciona sin una parte de confianza central. una aplicacion que permite la interacción/acuerdos/comunicación directa entre usuarios finales y/o recursos sin intermediario.

gRPC gRPC (gRPC Remote Procedimiento Calls) es un sistema de llamada a procedimiento remoto (RPC) de código abierto 2 desarrollado inicialmente en Google. Utiliza HTTP/2 para el transporte, Protocol Buffers como interfaz lenguaje de descripción y proporciona funciones como autenticación, transmisión bidireccional y flujo control, vinculaciones bloqueantes o no bloqueantes, y cancelación y tiempos de espera. genera Enlaces de cliente y servidor multiplataforma para muchos idiomas. Escenarios de uso más comunes incluir servicios de conexión en arquitectura de estilo microservicios y conexión de dispositivos móviles, y clientes del navegador a servicios backend.

Cartera caliente La billetera activa, también conocida como billetera en línea, permite que la clave privada del usuario se use en línea, por lo que podría ser susceptible a posibles vulnerabilidades o interceptación por parte de actores maliciosos.

JDK Java Development Kit es el SDK de Java utilizado para aplicaciones Java. Es el núcleo de Java. desarrollo, que comprende el entorno de aplicaciones Java (biblioteca de clases JVM+Java) y Java herramientas.

CaosDB TRON tiene un KhaosDB en la memoria del nodo completo que puede almacenar todas las cadenas recién bifurcadas generadas dentro de un cierto período de tiempo y ayuda a los testigos a cambiar rápidamente de su propia cadena activa en una nueva cadena principal. Consulte 2.2.2 Almacenamiento estatal para obtener más detalles.

NivelDB LevelDB se adoptó inicialmente con el objetivo principal de cumplir con los requisitos de R/W rápido y rápido desarrollo. Después de lanzar Mainnet, TRON actualizó su base de datos a una totalmente personalizada uno atendía sus propias necesidades. Consulte 2.2.1 Almacenamiento Blockchain para obtener más detalles.

Raíz de Merkle Una raíz de Merkle es el hash de todos los hashes de todas las transacciones incluidas como parte de un bloque en un blockchain red. Consulte 3.1 Prueba de participación delegada (DPoS) para obtener más detalles. 2 https://en.wikipedia.org/wiki/GRPC

TRON development roadmap phase 2 timeline from July 2018 to 2019

Red de prueba pública (Shasta) Una versión de la red que se ejecuta en una configuración de un solo nodo. Los desarrolladores pueden conectarse y probar características sin preocuparse por la pérdida económica. Testnet tokens no tienen valor y cualquiera puede Solicite más al grifo público.

RPC
3 En la informática distribuida, una llamada a procedimiento remoto (RPC) es cuando un programa de computadora provoca una procedimiento (subrutina) para ejecutar en un espacio de direcciones diferente (comúnmente en otra computadora en una red compartida), que se codifica como si fuera una llamada a procedimiento normal (local), sin la programador que codifica explícitamente los detalles para la interacción remota.

Escalabilidad La escalabilidad es una característica del protocolo TRON. Es la capacidad de un sistema, red o proceso para manejar una cantidad creciente de trabajo o su potencial de ampliarse para dar cabida a ese crecimiento.

SOL SUN reemplazó a la gota como la unidad más pequeña de TRX. 1 TRX = 1.000.000 DOM.

Rendimiento El alto rendimiento es una característica de TRON Mainnet. Se mide en Transacciones Por Segundo (TPS), es decir, la capacidad máxima de transacción en un segundo.

Marca de tiempo El tiempo aproximado de producción del bloque se registra como marca de tiempo Unix, que es el número de milisegundos que han transcurrido desde las 00:00:00 01 de enero de 1970 UTC.

TKC Configuración de tokens.

CVR-10 Un estándar de criptografía token en la plataforma TRON. Es necesario seguir ciertas reglas e interfaces. al realizar una oferta inicial de monedas el TRON blockchain.

TRX TRX significa Tronix, que es la criptomoneda oficial de TRON.

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

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/

Arquitectura

TRON adopta una arquitectura de 3 capas dividida en capa de almacenamiento, capa central y capa de aplicación. El protocolo TRON se adhiere a Google Protobuf, que intrínsecamente admite varios idiomas. extensión.

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

Figura 1: TRON Arquitectura de 3 capas

2.1 Núcleo

Hay varios módulos en la capa central, incluidos smart contracts, administración de cuentas y consenso. Se implementa una máquina virtual basada en pila en TRON y una instrucción optimizada Se utiliza el conjunto. Para brindar un mejor soporte a los desarrolladores de DApp, se eligió Solidity como smart contract 4 idioma, seguido por el soporte futuro de otros idiomas avanzados. Además, el consenso de TRON El mecanismo se basa en la prueba de participación delegada (DPoS) y se realizaron muchas innovaciones en para cumplir con sus requisitos únicos. 2.2 Almacenamiento

TRON diseñó un protocolo de almacenamiento distribuido único que consta de almacenamiento en bloque y estado Almacenamiento. La noción de una base de datos gráfica se introdujo en el diseño de la capa de almacenamiento para satisfacer mejor la necesidad de almacenamiento de datos diversificado en el mundo real. 2.2.1 Almacenamiento de cadena de bloques

TRON blockchain el almacenamiento elige utilizar LevelDB, desarrollado por Google y probado éxito en muchas empresas y proyectos. Tiene un alto rendimiento y admite bytes arbitrarios. matrices como claves y valores, obtención, colocación y eliminación singulares, colocación y eliminación por lotes, bidireccional iteradores y compresión simple utilizando el algoritmo Snappy muy rápido. 2.2.2 Almacenamiento estatal

TRON tiene un KhaosDB en la memoria del nodo completo que puede almacenar todas las cadenas recién bifurcadas generadas dentro de un cierto período de tiempo y ayuda a los testigos a cambiar rápidamente de su propia cadena activa en una nueva cadena principal. También puede proteger el almacenamiento blockchain haciéndolo más estable frente a terminando anormalmente en un estado intermedio. 2.3 Aplicación

Los desarrolladores pueden crear una amplia gama de DApps y billeteras personalizadas en TRON. Desde TRON permite implementar y ejecutar smart contracts, las oportunidades de las aplicaciones de servicios públicos son ilimitado. 4 Documentación oficial de Solidez: https://solidity.readthedocs.io/

2.4 Protocolo

El protocolo TRON se adhiere a Google Protocol Buffers , que es un protocolo neutral en cuanto al idioma y a la plataforma. 5 y extensible de serializar datos estructurados para su uso en protocolos de comunicaciones, almacenamiento de datos, y más. 2.4.1 Búfers de protocolo

Protocol Buffers (Protobuf) es un mecanismo flexible, eficiente y automatizado para serializar archivos estructurados. datos, similar a JSON o XML, pero mucho más pequeño, más rápido y más simple.

Las definiciones de Protobuf (.proto) se pueden utilizar para generar código para C++, Java, C#, Python, Ruby, Lenguajes Golang y Objective-C a través de los generadores de código oficiales. Varios terceros Las implementaciones también están disponibles para muchos otros idiomas. Protobuf facilita el desarrollo de clientes unificando las definiciones de API y también optimizando las transferencias de datos. Los clientes pueden tomar la API .proto del repositorio de protocolos de TRON e integrarlo a través del código generado automáticamente bibliotecas.

En comparación, Protocol Buffers es de 3 a 10 veces más pequeño y de 20 a 100 veces más rápido que XML. con una sintaxis menos ambigua. Protobuf genera clases de acceso a datos que son más fáciles de usar programáticamente. 2.4.2HTTP

El protocolo TRON proporciona una API HTTP RESTful alternativa a la API de Protobuf. ellos comparten lo mismo interfaz, pero la API HTTP se puede utilizar fácilmente en clientes javascript. 2.5 TRON Máquina virtual (TVM)

TVM es una máquina virtual ligera y completa de Turing desarrollada para el ecosistema de TRON. el TVM se conecta perfectamente con el ecosistema de desarrollo existente para proporcionar millones de soluciones globales. desarrolladores con un sistema blockchain personalizado que es eficiente, conveniente, estable, seguro y escalable.
2.6 Intercambio descentralizado (DEX)

5 Documentación oficial de Google Protocol Buffers: https://developers.google.com/protocol-buffers/La red TRON admite de forma nativa funciones de intercambio descentralizadas. Un intercambio descentralizado consta de múltiples pares comerciales. Un par comercial (notación "Exchange") es un mercado cambiario entre TRC-10 tokens, o entre un TRC-10 token y TRX. Cualquier cuenta puede crear una cuenta comercial. par entre cualquier tokens, incluso si el mismo par ya existe en la red TRON. Comercio y Las fluctuaciones de precios de los pares comerciales siguen el Protocolo Bancor. La red TRON estipula que 6 los pesos de los dos tokens en todos los pares comerciales son iguales, por lo que la relación de sus saldos es el precio entre ellos. Por ejemplo, considere un par comercial que contiene dos token, ABC y DEF. ABC tiene un saldo de 10 millones y DEF tiene un saldo de 1 millón. Como sus pesos son iguales, 10 ABC = 1 DEF. Esto significa que la relación entre ABC y DEF es 10 ABC por DEF. 2.7 Implementación

El código TRON blockchain está implementado en Java y originalmente era una bifurcación de EthereumJ.

6 Sitio web oficial del Protocolo de Bancor: https://about.bancor.network/protocol/

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.

Consenso

3.1 Prueba de participación delegada (DPoS)

El primer mecanismo de consenso es el mecanismo de consenso de prueba de trabajo (PoW). esto El protocolo está implementado actualmente en Bitcoin y Ethereum. En los sistemas PoW, las transacciones 7 8 transmitidos a través de la red se agrupan en bloques incipientes para la confirmación del minero. el El proceso de confirmación implica hashing transacciones utilizando algoritmos criptográficos hashing hasta que Se ha alcanzado la raíz de Merkle, creando un árbol de Merkle:

Figura 2: 8 transacciones TRX se hash__ en la raíz de merkle. Esta raíz merkle se incluye luego en el encabezado del bloque, que se adjunta a los bloques previamente confirmados para formar un blockchain. Esto permite un seguimiento fácil y transparente de transacciones, marcas de tiempo y otra información relacionada.

7 Bitcoin documento técnico: https://bitcoin.org/bitcoin.pdf 8 Ethereum documento técnico: https://github.com/ethereum/wiki/wiki/White-Paper

Los algoritmos criptográficos hashing son útiles en la prevención de ataques de red porque poseen varias propiedades:
9

● Tamaño de longitud de entrada/salida: el algoritmo puede pasar una entrada de cualquier longitud y tamaño, y genera un valor de longitud fija hash.
● Eficiencia: el algoritmo es relativamente fácil y rápido de calcular.
● Resistencia de preimagen: para una salida dada z, es imposible encontrar una entrada x tal que h(x) =​ ​z​. En otras palabras, el algoritmo hashing ​h(x)​ es una función unidireccional en la que solo La salida se puede encontrar, dada una entrada. Lo contrario no es posible.
● Resistencia a la colisión: es computacionalmente inviable encontrar pares ​x​1 ​≠ x​2​ ​tal que ​h(x​1​) = h(x​2​)​. En otras palabras, la probabilidad de encontrar dos entradas diferentes hashing al mismo la producción es extremadamente baja. Esta propiedad también implica una segunda resistencia a la preimagen.
● Segunda resistencia de preimagen: dada ​x​1​, y por lo tanto ​h(x​1​)​, es computacionalmente inviable encuentre cualquier ​x​2​ tal que ​h(x​1​) = h(x​2​)​. Si bien esta propiedad es similar a la ​resistencia a la colisión​, la La propiedad difiere en que dice que un atacante con un ​x​1​ dado lo encontrará computacionalmente No es factible encontrar ​x​2​ hashing a la misma salida.
● Determinista: asigna cada entrada a una y solo una salida. ● Efecto Avalanche: un pequeño cambio en la entrada da como resultado una salida completamente diferente.

Estas propiedades le dan a la red de criptomonedas su valor intrínseco al garantizar que los ataques no comprometer la red. Cuando los mineros confirman un bloque, reciben tokens como recompensa incorporada incentivo para la participación en la red. Sin embargo, a medida que la capitalización del mercado global de criptomonedas aumentó constantemente, los mineros se centralizaron y centraron sus recursos informáticos en acaparar tokens como activos, en lugar de con fines de participación en la red. Los mineros de CPU dieron paso a GPU, que a su vez dieron paso a potentes ASIC. En un estudio notable, la potencia total Se ha estimado que el consumo de la minería Bitcoin alcanza los 3 GW, comparable al de Irlanda. 10 consumo de energía. Este mismo estudio proyectó que el consumo total de energía alcanzaría los 8 GW en los próximos años. futuro.

Para resolver el problema del desperdicio de energía, el mecanismo de consenso de Prueba de Participación (PoS) fue propuesto por muchas redes nuevas. En las redes PoS, los titulares de token bloquean sus saldos token para bloquearlos. validators. Los validator se turnan para proponer y votar el siguiente bloque. Sin embargo, el problema con PoS estándar es que la influencia validator se correlaciona directamente con la cantidad de tokens bloqueados. Esto da como resultado que las partes acaparen grandes cantidades de la moneda base de la red y ejerzan influencia en el ecosistema de la red.

El mecanismo de consenso TRON utiliza un innovador sistema de prueba de participación delegada en el que 27 Los SuperRepresentantes (SR) producen bloques para la red. Cada 6 horas, los titulares de cuentas TRX quienes congelan sus cuentas pueden votar por una selección de candidatos SR, siendo los 27 mejores candidatos consideraron los SR. Los votantes pueden elegir a los SR basándose en criterios tales como proyectos patrocinados por los SR para 9 PAAR, C., PELZL, J., ​Comprensión de la criptografía: un libro de texto para estudiantes y profesionales​, 2010 ed. Springer-Verlag Berlín Heidelberg, 2010.
10 https://www.sciencedirect.com/science/article/pii/S2542435118301776aumentar la adopción de TRX y las recompensas distribuidas a los votantes. Esto permite una sociedad más democratizada y ecosistema descentralizado. Las cuentas de los SR son cuentas normales, pero su acumulación de votos les permite producir bloques. Con las bajas tasas de rendimiento de Bitcoin y Ethereum debido a su Mecanismo de consenso de PoW y problemas de escalabilidad, el sistema DPoS de TRON ofrece una solución innovadora. mecanismo que resultó en 2000 TPS en comparación con los 3 TPS de Bitcoin y los 15 TPS de Ethereum.

La red de protocolo TRON genera un bloque cada tres segundos, y cada bloque otorga 32 TRX a Súper Representantes. Se otorgará un total de 336.384.000 TRX anualmente a los 27 SR. Cada vez que un SR termina la producción de bloques, las recompensas se envían a una subcuenta en el superlibro mayor. Los SR pueden verificar, pero no utilizar directamente, estos TRX tokens. Cada uno puede realizar un retiro. SR una vez cada 24 horas, transfiriendo las recompensas de la subcuenta al SR especificado cuenta.

Los tres tipos de nodos en la red TRON son el nodo testigo, el nodo completo y el nodo de solidez. Los nodos testigo son creados por SR y son los principales responsables de la producción y propuesta de bloques. creación/votación. Los nodos completos proporcionan API y transmiten transacciones y bloques. Sincronización de nodos de solidez bloques de otros nodos completos y también proporcionan API indexables.

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​; }

Cuenta

4.1 Tipos

Los tres tipos de cuentas en la red TRON son cuentas regulares, cuentas token y cuentas de contrato.

1. Las cuentas regulares se utilizan para transacciones estándar.
2. Las cuentas de token se utilizan para almacenar TRC-10 tokens.
3. Las cuentas de contrato son smart contract cuentas creadas por cuentas regulares y pueden activado también por cuentas regulares. 4.2 Creación

Hay tres formas de crear una cuenta TRON:

1. Crear una nueva cuenta a través de API 2. Transfiera TRX a una nueva dirección de cuenta 3. Transfiera cualquier TRC-10 token a una nueva dirección de cuenta

Un par de claves fuera de línea que consta de una dirección (clave pública) y una clave privada, y no registrada por el También se puede generar la red TRON. El algoritmo de generación de direcciones de usuario consta de generar un par de claves y luego extraer la clave pública (matriz de bytes de 64 bytes que representa x, y coordenadas). Hash la clave pública usando la función SHA3-256 (el protocolo SHA3 adoptado es KECCAK-256) y extrae los últimos 20 bytes del resultado. Agregue 41 al comienzo de la matriz de bytes y asegúrese de que la longitud de la dirección inicial sea de 21 bytes. Hash la dirección dos veces usando la función SHA3-256 y tome los primeros 4 bytes como código de verificación. Añade el código de verificación al final de la inicial. dirección y obtenga la dirección en formato base58check a través de la codificación base58. un codificado La dirección de Mainnet comienza con T y tiene 34 bytes de longitud. 4.3 Estructura

Los tres tipos de cuentas diferentes son Normal, AssetIssue y Contrato. Una cuenta contiene 7 parámetros:

1. nombre_cuenta​: el nombre de esta cuenta – p.e. Cuenta de facturas.
2. tipo​: qué tipo de cuenta es, p.e. 0 (significa tipo "Normal").
3. saldo​: saldo de esta cuenta – p.e. 4213312.

4. voto​: votos recibidos en esta cuenta – p.e. {(“0x1b7w…9xj3”,323), (“0x8djq…j12m”,88),…,(“0x82nd…mx6i”,10001)}.
5. activo​: otros activos esperados TRX en esta cuenta – p.e. {<“WishToken”, 66666>, <”Perrito”, 233>}. 6. last_operation_time​: la última hora de operación de esta cuenta.

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​; }

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 } } }

Bloque

Un bloque normalmente contiene un encabezado de bloque y varias transacciones.

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

Un encabezado de bloque contiene ​raw_data​, ​witness_signature​ y ​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 Datos sin procesar

Los datos sin procesar se indican como ​raw_data​ en Protobuf. Contiene los datos sin procesar de un mensaje, que contiene 6 parámetros:

1. marca de tiempo​: marca de tiempo de este mensaje – p.e. 1543884429000. 2. txTrieRoot​: la raíz del árbol Merkle – p.e. 7dacsa…3ed. 3. parentHash​: el hash del último bloque – p.e. 7dacsa…3ed. 4. número​: la altura del bloque – p.e. 4638708. 5. versión​: reservada – p.ej. 5.

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

6. dirección_testigo​: la dirección del testigo incluida en este bloque – p.e. 41928c...4d21. 5.1.2 Firma del testigo

La firma del testigo se indica como ​witness_signature​ en Protobuf, que es la firma de este bloquear el encabezado del nodo testigo. 5.1.3 ID de bloque

El ID de bloque se indica como ​blockID​ en Protobuf. Contiene la identificación atómica de un bloque. un bloque La identificación contiene 2 parámetros: 1. hash​: el hash del bloque. 2. número​: el hash y altura del bloque. 5.2 Transacción 5.2.1 Firma

El proceso de firma de transacciones de TRON sigue un algoritmo criptográfico estándar ECDSA, con un Curva de selección SECP256K1. Una clave privada es un número aleatorio y la clave pública es un punto en la curva elíptica. El proceso de generación de clave pública consiste en generar primero un número aleatorio como clave privada y luego multiplicar el punto base de la curva elíptica por la clave privada para obtener la clave pública. Cuando se produce una transacción, los datos sin procesar de la transacción se convierten primero al formato de bytes. Los datos sin procesar luego se someten a SHA-256 hashing. La clave privada correspondiente al contrato. La dirección luego firma el resultado del SHA256 hash. El resultado de la firma luego se agrega al transacción.
5.2.2 Modelo de ancho de banda

Las transacciones ordinarias solo consumen puntos de ancho de banda, pero las operaciones smart contract consumen ambos puntos de energía y ancho de banda. Hay dos tipos de puntos de ancho de banda disponibles. Los usuarios pueden ganar puntos de ancho de banda de congelar TRX, mientras que 5000 puntos de ancho de banda gratuitos también están disponibles diariamente.

Cuando se transmite una transacción TRX, se transmite y almacena en forma de una matriz de bytes sobre la red. Puntos de ancho de banda consumidos por una transacción = número de bytes de transacción multiplicado por la tasa de puntos de ancho de banda. Por ejemplo, si la longitud de la matriz de bytes de una transacción es 200, entonces la transacción consume 200 puntos de ancho de banda. Sin embargo, si una transferencia TRX o token resulta en la cuenta de destino que se está creando, entonces solo los puntos de ancho de banda consumidos para crear la cuenta se deducirán y no se deducirán puntos de ancho de banda adicionales. En la creación de una cuenta En este escenario, la red consumirá primero los puntos de ancho de banda que obtuvo el iniciador de la transacción.por congelar TRX. Si esta cantidad es insuficiente, entonces la red consume la transacción. TRX del iniciador.

En escenarios de transferencia TRX estándar de una cuenta TRX a otra, la red primero consume los puntos de ancho de banda obtenidos por el iniciador de la transacción para congelar TRX. Si eso es insuficiente, entonces consume de los 5000 puntos de ancho de banda diarios gratuitos. Si esto todavía no es suficiente, entonces la red Consume el TRX del iniciador de la transacción. La cantidad se calcula por el número de bytes en la transacción multiplicada por 10 DOM. Por lo tanto, para la mayoría de los poseedores de TRX, que no necesariamente pueden congelar su TRX para participar en la votación SR, el primer paso se omite automáticamente (ya que el saldo TRX frozen = 0) y los 5000 anchos de banda gratuitos diarios impulsan la transacción.

Para transferencias TRC-10 token, la red primero verifica si el total de puntos de ancho de banda libres del activo emitido token son suficientes. De lo contrario, los puntos de ancho de banda obtenidos al congelar TRX son consumido. Si todavía no hay suficientes puntos de ancho de banda, entonces consume el TRX de la transacción. iniciador.

5.2.3 Tarifa

La red TRON generalmente no cobra tarifas por la mayoría de las transacciones; sin embargo, debido al sistema Las restricciones y la equidad, el uso del ancho de banda y las transacciones conllevan ciertas tarifas.

Los cargos por tarifas se dividen en las siguientes categorías: 1. Las transacciones normales cuestan puntos de ancho de banda. Los usuarios pueden utilizar los puntos de ancho de banda diarios gratuitos. (5000) o congelar TRX para obtener más. Cuando los puntos de ancho de banda no sean suficientes, TRX será utilizado directamente desde la cuenta emisora. El TRX necesario es la cantidad de bytes * 10 SUN. 2. Los contratos inteligentes cuestan energía (Sección 6), pero también necesitarán puntos de ancho de banda para el transacción que será transmitida y confirmada. El costo del ancho de banda es el mismo que el anterior. 3. Todas las transacciones de consulta son gratuitas. No cuesta energía ni ancho de banda.

La red TRON también define un conjunto de tarifas fijas para las siguientes transacciones: 1. Creando un nodo testigo: 9999 TRX 2. Emitiendo un TRC-10 token: 1024 TRX 3. Creando una nueva cuenta: 0.1 TRX 4. Creando un par de intercambio: 1024 TRX 5.2.4 Transacción como prueba de participación (TaPoS)

TRON usa TaPoS para garantizar que todas las transacciones confirmen el blockchain principal, mientras lo hace Es difícil falsificar cadenas. En TaPoS, las redes requieren que cada transacción incluya parte de el hash de un encabezado de bloque reciente. Este requisito evita que las transacciones se repitan en se bifurca sin incluir el bloque al que se hace referencia, y también indica a la red que un usuario en particular y sulo que está en juego está en una bifurcación específica. Este mecanismo de consenso protege la red contra la Denegación de Servicio, 51%, minería egoísta y ataques de doble gasto.
5.2.5 Confirmación de transacción

Una transacción se incluye en un bloque futuro después de ser transmitida a la red. Después de 19 cuadras son minado el TRON (incluido su propio bloque), se confirma la transacción. Cada bloque es producido por uno de los 27 mejores Súper Representantes en un sistema de todos contra todos. Cada bloque tarda ~3 segundos en ser extraído en el blockchain. El tiempo puede variar ligeramente para cada Súper Representante debido a la red. condiciones y configuraciones de la máquina. En general, una transacción se considera totalmente confirmada después ~1 minuto. 5.2.6 Estructura

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 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.

TRON Máquina virtual

6.1 Introducción

TRON Virtual Machine (TVM) es una máquina virtual ligera y completa de Turing desarrollada para El ecosistema de TRON. Su objetivo es proporcionar un sistema blockchain personalizado que sea eficiente, conveniente, estable, seguro y escalable.

TVM inicialmente se bifurcó de EVM y puede conectarse sin problemas con la solidez existente smart contract 11 ecosistema de desarrollo. En base a eso, TVM también admite el consenso DPoS.

TVM emplea el concepto de Energía. A diferencia del mecanismo de gas en EVM, las operaciones de las transacciones y smart contracts en TVM son gratuitas y no se consume TRX. Técnicamente, ejecutable La capacidad de cálculo en TVM no está restringida por la cantidad total de tenencias de tokens. 6.2 Flujo de trabajo

El compilador primero traduce Solidity smart contract a código de bytes legible y ejecutable en la TVM. Luego, TVM procesa datos a través de código de operación, lo que equivale a operar la lógica. de una máquina de estados finitos basada en pila. Finalmente, TVM accede a blockchain datos e invoca Interfaz de Datos Externos a través de la capa de Interoperación. 11 EVM: Ethereum Máquina virtual (https://github.com/ethereum/ethereumj)

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

Figura 3: Flujo de trabajo TVM

6.3 Rendimiento 6.3.1 Arquitectura ligera

TVM adopta una arquitectura ligera con el objetivo de reducir el consumo de recursos para garantizar rendimiento del sistema. 6.3.2 Robusto

Las transferencias TRX y la ejecución smart contract cuestan solo puntos de ancho de banda, en lugar de TRX, que exime a TRON de ser atacado. El consumo de ancho de banda es predecible y estático ya que cada El costo del paso computacional es fijo. 6.3.3 Alta compatibilidad

TVM es compatible con EVM y será compatible con más máquinas virtuales convencionales en el futuro. Por lo tanto, todos los smart contracts en EVM son ejecutables en TVM. 6.3.4 Bajo Costo

Gracias a la configuración del ancho de banda de TVM, los costos de desarrollo se reducen y los desarrolladores pueden concentrarse en desarrollo lógico de su código de contrato. TVM también ofrece interfaces todo en uno para contrato implementación, activación y visualización para ofrecer comodidad a los desarrolladores.

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.

Contrato inteligente

7.1 Introducción

Un smart contract es un protocolo que verifica digitalmente la negociación del contrato. Definen las reglas y sanciones relacionadas con un acuerdo y también hacer cumplir automáticamente esas obligaciones. el inteligente El código de contrato facilita, verifica y hace cumplir la negociación o ejecución de un acuerdo o transacción. Desde una perspectiva de tokenización, los smart contracts también facilitan los fondos automáticos transferencias entre partes participantes si se cumplen ciertos criterios.

TRON smart contracts están escritos en el lenguaje Solidity. Una vez escritos y probados, pueden ser compilado en código de bytes y luego implementado en la red TRON para la máquina virtual TRON. una vez implementado, smart contracts se pueden consultar a través de sus direcciones de contrato. La solicitud del contrato La interfaz binaria (ABI) muestra las funciones de llamada del contrato y se utiliza para interactuar con el red. 7.2 Modelo Energético

El límite máximo de energía para desplegar y activar un smart contract es función de varios variables:

● La energía dinámica procedente de la congelación de 1 TRX es 50 000 000 000 (límite de energía total) / (energía total Peso) ● El límite de energía es el límite de energía diario de la cuenta por congelar TRX ● La energía restante diaria de la cuenta por congelar TRX se calcula como Límite de energía - Energía Usado ● El límite de tarifa en TRX se establece en smart contract llamada de implementación/activación ● TRX utilizable restante en la cuenta ● Energía por TRX si se compra directamente (10 SUN = 1 Energía) = 100,000, los SR pueden votar ajuste

Hay dos escenarios de consumo para calcular el límite máximo de energía para la implementación y disparador. La lógica se puede expresar de la siguiente manera:
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 Implementación

Cuando se compila una TRON solidez smart contract, la Máquina Virtual TRON lee el compilado código de bytes. El código de bytes consta de una sección para la implementación del código, el código de contrato y los datos auxiliares. Los datos auxiliares son la huella digital criptográfica del código fuente, que se utiliza para la verificación. El despliegue bytecode ejecuta la función constructora y configura las variables de almacenamiento iniciales. El despliegue El código también calcula el código del contrato y lo devuelve al TVM. El ABI es un archivo JSON que describe las funciones de TRON smart contract. Este archivo define los nombres de las funciones, su pagabilidad, los valores de retorno de la función y su mutabilidad de estado. 7.4 Función de disparo

Una vez que se implementan los TRON smart contracts, sus funciones se pueden activar individualmente a través de TronStudio o mediante llamadas API. Las funciones de cambio de estado requieren energía, mientras que las funciones de solo lectura ejecutar sin energía. 7.5 TRON Solidez

TRON Solidity es una bifurcación del lenguaje Solidity de Ethereum. TRON modifica el proyecto original para Admite unidades TRX y SUN (1 TRX = 1.000.000 SUN). El resto de la sintaxis del lenguaje es compatible con Solidez ^0.4.24. Así la Máquina Virtual Tron (TVM) es casi 100% compatible con EVM instrucciones.

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.

Token

8.1 Ficha TRC-10

En la red TRON, cada cuenta puede emitir tokens a expensas de 1024 TRX. ​Para emitir tokens, el emisor debe especificar un nombre token, la capitalización total, el tipo de cambio a TRX, duración de la circulación, descripción, sitio web, consumo máximo de ancho de banda por cuenta, total consumo de ancho de banda y la cantidad de token congelada. Cada emisión token también puede configurar el máximo diario de transferencia de token puntos de ancho de banda de cada cuenta, el máximo diario de toda la red token transfiere puntos de ancho de banda, suministro total de token, duración del bloqueo en días y monto total de tokens bloqueados. 8.2 Ficha TRC-20

TRC-20 es un estándar técnico utilizado para smart contracts que implementan tokens respaldados por TRON Máquina virtual. Es totalmente compatible con ERC-20.

La interfaz es la siguiente:
contrato​ TRC20Interfaz { ​función​ ​suministrototal​() ​pública​ ​constante​ ​retorna​ (uint); ​función​ ​balanceOf​(dirección tokenPropietario) ​retornos​ ​públicos​ ​constantes​ (uint saldo); ​función​ ​asignación​(dirección tokenPropietario, dirección del gastador) ​pública​ ​constante devoluciones (uint restante); transferencia de función (dirección a, uint tokens) devoluciones públicas (éxito bool); ​función​ ​aprobar​(gastador de direcciones, uint tokens) ​devoluciones​ ​públicas​ (bool éxito); ​función​ ​transferFrom​(dirección de, dirección a, uint tokens) ​público devoluciones​ (éxito bool);

​evento​ ​Transferencia​(dirección indexada desde, dirección indexada hacia, uint tokens); 
​evento​ ​Aprobación​(dirección indexada tokenPropietario, dirección gastadora indexada, uint

tokens); }

Desde la perspectiva del desarrollador, existen varias diferencias entre TRC-10 y TRC-20. Algunos Una de las diferencias clave es que los tokens TRC-10 son accesibles mediante API y smart contracts, mientras que TRC-20 tokens permiten la personalización de la interfaz, pero solo se puede acceder a ellos dentro de smart contracts.

Desde una perspectiva de costos, los TRC-10 tokens tienen tarifas de transacción que son 1000 veces más bajas que TRC-20, pero conlleva costos de ancho de banda para transferencias y depósitos de API. Transferencias y depósitos en smart Los contratos para TRC-10 tokens cuestan ancho de banda y energía.
8.3 Más allá

Dado que TRON usa la misma versión de Solidity que Ethereum, se podrían implementar más estándares token. transferido a TRON.

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é.

Gobernancia

9.1 Súper Representante 9.1.1 Generalidades

Todas las cuentas de la red TRON pueden postularse y tener la oportunidad de convertirse en Super Representante (denotado como SR). Todos pueden votar por los candidatos SR. Los 27 mejores candidatos con los más votos pasarán a ser SR con derecho y obligación de generar bloques. los votos son se cuenta cada 6 horas y los SR cambiarán en consecuencia.

Para evitar ataques maliciosos, convertirse en candidato a SR tiene un coste. Al aplicar, 9999 TRX se eliminará de la cuenta del solicitante. Una vez exitosa, dicha cuenta puede unirse al SR elección. 9.1.2 Elección

TRON Se necesita poder (denotado como TP) para votar y la cantidad de TP depende del voto del votante. activos congelados (TRX).

El TP se calcula de la siguiente manera:
TP 1 TRX congelado para obtener ancho de banda 1 =

Cada cuenta en la red TRON tiene derecho a votar por sus propios SR.

Después del lanzamiento (descongelado, disponible después de 3 días), los usuarios no tendrán ningún activo congelado y perderán todo. TP en consecuencia. Como resultado, todos los votos dejan de ser válidos para la ronda de votación actual y futura a menos que TRX vuelve a estar congelado para votar.

Tenga en cuenta que la red TRON solo registra el voto más reciente, lo que significa que cada nuevo voto anulará todos los votos anteriores. 9.1.3 Recompensa un. Recompensa por voto

También conocida como Candidate Reward, que los 127 mejores candidatos actualizaron una vez por ronda (6 horas) compartirá 115,200 TRX extraídos. La recompensa se dividirá de acuerdo con el peso de los votos. cada candidato recibe. Cada año, la recompensa total para los candidatos será de 168.192.000 TRX. Recompensa total de votos por ronda ¿Por qué 115.200 TRX en cada ronda? 15, 00 TRX recompensa total de votos por ronda (V R/ronda) 1 2 =
V R/ronda = 16 T RX/bloque × 20 bloques/min × 60 min/h × 6 h/ronda Aviso: esto lo establece WITNESS_STANDBY_ALLOWANCE = 115,200 TRX. Ver parámetros de red dinámica. Recompensa total de votos por año ¿Por qué 168.192.000 TRX cada año? 168, 192, 000 T RX = recompensa total de votos por año (V R/año) V R/año = 115, 200 T RX/ronda × 4 rondas/día × 365 días/año B. Recompensa de bloque También conocida como Recompensa Súper Representante, que se entrega a los 27 mejores candidatos (SR) elegidos. cada ronda (6 horas) compartirá aproximadamente 230,400 TRX extraídos. La recompensa se dividirá en partes iguales. entre los 27 SR (menos el total de bloques de recompensa perdidos debido a un error de red). un total de Se otorgarán 336.384.000 TRX anualmente a los 27 SR. Recompensa total en bloque por ronda ¿Por qué 230.400 TRX en cada ronda? 230, 400 T RX = recompensa total en bloque por ronda (BR/ronda) BR/ronda = 32 T RX/bloque × 20 bloques/min × 60 min/h × 6 h/ronda Aviso: la recompensa del bloque de unidades se establece en WITNESS_PAY_PER_BLOCK = 32 TRX. Ver red dinámica parámetros. Recompensa total en bloque por año ¿Por qué 336.384.000 TRX cada año? 336, 384, 000 T RX = recompensa total en bloque por año (BR/año) BR/año = 230, 400 T RX/ronda × 4 rondas/día × 365 días/año 1 de enero de 2021 No habrá inflación en la red TRON antes del 1 de enero de 2021, y la TRON DAO otorgar todas las recompensas en bloque y recompensas de candidatos antes de esa fecha. do. Cálculo de recompensa

Cálculo de recompensa SR recompensa total recompensa de voto (V R) recompensa en bloque (BR) t =
+

R V R total V =
×
votos totales votos recibidos por el candidato SR
R

bloque perdido 2 b =
27 BR total − × 3
Nota: la recompensa se calcula por SR por ronda (6 horas)

Cálculo de recompensa del candidato SR del rango 28 al rango 127 recompensa total recompensa de voto (V R) t =

R V R total V =
×
votos totales votos recibidos por el candidato SR
Nota: la recompensa se calcula por candidato SR por ronda (6 horas) 9.2 Comité 9.2.1 Generalidades

El comité se utiliza para modificar TRON parámetros dinámicos de la red, como la generación de bloques. recompensas, tarifas de transacción, etc. El comité está formado por los 27 SR de la ronda actual. Cada SR tiene derecho a proponer y votar propuestas. Cuando una propuesta recibe 19 votos o más, se aprobado y los nuevos parámetros de la red se aplicarán en el próximo período de mantenimiento (3 días). 9.2.2 Parámetros de red dinámica 0. MAINTENANCE_TIME_INTERVAL un. Descripción
Modifique el tiempo del intervalo de mantenimiento en ms. Conocido como el intervalo de tiempo de votación SR por redondo.
b. Ejemplo [6 * 3600 * 1000] ms, que son 6 horas. do. Rango [3 * 27 * 1000, 24 * 3600 * 1000] ms 1. ACCOUNT_UPGRADE_COST un. Descripción Modificar el costo de solicitar la cuenta SR. b. Ejemplo [9,999,000,000] SUN, que es 9,999 TRX. do. Rango [0,100 000 000 000 000 000] DOM 2. CREATE_ACCOUNT_FEE un. Descripción Modificar la tarifa de creación de cuenta.b. Ejemplo [100,000] SUN, que es 1 TRX. do. Rango [0,100 000 000 000 000 000] DOM 3. TRANSACTION_FEE un. Descripción Modifique el monto de la tarifa utilizada para obtener ancho de banda adicional. b. Ejemplo [10] DOM/byte. do. Rango [0,100 000 000 000 000 000] DOM/byte 4. ASSET_ISSUE_FEE un. Descripción Modificar tarifa de emisión de activos. b. Ejemplo [1024,000,000] SUN, que es 1024 TRX. do. Rango [0,100 000 000 000 000 000] DOM 5. TESTIGO_PAY_PER_BLOCK un. Descripción Modificar la recompensa de generación de bloques SR. Conocido como recompensa por bloque unitario. b. Ejemplo [32,000,000] SUN, que es 32 TRX. do. Rango [0,100 000 000 000 000 000] DOM 6. WITNESS_STANDBY_ALLOWANCE un. Descripción Modifique las recompensas otorgadas a los 127 mejores candidatos SR. Conocido como recompensa de voto total por ronda. b. Ejemplo [115,200,000,000] SUN, que son 115,200 TRX. do. Rango [0,100 000 000 000 000 000] DOM 7. CREATE_NEW_ACCOUNT_FEE_IN_SYSTEM_CONTRACT un. Descripción Modificar el costo de creación de cuenta. Combine los parámetros de red dinámica n.° 8 para obtener Costo total de creación de cuenta:
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT REATE_NEW_ACCOUNT_BANDWIDTH_RATE
c ×C

B. Ejemplo [0] DOM. do. Rango [0,100 000 000 000 000 000] DOM 8. CREATE_NEW_ACCOUNT_BANDWIDTH_RATE

un. Descripción Modificar el costo de creación de cuenta. Combine los parámetros de red dinámica n.° 7 para obtener Costo total de creación de cuenta:
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT REATE_NEW_ACCOUNT_BANDWIDTH_RATE
c ×C

B. Ejemplo [1]. do. Rango [0,100,000,000,000,000,000] 9. ALLOW_CREATION_OF_CONTRACTS un. Descripción Para encender la máquina virtual Tron (TVM). b. Ejemplo Verdadero: configurado para activarse y entrar en vigor desde el 10/10/2018 a las 23:47 UTC. do. Rango Verdadero/Falso 10. QUITAR_EL_PODER_DE_EL_GR un. Descripción Eliminar los votos iniciales de GR génesis B. Ejemplo Verdadero: realizado el 4/11/2018 a las 08:46 UTC. do. Rango Verdadero/Falso: Aviso: no se puede volver a establecer Falso desde Verdadero. 11. TARIFA_ENERGÍA un. Descripción Modifica la tarifa de 1 energía. b. Ejemplo 20 DOM. do. Rango [0,100 000 000 000 000 000] DOM 12. EXCHANGE_CREATE_FEE un. Descripción Modifique el costo de creación de pares comerciales. Conocido como el costo de crear una orden comercial. b. Ejemplo [1,024,000,000] SUN, que es 1024 TRX. do. Rango [0,100 000 000 000 000 000] DOM 13. MAX_CPU_TIME_OF_ONE_TX un. Descripción Modificar el tiempo máximo de ejecución de una transacción. Conocido como el límite de tiempo de espera de una transacción. b. Ejemplo 50 ms. do. Rango

[0, 1000] ms 14. ALLOW_UPDATE_ACCOUNT_NAME un. Descripción Modifique la opción para permitir que una cuenta actualice su nombre de cuenta.
b. Ejemplo Falso: que está disponible para proponer desde java-tron Odyssey v3.2. do. Rango Verdadero/Falso: Aviso: no se puede volver a establecer Falso desde Verdadero. 15. ALLOW_SAME_TOKEN_NAME un. Descripción Modifique la validación para permitir que diferentes token tengan un nombre duplicado.
b. Ejemplo Falso: está disponible para proponer desde java-tron Odyssey v3.2. do. Rango Verdadero/Falso: Aviso: no se puede volver a establecer Falso desde Verdadero. 16. ALLOW_DELEGATE_RESOURCE un. Descripción Modificar la validación de permitir emitir token con un nombre duplicado, para que el tokenID​ del token, en tipo de datos entero largo, sería el único atómico identificación de un token.
b. Ejemplo Falso: está disponible para proponer desde java-tron Odyssey v3.2. do. Rango Verdadero/Falso: Aviso: no se puede volver a establecer Falso desde Verdadero. 17. LÍMITE_ENERGÍA_TOTAL un. Descripción Modificar el límite de energía total de toda la red. b. Ejemplo [50 000 000 000 000 000] SUN, que son 50 000 000 000 TRX. do. Rango [0,100,000,000,000,000,000] SOL 18. ALLOW_TVM_TRANSFER_TRC10 un. Descripción Permitir la transferencia TRC-10 token dentro de smart contracts. ALLOW_UPDATE_ACCOUNT_NAME, ALLOW_SAME_TOKEN_NAME, Todas las propuestas ALLOW_DELEGATE_RESOURCE deben aprobarse antes de proponer este parámetro cambia.
b. Ejemplo Falso: está disponible para proponer desde java-tron Odyssey v3.2. do. Rango Verdadero/Falso: Aviso: no se puede volver a establecer Falso desde Verdadero.9.2.3 Crear propuesta

Sólo las cuentas SR tienen derecho a proponer un cambio en los parámetros dinámicos de la red. 9.2.4 Propuesta de votación

Sólo los miembros del comité (SR) pueden votar por una propuesta y el miembro que no vota a tiempo se considerará en desacuerdo. La propuesta está activa durante 3 días después de su creación. el voto puede modificarse o recuperarse durante el período de votación de 3 días. Una vez finalizado el plazo, la propuesta será O tiene éxito (más de 19 votos) o fracasa (y finaliza). 9.2.5 Cancelar propuesta

El proponente puede cancelar la propuesta antes de que entre en vigor. 9.3 Estructura

Los SR son testigos de los bloques recién generados. Un testigo contiene 8 parámetros:
1. dirección​: la dirección de este testigo – p.ej. 0xu82h…7237.
2. voteCount​: número de votos recibidos sobre este testigo – p.e. 234234.
3. pubKey​: la clave pública para este testigo – p.e. 0xu82h…7237.
4. url​: la URL de este testigo – p.e. https://www.noonetrust.com.
5. totalProduced​: la cantidad de bloques que produjo este testigo, p. 2434.
6. totalMissed​: el número de bloques que este testigo omitió, p.e. 7.
7. lastBlockNum​: la última altura del bloque – p.e. 4522. 8. isjobs​: una bandera booleana.

Estructura de datos de Protobuf: mensaje​ ​Testigo​{
Dirección de bytes = ​1​;
​int64​ voteCount = ​2​;
​bytes​ pubKey = ​3​;
​cadena​ URL = ​4​;
​int64​ totalProducido = ​5​;
​int64​ totalPerdidos = ​6​;
​int64​ últimoBlockNum = ​7​; ​bool​ esTrabajos = ​8​; }

  1. Desarrollo de aplicaciones digitales 10.1 API

La red TRON ofrece una amplia selección de más de 60 puertas de enlace API HTTP para interactuar con el red a través de Nodos Full y Solidity. Además, TronWeb es una biblioteca JavaScript completa. que contiene funciones API que permiten a los desarrolladores implementar smart contracts, cambie el blockchain estado, consulta blockchain e información del contrato, comercio en DEX y mucho más. Estas API Las puertas de enlace se pueden dirigir hacia una red privada local, la red de prueba Shasta o la red principal TRON.

10.2 Redes

TRON tiene tanto una red de prueba Shasta como una red principal. Los desarrolladores pueden conectarse a las redes mediante implementar nodos, interactuar a través de TronStudio o usar API a través del servicio TronGrid. El TronGrid El servicio consta de clústeres de nodos con carga equilibrada alojados en servidores AWS en todo el mundo. Como aplicación digital El desarrollo se amplía y los volúmenes de llamadas API aumentan, TronGrid aborda con éxito el aumento en Tráfico API.
10.3 Herramientas

TRON ofrece un conjunto de herramientas de desarrollo para permitir a los desarrolladores crear DApps innovadoras.
TronBox es un marco que permite a los desarrolladores probar e implementar smart contracts a través de TronWeb API. TronGrid es un servicio API alojado y con carga equilibrada que permite a los desarrolladores acceder a TRON red sin tener que ejecutar su propio nodo. TronGrid ofrece acceso tanto a Shasta testnet así como la TRON Mainnet. TronStudio es un desarrollo integrado integral Entorno (IDE) que permite a los desarrolladores compilar, implementar y depurar Solidity de forma inteligente. contratos. TronStudio contiene un nodo completo interno que crea un entorno local privado para smart contract pruebas antes de la implementación. La biblioteca API de TronWeb conecta a los desarrolladores con la red a través de una amplia selección de llamadas API HTTP envueltas en JavaScript.
10.4 Recursos

El TRON Developer Hub es un sitio de documentación API integral diseñado para 12 desarrolladores que deseen construir en la red TRON. El Developer Hub proporciona un alto nivel comprensión conceptual de TRON y guía a los usuarios a través de los detalles de la interacción con el 12 Centro de desarrolladores: https://developers.tron.network/

red. Las guías guían a los desarrolladores a través de la configuración, implementación e interacción de nodos con dispositivos inteligentes. contratos, interacción e implementación de API, creación de DApps de muestra y uso de cada uno de los herramientas de desarrollo. Además, los canales de la comunidad de desarrolladores están disponibles a través de Discord.
13

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

  1. Conclusión

TRON es una solución blockchain escalable que ha empleado métodos innovadores para abordar desafíos que enfrentan las redes heredadas blockchain. Habiendo alcanzado más de 2 millones de transacciones por día, con más de 700.000 cuentas TRX y superando las 2000 TPS, TRON ha permitido a la comunidad en creando una red descentralizada y democratizada.