TRON-Whitepaper
Introdução
1.1 Visão
TRON é um projeto ambicioso dedicado ao estabelecimento de uma Internet verdadeiramente descentralizada e sua
infraestrutura. O protocolo TRON, um dos maiores sistemas operacionais baseados em blockchain do
mundo, oferece suporte público blockchain de alto rendimento, alta escalabilidade e alta disponibilidade para
todos os aplicativos descentralizados (DApps) no ecossistema TRON. A aquisição de julho de 2018 da
O BitTorrent consolidou ainda mais a liderança de TRON na busca de um ecossistema descentralizado.
1.2 Antecedentes
A introdução de Bitcoin em 2009 revolucionou a percepção da sociedade sobre o mercado financeiro tradicional sistema na sequência da Grande Recessão (2007-2008). Como fundos de hedge e bancos centralizados entrou em colapso devido à especulação em derivativos financeiros opacos, a tecnologia blockchain forneceu um livro razão universal transparente do qual qualquer pessoa poderia obter informações sobre transações. O as transações foram protegidas criptograficamente usando um mecanismo de consenso de Prova de Trabalho (PoW), evitando assim problemas de gastos duplos.
No final de 2013, o white paper Ethereum propôs uma rede na qual smart contracts e um A Máquina Virtual Turing-complete Ethereum (EVM) permitiria aos desenvolvedores interagir com o rede através de DApps. No entanto, como os volumes de transações em Bitcoin e Ethereum atingiram o pico em 2017, ficou evidente pelos baixos tempos de processamento das transações e pelas altas taxas de transação que criptomoedas como Bitcoin e Ethereum em seu estado existente não eram escaláveis para uso generalizado adoção. Assim, TRON foi fundado e idealizado como uma solução inovadora para essas questões urgentes. desafios de escalabilidade.

1.3 História O TRON DAO foi estabelecido em julho de 2017 em Cingapura. Em dezembro de 2017, TRON tinha lançou seu protocolo de código aberto. O Testnet, Blockchain Explorer e Web Wallet foram todos lançada em março de 2018. TRON Mainnet foi lançada logo depois, em maio de 2018, marcando o Lançamento do Odyssey 2.0 como um marco técnico. Em junho de 2018, TRON declarou sua independência com a criação do bloco Genesis, juntamente com a aquisição do BitTorrent em julho de 2018. Em Outubro de 2018, TRON lançou a TRON Máquina Virtual (TVM), um conjunto completo de ferramentas para desenvolvedores, e sistema de suporte 360. O roteiro TRON envolve combinar os 100 milhões de usuários do BitTorrent com a rede TRON por meio do Project Atlas, além de incentivar a comunidade de desenvolvedores a lançar novos e emocionantes DApps na rede TRON1. 1 V1.0 está disponível em https://tron.network/static/doc/white_paper_v_1_0.pdf
1.4 Terminologia
Endereço/carteira Um endereço ou carteira que consiste em credenciais de conta na rede TRON é gerado por um par de chaves, que consiste em uma chave privada e uma chave pública, sendo esta última derivada da primeira através de um algoritmo. A chave pública é geralmente usada para criptografia de chave de sessão, assinatura verificação e criptografia de dados que poderiam ser descriptografados por uma chave privada correspondente.
ABI Uma interface binária de aplicativo (ABI) é uma interface entre dois módulos de programa binário; normalmente um desses módulos é uma biblioteca ou recurso do sistema operacional e o outro é uma execução do usuário programa.
API Uma interface de programação de aplicativos (API) é usada principalmente para desenvolvimento de clientes de usuários. Com API suporte, plataformas de emissão token também podem ser projetadas pelos próprios desenvolvedores.
Ativo Nos documentos de TRON, o ativo é igual a token, que também é indicado como TRC-10 token.
Pontos de largura de banda (BP) Para manter a rede operando sem problemas, as transações da rede TRON usam a BP como combustível. Cada conta recebe 5.000 BP diários gratuitos e mais podem ser obtidos congelando TRX para BP. TRX e TRC-10 token transferências são transações normais que custam BP. Implantação e execução de contratos inteligentes as transações consomem tanto BP quanto Energia.
Bloquear Os blocos contêm os registros digitais das transações. Um bloco completo consiste no número mágico, tamanho do bloco, cabeçalho do bloco, contador de transações e dados de transação.
Recompensa de bloco As recompensas de produção de blocos são enviadas para uma subconta (endereço/carteira). Superrepresentantes podem reivindicar suas recompensas no Tronscan ou diretamente através da API.
Cabeçalho do bloco Um cabeçalho de bloco faz parte de um bloco. Os cabeçalhos dos blocos TRON contêm o hash do bloco anterior, o Raiz Merkle, carimbo de data/hora, versão e endereço da testemunha.Carteira Fria A carteira fria, também conhecida como carteira offline, mantém a chave privada completamente desconectada de qualquer rede. As carteiras frias são geralmente instaladas em dispositivos "frios" (por exemplo, computadores ou telefones celulares). permanecer offline) para garantir a segurança da chave privada TRX.
DApp Aplicativo descentralizado é um aplicativo que opera sem uma parte centralmente confiável. Um aplicativo que permite interação/acordos/comunicação direta entre usuários finais e/ou recursos sem intermediário.
gRPC gRPC (gRPC Remote Procedure Calls) é um sistema de chamada de procedimento remoto (RPC) de código aberto 2 inicialmente desenvolvido no Google. Ele usa HTTP/2 para transporte, buffers de protocolo como interface linguagem de descrição e fornece recursos como autenticação, streaming bidirecional e fluxo controle, ligações bloqueadoras ou não bloqueadoras e cancelamento e tempos limite. Ele gera ligações de cliente e servidor de plataforma cruzada para vários idiomas. Cenários de uso mais comuns incluem a conexão de serviços em arquitetura estilo microsserviços e a conexão de dispositivos móveis, e clientes de navegador para serviços de back-end.
Carteira quente A carteira quente, também conhecida como carteira online, permite que a chave privada do usuário seja usada online, podendo assim ser suscetível a vulnerabilidades potenciais ou interceptação por atores mal-intencionados.
JDK Java Development Kit é o Java SDK usado para aplicativos Java. É o núcleo do Java desenvolvimento, compreendendo o ambiente de aplicação Java (biblioteca de classes JVM + Java) e Java ferramentas.
KhaosDB TRON possui um KhaosDB na memória do nó completo que pode armazenar todas as cadeias recém-bifurcadas geradas dentro de um determinado período de tempo e ajuda as testemunhas a mudar rapidamente de sua própria cadeia ativa em uma nova cadeia principal. Consulte 2.2.2 Armazenamento de estado para obter mais detalhes.
NívelDB O LevelDB foi inicialmente adotado com o objetivo principal de atender aos requisitos de R/W rápido e rápido desenvolvimento. Após lançar a Mainnet, TRON atualizou seu banco de dados para um totalmente customizado um atendia às suas próprias necessidades. Consulte 2.2.1 Armazenamento Blockchain para obter mais detalhes.
Raiz Merkel Uma raiz Merkle é o hash de todos os hashes de todas as transações incluídas como parte de um bloco em um blockchain rede. Consulte 3.1 Prova de participação delegada (DPoS) para obter mais detalhes. 2 https://en.wikipedia.org/wiki/GRPC

Rede de teste pública (Shasta) Uma versão da rede executada em uma configuração de nó único. Os desenvolvedores podem se conectar e testar recursos sem se preocupar com a perda econômica. Testnet tokens não têm valor e qualquer um pode solicite mais da torneira pública.
RPC
3
Na computação distribuída, uma chamada de procedimento remoto (RPC) ocorre quando um programa de computador causa um
procedimento (sub-rotina) para ser executado em um espaço de endereço diferente (geralmente em outro computador em
uma rede compartilhada), que é codificada como se fosse uma chamada de procedimento normal (local), sem o
programador codificando explicitamente os detalhes da interação remota.
Escalabilidade A escalabilidade é um recurso do protocolo TRON. É a capacidade de um sistema, rede ou processo de lidar com uma quantidade crescente de trabalho ou seu potencial será ampliado para acomodar esse crescimento.
SOL SUN substituiu drop como a menor unidade de TRX. 1 TRX = 1.000.000 SOL.
Taxa de transferência Alto rendimento é um recurso da TRON Mainnet. É medido em transações por segundo (TPS), ou seja, a capacidade máxima de transação em um segundo.
Carimbo de data e hora O tempo aproximado de produção do bloco é registrado como timestamp Unix, que é o número de milissegundos decorridos desde 00:00:00 de 01 de janeiro de 1970 UTC.
TKC Configuração de token.
TRC-10 Um padrão de criptografia token na plataforma TRON. Certas regras e interfaces devem ser seguidas ao realizar uma oferta inicial de moedas em TRON blockchain.
TRX TRX significa Tronix, que é a criptomoeda oficial de TRON.
3 https://en.wikipedia.org/wiki/Remote_procedure_call
Einführung
1.1 Vision
TRON ist ein ehrgeiziges Projekt, das sich der Einrichtung eines wirklich dezentralen Internets widmet
Infrastruktur. Das TRON-Protokoll, eines der größten blockchain-basierten Betriebssysteme in der Welt
Welt, bietet öffentliche blockchain Unterstützung für hohen Durchsatz, hohe Skalierbarkeit und hohe Verfügbarkeit für
alle dezentralen Anwendungen (DApps) im TRON-Ökosystem. Die Übernahme von. im Juli 2018
BitTorrent festigte die Führungsrolle von TRON bei der Verfolgung eines dezentralen Ökosystems weiter.
1.2 Hintergrund
Die Einführung von Bitcoin im Jahr 2009 revolutionierte die gesellschaftliche Wahrnehmung des traditionellen Finanzwesens System im Zuge der Großen Rezession (2007-2008). Als zentralisierte Hedgefonds und Banken brach aufgrund von Spekulationen mit undurchsichtigen Finanzderivaten zusammen, blockchain Technologie lieferte a transparentes Universalbuch, aus dem jeder Transaktionsinformationen abrufen kann. Die Transaktionen wurden mithilfe eines Proof of Work (PoW)-Konsensmechanismus kryptografisch gesichert, Dadurch werden Probleme mit doppelten Ausgaben verhindert.
Ende 2013 wurde im Whitepaper Ethereum ein Netzwerk vorgeschlagen, in dem smart contracts und a Turing-vollständige Ethereum Virtual Machine (EVM) würde es Entwicklern ermöglichen, mit der zu interagieren Netzwerk über DApps. Da jedoch die Transaktionsvolumina in Bitcoin und Ethereum im Jahr 2017 ihren Höhepunkt erreichten, Dies war an den geringen Transaktionsdurchlaufzeiten und hohen Transaktionsgebühren erkennbar Kryptowährungen wie Bitcoin und Ethereum waren in ihrem derzeitigen Zustand nicht für die weite Verbreitung skalierbar Adoption. Daher wurde TRON gegründet und als innovative Lösung für diese Pressungen konzipiert Skalierbarkeitsherausforderungen.

1.3 Geschichte Die TRON DAO wurde im Juli 2017 in Singapur gegründet. Im Dezember 2017 hatte TRON hat sein Open-Source-Protokoll eingeführt. Das waren Testnet, Blockchain Explorer und Web Wallet gestartet im März 2018. TRON Mainnet startete kurz darauf im Mai 2018 und markierte damit den Odyssey 2.0-Veröffentlichung als technischer Meilenstein. Im Juni 2018 erklärte TRON seine Unabhängigkeit mit der Schaffung des Genesis-Blocks, zusammen mit der Übernahme von BitTorrent im Juli 2018. In Im Oktober 2018 brachte TRON die TRON Virtual Machine (TVM) auf den Markt, ein komplettes Entwickler-Toolset. und 360-Support-System. Die TRON-Roadmap beinhaltet die Zusammenführung der 100 Millionen BitTorrent-Benutzer mit dem TRON-Netzwerk über Project Atlas sowie Förderung der Entwickler-Community beim Start aufregende neue DApps im Netzwerk TRON1. 1 V1.0 ist verfügbar unter https://tron.network/static/doc/white_paper_v_1_0.pdf

1.4 Terminologie
Adresse/Geldbörse Eine Adresse oder ein Wallet, bestehend aus Kontoanmeldeinformationen im Netzwerk TRON, wird von a generiert Schlüsselpaar, das aus einem privaten Schlüssel und einem öffentlichen Schlüssel besteht, wobei letzterer vom ersteren abgeleitet ist durch einen Algorithmus. Der öffentliche Schlüssel wird normalerweise für die Verschlüsselung des Sitzungsschlüssels und die Signatur verwendet Verifizierung und Verschlüsselung von Daten, die mit einem entsprechenden privaten Schlüssel entschlüsselt werden könnten.
ABI Eine Application Binary Interface (ABI) ist eine Schnittstelle zwischen zwei binären Programmmodulen; normalerweise Eines dieser Module ist eine Bibliothek oder eine Betriebssystemfunktion, das andere wird vom Benutzer ausgeführt Programm.
API Eine Anwendungsprogrammierschnittstelle (API) wird hauptsächlich für die Entwicklung von Benutzerclients verwendet. Mit API Unterstützung können token-Ausgabeplattformen auch von Entwicklern selbst entworfen werden.
Vermögenswert In den Dokumenten von TRON ist der Vermögenswert derselbe wie token, der auch als TRC-10 token bezeichnet wird.
Bandbreitenpunkte (BP) Um den reibungslosen Betrieb des Netzwerks zu gewährleisten, nutzen TRON Netzwerktransaktionen BP als Treibstoff. Jedes Konto erhält 5000 kostenlose tägliche BP und mehr können durch das Einfrieren von TRX für BP erhalten werden. Sowohl TRX als auch TRC-10 token Überweisungen sind normale Transaktionen, die BP kosten. Intelligente Vertragsbereitstellung und -ausführung Transaktionen verbrauchen sowohl BP als auch Energie.
Blockieren Blöcke enthalten die digitalen Aufzeichnungen von Transaktionen. Ein vollständiger Block besteht aus der magischen Zahl, Blockgröße, Blockheader, Transaktionszähler und Transaktionsdaten.
Belohnung blockieren Blockproduktionsprämien werden an ein Unterkonto (Adresse/Wallet) gesendet. Supervertreter können Fordern Sie ihre Prämien auf Tronscan oder direkt über die API an.
Block-Header Ein Blockheader ist Teil eines Blocks. TRON-Blockheader enthalten die hash des vorherigen Blocks Merkle-Wurzel, Zeitstempel, Version und Zeugenadresse.Kalte Geldbörse Cold Wallet, auch Offline-Wallet genannt, hält den privaten Schlüssel vollständig von anderen getrennt Netzwerk. Cold Wallets werden in der Regel auf „kalten“ Geräten (z. B. Computern oder Mobiltelefonen) installiert offline bleiben), um die Sicherheit des privaten TRX-Schlüssels zu gewährleisten.
DApp Eine dezentrale Anwendung ist eine App, die ohne eine zentral vertrauenswürdige Partei funktioniert. Eine Bewerbung Dies ermöglicht eine direkte Interaktion/Vereinbarung/Kommunikation zwischen Endbenutzern und/oder Ressourcen ohne Zwischenhändler.
gRPC gRPC (gRPC Remote Procedure Calls) ist ein Open-Source-RPC-System (Remote Procedure Call). 2 ursprünglich bei Google entwickelt. Es verwendet HTTP/2 für den Transport, Protokollpuffer als Schnittstelle Beschreibungssprache und bietet Funktionen wie Authentifizierung, bidirektionales Streaming und Fluss Kontrolle, blockierende oder nicht blockierende Bindungen sowie Abbruch und Zeitüberschreitungen. Es erzeugt plattformübergreifende Client- und Serverbindungen für viele Sprachen. Die häufigsten Nutzungsszenarien Dazu gehören die Verbindung von Diensten in einer Microservices-Architektur und die Verbindung mobiler Geräte Browser-Clients bis hin zu Backend-Diensten.
Heiße Geldbörse Hot Wallet, auch Online-Wallet genannt, ermöglicht die Online-Nutzung des privaten Schlüssels des Benutzers anfällig für potenzielle Schwachstellen oder das Abfangen durch böswillige Akteure.
JDK Java Development Kit ist das Java SDK, das für Java-Anwendungen verwendet wird. Es ist der Kern von Java Entwicklung, bestehend aus der Java-Anwendungsumgebung (JVM+Java-Klassenbibliothek) und Java Werkzeuge.
KhaosDB TRON verfügt über eine KhaosDB im Vollknotenspeicher, die alle generierten neu gegabelten Ketten speichern kann innerhalb eines bestimmten Zeitraums und unterstützt Zeugen beim schnellen Wechsel aus der eigenen aktiven Kette in eine neue Hauptkette. Weitere Einzelheiten finden Sie unter 2.2.2 Zustandsspeicherung.
LevelDB LevelDB wurde ursprünglich mit dem primären Ziel eingeführt, die Anforderungen an schnelles Lesen/Schreiben und schnelles Lesen zu erfüllen Entwicklung. Nach dem Start des Mainnets hat TRON seine Datenbank auf eine vollständig angepasste aktualisiert Man geht auf seine ganz eigenen Bedürfnisse ein. Weitere Einzelheiten finden Sie unter 2.2.1 Blockchain-Speicher.
Merkle-Wurzel Eine Merkle-Wurzel ist der hash aller hashes aller Transaktionen, die als Teil eines Blocks in einem blockchain enthalten sind. Netzwerk. Weitere Einzelheiten finden Sie unter 3.1 Delegierter Nachweis des Einsatzes (DPoS). 2 https://en.wikipedia.org/wiki/GRPC
Öffentliches Testnetz (Shasta) Eine Version des Netzwerks, die in einer Einzelknotenkonfiguration ausgeführt wird. Entwickler können sich verbinden und testen Funktionen, ohne sich Gedanken über den wirtschaftlichen Verlust machen zu müssen. Testnet tokens haben keinen Wert und jeder kann es tun Fordern Sie mehr über den öffentlichen Wasserhahn an.
RPC
3
Beim verteilten Rechnen liegt ein Remoteprozeduraufruf (RPC) vor, wenn ein Computerprogramm eine Aktion auslöst
Prozedur (Unterroutine), die in einem anderen Adressraum (üblicherweise auf einem anderen Computer) ausgeführt werden soll
ein gemeinsam genutztes Netzwerk), das so codiert ist, als wäre es ein normaler (lokaler) Prozeduraufruf, ohne das
Der Programmierer codiert explizit die Details für die Remote-Interaktion.
Skalierbarkeit Skalierbarkeit ist eine Funktion des TRON-Protokolls. Es ist die Fähigkeit eines Systems, Netzwerks oder Prozesses, dies zu tun ein wachsendes Arbeitsvolumen zu bewältigen oder sein Potenzial zu erweitern, um diesem Wachstum gerecht zu werden.
SONNE SUN ersetzte Drop als kleinste Einheit von TRX. 1 TRX = 1.000.000 SUN.
Durchsatz Hoher Durchsatz ist eine Funktion von TRON Mainnet. Es wird in Transaktionen pro Sekunde (TPS) gemessen. nämlich die maximale Transaktionskapazität in einer Sekunde.
Zeitstempel Der ungefähre Zeitpunkt der Blockproduktion wird als Unix-Zeitstempel aufgezeichnet, der die Anzahl angibt Millisekunden, die seit dem 1. Januar 1970, 00:00:00 UTC, vergangen sind.
TKC Token-Konfiguration.
TRC-10 Ein Krypto-Standard token auf der Plattform TRON. Bestimmte Regeln und Schnittstellen müssen beachtet werden bei einem Initial Coin Offering am TRON blockchain.
TRX TRX steht für Tronix, die offizielle Kryptowährung von TRON.
3 https://en.wikipedia.org/wiki/Remote_procedure_call
Arquitetura
TRON adota uma arquitetura de 3 camadas dividida em camada de armazenamento, camada central e camada de aplicativo. O protocolo TRON segue o Google Protobuf, que oferece suporte intrínseco a vários idiomas extensão.

Figura 1: TRON Arquitetura de 3 camadas
2.1 Núcleo
Existem vários módulos na camada principal, incluindo smart contracts, gerenciamento de contas e consenso. Uma máquina virtual baseada em pilha é implementada em TRON e uma instrução otimizada conjunto é usado. Para melhor oferecer suporte aos desenvolvedores de DApp, Solidity foi escolhido como smart contract 4 idioma, seguido de suporte futuro para outros idiomas avançados. Além disso, o consenso de TRON mecanismo é baseado em Prova de Participação Delegada (DPoS) e muitas inovações foram feitas em para atender aos seus requisitos exclusivos. 2.2 Armazenamento
TRON projetou um protocolo exclusivo de armazenamento distribuído que consiste em Block Storage e State Armazenamento. A noção de banco de dados gráfico foi introduzida no design da camada de armazenamento para atender melhor à necessidade de armazenamento diversificado de dados no mundo real. 2.2.1 Armazenamento Blockchain
TRON blockchain armazenamento opta por usar LevelDB, que é desenvolvido pelo Google e comprovado sucesso com muitas empresas e projetos. Possui alto desempenho e suporta bytes arbitrários matrizes como chaves e valores, obtenção, colocação e exclusão singular, colocação e exclusão em lote, bidirecional iteradores e compactação simples usando o algoritmo Snappy muito rápido. 2.2.2 Armazenamento de Estado
TRON possui um KhaosDB na memória do nó completo que pode armazenar todas as cadeias recém-bifurcadas geradas dentro de um determinado período de tempo e ajuda as testemunhas a mudar rapidamente de sua própria cadeia ativa em uma nova cadeia principal. Ele também pode proteger o armazenamento blockchain, tornando-o mais estável contra terminando anormalmente em um estado intermediário. 2.3 Aplicação
Os desenvolvedores podem criar uma grande variedade de DApps e carteiras personalizadas em TRON. Desde TRON permite que smart contracts sejam implantados e executados, as oportunidades de aplicativos utilitários são ilimitado. 4 Documentação oficial do Solidity: https://solidity.readthedocs.io/
2.4 Protocolo
O protocolo TRON adere aos Google Protocol Buffers , que é um protocolo neutro em termos de linguagem, plataforma e 5 e extensível de serializar dados estruturados para uso em protocolos de comunicação, armazenamento de dados, e muito mais. 2.4.1 Buffers de Protocolo
Protocol Buffers (Protobuf) é um mecanismo flexível, eficiente e automatizado para serializar dados estruturados. dados, semelhantes a JSON ou XML, mas muito menores, mais rápidos e mais simples.
As definições de protobuf (.proto) podem ser usadas para gerar código para C++, Java, C#, Python, Ruby, Linguagens Golang e Objective-C por meio dos geradores de código oficiais. Vários terceiros implementações também estão disponíveis para muitos outros idiomas. Protobuf facilita o desenvolvimento para clientes unificando as definições da API e também otimizando as transferências de dados. Os clientes podem usar a API .proto do repositório de protocolo de TRON e integrado por meio do código gerado automaticamente bibliotecas.
Como comparação, os buffers de protocolo são de 3 a 10 vezes menores e de 20 a 100 vezes mais rápidos que o XML, com sintaxe menos ambígua. Protobuf gera classes de acesso a dados mais fáceis de usar programaticamente. 2.4.2HTTP
TRON O protocolo fornece uma API RESTful HTTP alternativa à API Protobuf. Eles compartilham o mesmo interface, mas a API HTTP pode ser facilmente usada em clientes javascript. 2.5 TRON Máquina Virtual (TVM)
O TVM é uma máquina virtual Turing completa e leve desenvolvida para o ecossistema de TRON. O
A TVM se conecta perfeitamente com o ecossistema de desenvolvimento existente para fornecer milhões de recursos globais
desenvolvedores com um sistema blockchain personalizado que é eficiente, conveniente, estável, seguro e
escalável.
2.6 Exchange Descentralizada (DEX)
5 Documentação oficial dos buffers de protocolo do Google: https://developers.google.com/protocol-buffers/A rede TRON oferece suporte nativo a funções de exchange descentralizadas. Uma exchange descentralizada consiste em vários pares de negociação. Um par de negociação (notação “Exchange”) é um mercado de câmbio entre TRC-10 tokens, ou entre um TRC-10 token e TRX. Qualquer conta pode criar uma negociação par entre quaisquer tokens, mesmo que o mesmo par já exista na rede TRON. Negociação e as flutuações de preços dos pares de negociação seguem o Protocolo Bancor. A rede TRON estipula que 6 os pesos dos dois tokens em todos os pares de negociação são iguais, então a proporção de seus saldos é o preço entre eles. Por exemplo, considere um par comercial contendo dois tokens, ABC e DEF. ABC tem um saldo de 10 milhões e o DEF tem um saldo de 1 milhão. Como seus pesos são iguais, 10 ABC = 1 DEF. Isso significa que a proporção de ABC para DEF é de 10 ABC por DEF. 2.7 Implementação
O código TRON blockchain é implementado em Java e era originalmente uma bifurcação de EthereumJ.
6 Site oficial do Protocolo Bancor: https://about.bancor.network/protocol/
Architektur
TRON verwendet eine dreischichtige Architektur, die in Speicherschicht, Kernschicht und Anwendungsschicht unterteilt ist. Das TRON-Protokoll folgt Google Protobuf, das von Natur aus Mehrsprachen unterstützt Erweiterung.

Abbildung 1: TRON 3-Schicht-Architektur
2.1 Kern
In der Kernschicht gibt es mehrere Module, darunter smart contracts, Kontoverwaltung und Konsens. Eine stapelbasierte virtuelle Maschine wird auf TRON und einer optimierten Anweisung implementiert Satz verwendet wird. Um DApp-Entwickler besser zu unterstützen, wurde Solidity als smart contract ausgewählt. 4 Sprache, gefolgt von der zukünftigen Unterstützung anderer fortgeschrittener Sprachen. Darüber hinaus der Konsens von TRON Der Mechanismus basiert auf dem Delegated Proof of Stake (DPoS) und viele Innovationen wurden vorgenommen um seinen individuellen Anforderungen gerecht zu werden. 2.2 Lagerung
TRON hat ein einzigartiges verteiltes Speicherprotokoll entwickelt, das aus Blockspeicher und Status besteht Lagerung. Der Begriff einer Graphdatenbank wurde in das Design der Speicherschicht eingeführt den Bedarf an diversifizierter Datenspeicherung in der realen Welt besser erfüllen. 2.2.1 Blockchain-Speicher
TRON blockchain Speicher entscheidet sich für die Verwendung von LevelDB, das von Google entwickelt und bewährt wurde erfolgreich bei vielen Unternehmen und Projekten. Es verfügt über eine hohe Leistung und unterstützt beliebige Bytes Arrays sowohl als Schlüssel als auch als Werte, singuläres Abrufen, Einfügen und Löschen, gestapeltes Einfügen und Löschen, bidirektional Iteratoren und einfache Komprimierung mit dem sehr schnellen Snappy-Algorithmus. 2.2.2 Zustandsspeicher
TRON verfügt über eine KhaosDB im Vollknotenspeicher, die alle neu generierten gegabelten Ketten speichern kann innerhalb eines bestimmten Zeitraums und unterstützt Zeugen beim schnellen Wechsel aus der eigenen aktiven Kette in eine neue Hauptkette. Es kann auch den Speicher blockchain schützen, indem es ihn stabiler macht endet abnormal in einem Zwischenzustand. 2.3 Anwendung
Entwickler können auf TRON eine Vielzahl von DApps und benutzerdefinierten Wallets erstellen. Seit TRON ermöglicht die Bereitstellung und Ausführung von smart contracts, die Möglichkeiten von Dienstprogrammanwendungen sind groß unbegrenzt. 4 Offizielle Solidity-Dokumentation: https://solidity.readthedocs.io/
2.4 Protokoll
Das TRON-Protokoll folgt Google Protocol Buffers, einem sprach- und plattformneutralen Protokoll. 5 und erweiterbare Möglichkeit zur Serialisierung strukturierter Daten zur Verwendung in Kommunikationsprotokollen, Datenspeicherung, und mehr. 2.4.1 Protokollpuffer
Protocol Buffers (Protobuf) ist ein flexibler, effizienter und automatisierter Mechanismus zur Serialisierung strukturierter Daten Daten, ähnlich wie JSON oder XML, aber viel kleiner, schneller und einfacher.
Protobuf-Definitionen (.proto) können zum Generieren von Code für C++, Java, C#, Python, Ruby, Golang- und Objective-C-Sprachen über die offiziellen Codegeneratoren. Diverse Drittanbieter Implementierungen sind auch für viele andere Sprachen verfügbar. Protobuf erleichtert die Entwicklung für Clients durch Vereinheitlichung der API-Definitionen und Optimierung der Datenübertragung. Kunden können die API nutzen .proto aus dem Protokoll-Repository von TRON herunterladen und über den automatisch generierten Code integrieren Bibliotheken.
Im Vergleich dazu ist Protocol Buffers 3 bis 10 Mal kleiner und 20 bis 100 Mal schneller als XML. mit weniger mehrdeutiger Syntax. Protobuf generiert Datenzugriffsklassen, die einfacher zu verwenden sind programmatisch. 2.4.2 HTTP
Das TRON-Protokoll bietet eine RESTful-HTTP-API-Alternative zur Protobuf-API. Sie teilen dasselbe Schnittstelle, aber die HTTP-API kann problemlos in Javascript-Clients verwendet werden. 2.5 TRON Virtuelle Maschine (TVM)
Der TVM ist eine leichte, vollständige virtuelle Turing-Maschine, die für das Ökosystem von TRON entwickelt wurde. Die
TVM verbindet sich nahtlos mit dem bestehenden Entwicklungsökosystem, um Millionen von Menschen auf der ganzen Welt bereitzustellen
Entwicklern ein maßgeschneidertes blockchain-System zur Verfügung, das effizient, bequem, stabil, sicher und effizient ist
skalierbar.
2.6 Dezentraler Austausch (DEX)
5 Offizielle Dokumentation zu Google Protocol Buffers: https://developers.google.com/protocol-buffers/Das Netzwerk TRON unterstützt nativ dezentrale Austauschfunktionen. Eine dezentrale Börse besteht aus mehreren Handelspaaren. Ein Handelspaar (Bezeichnung „Börse“) ist ein Börsenmarkt zwischen TRC-10 tokens oder zwischen einem TRC-10 token und TRX. Jedes Konto kann einen Handel erstellen Paar zwischen beliebigen tokens, auch wenn das gleiche Paar bereits im TRON-Netzwerk vorhanden ist. Handel und Preisschwankungen der Handelspaare folgen dem Bancor-Protokoll. Das Netzwerk TRON schreibt dies vor 6 Die Gewichte der beiden tokens in allen Handelspaaren sind gleich, daher ist das Verhältnis ihrer Salden der Preis zwischen ihnen. Betrachten Sie beispielsweise ein Handelspaar mit zwei tokens, ABC und DEF. ABC hat ein Saldo von 10 Millionen und DEF hat einen Saldo von 1 Million. Da ihre Gewichte gleich sind, ist 10 ABC = 1 DEF. Das bedeutet, dass das Verhältnis von ABC zu DEF 10 ABC pro DEF beträgt. 2.7 Umsetzung
Der Code TRON blockchain ist in Java implementiert und war ursprünglich ein Fork von EthereumJ.
6 Offizielle Website des Bancor-Protokolls: https://about.bancor.network/protocol/
Consenso
3.1 Prova de Participação Delegada (DPoS)
O mecanismo de consenso mais antigo é o mecanismo de consenso Prova de Trabalho (PoW). Isto o protocolo está atualmente implementado em Bitcoin e Ethereum . Em sistemas PoW, as transações 7 8 transmitidos pela rede são agrupados em blocos nascentes para confirmação do minerador. O O processo de confirmação envolve hashing transações usando algoritmos criptográficos hashing até que um A raiz merkle foi alcançada, criando uma árvore merkle:
Figura 2: 8 transações TRX são hash inseridas na raiz merkle. Essa raiz merkle é então incluída no cabeçalho do bloco, que é anexado aos blocos previamente confirmados para formar um blockchain. Isso permite um rastreamento fácil e transparente de transações, carimbos de data/hora e outras informações relacionadas.
7 Bitcoin documento técnico: https://bitcoin.org/bitcoin.pdf 8 Ethereum documento técnico: https://github.com/ethereum/wiki/wiki/White-Paper
Algoritmos criptográficos hashing são úteis na prevenção de ataques à rede porque possuem
várias propriedades:
9
●
Tamanho do comprimento de entrada/saída - O algoritmo pode passar uma entrada de qualquer tamanho e
gera um valor hash de comprimento fixo.
●
Eficiência - O algoritmo é relativamente fácil e rápido de calcular.
●
Resistência de pré-imagem - Para uma determinada saída z, é impossível encontrar qualquer entrada x tal que
h(x) = z. Em outras palavras, o algoritmo hashing h(x) é uma função unidirecional em que apenas o
a saída pode ser encontrada, dada uma entrada. O inverso não é possível.
●
Resistência à colisão - É computacionalmente inviável encontrar quaisquer pares x1 ≠ x2 tais que h(x1)
=h(x2). Em outras palavras, a probabilidade de encontrar duas entradas diferentes hash na mesma
a saída é extremamente baixa. Esta propriedade também implica segunda resistência de pré-imagem.
●
Segunda resistência de pré-imagem - Dado x1, e portanto h(x1), é computacionalmente inviável
encontre qualquer x2 tal que h(x1) = h(x2). Embora esta propriedade seja semelhante à resistência à colisão, o
propriedade difere porque diz que um invasor com um determinado x1 irá encontrá-lo computacionalmente
inviável encontrar qualquer x2 hashing para a mesma saída.
●
Determinístico - mapeia cada entrada para uma e apenas uma saída.
●
Efeito Avalanche - uma pequena alteração na entrada resulta em uma saída totalmente diferente.
Estas propriedades conferem à rede de criptomoedas o seu valor intrínseco, garantindo que os ataques não comprometer a rede. Quando os mineradores confirmam um bloqueio, eles são recompensados com tokens como um recurso integrado incentivo à participação na rede. No entanto, à medida que a capitalização do mercado global de criptomoedas aumentou constantemente, os mineiros tornaram-se centralizados e concentraram seus recursos de computação em acumular tokens como ativos, e não para fins de participação na rede. Os mineradores de CPU deram lugar a GPUs, que por sua vez deram lugar a poderosos ASICs. Em um estudo notável, o poder total o consumo de mineração Bitcoin foi estimado em até 3 GW, comparável ao da Irlanda 10 consumo de energia. Este mesmo estudo projetou que o consumo total de energia atingirá 8 GW no próximo futuro.
Para resolver a questão do desperdício de energia, o mecanismo de consenso Proof of Stake (PoS) foi proposto por muitas novas redes. Em redes PoS, os titulares de token bloqueiam seus saldos token para se tornarem bloqueados validators. Os validators se revezam propondo e votando no próximo bloco. No entanto, o problema com PoS padrão é que a influência de validator se correlaciona diretamente com a quantidade de tokens bloqueados. Isto resulta em partes que acumulam grandes quantidades da moeda base da rede e exercem indevidamente influência no ecossistema da rede.
O mecanismo de consenso TRON usa um sistema inovador de Prova de Participação Delegada no qual 27
Super Representantes (SRs) produzem blocos para a rede. A cada 6 horas, titulares de contas TRX
que congelam suas contas podem votar em uma seleção de candidatos SR, com os 27 principais candidatos
considerados os SRs. Os eleitores podem escolher RS com base em critérios como projetos patrocinados por RS para
9 PAAR, C., PELZL, J., Compreendendo a criptografia: um livro didático para estudantes e profissionais, 2010 ed.
Springer-Verlag Berlim Heidelberg, 2010.
10 https://www.sciencedirect.com/science/article/pii/S2542435118301776aumentar a adoção do TRX e recompensas distribuídas aos eleitores. Isto permite um ambiente mais democratizado e
ecossistema descentralizado. As contas dos SRs são contas normais, mas a sua acumulação de votos
lhes permite produzir blocos. Com as baixas taxas de transferência de Bitcoin e Ethereum devido à sua
Mecanismo de consenso PoW e problemas de escalabilidade, o sistema TRON de DPoS oferece um inovador
mecanismo resultando em 2000 TPS em comparação com Bitcoin 3 TPS e Ethereum 15 TPS.
A rede do protocolo TRON gera um bloco a cada três segundos, com cada bloco concedendo 32 TRX para Super Representantes. Um total de 336.384.000 TRX serão concedidos anualmente aos 27 SRs. Cada vez que um SR termina a produção do bloco, as recompensas são enviadas para uma subconta no super-razão. Os SRs podem verificar, mas não fazer uso direto desses TRX tokens. Um saque pode ser feito por cada SR uma vez a cada 24 horas, transferindo as recompensas da subconta para o SR especificado conta.
Os três tipos de nós na rede TRON são Witness Node, Full Node e Solidity Node. Os nós testemunhas são configurados pelos SRs e são os principais responsáveis pela produção e proposta de blocos criação/votação. Nós completos fornecem APIs e transações e blocos de transmissão. Sincronização de nós de solidez blocos de outros Full Nodes e também fornecem APIs indexáveis.
Konsens
3.1 Delegierter Nachweis des Einsatzes (DPoS)
Der früheste Konsensmechanismus ist der Proof of Work (PoW)-Konsensmechanismus. Dies Das Protokoll ist derzeit in Bitcoin und Ethereum implementiert. In PoW-Systemen Transaktionen 7 8 Über das Netzwerk gesendete Daten werden zur Bestätigung durch den Miner in neu entstehende Blöcke gruppiert. Die Der Bestätigungsprozess umfasst das hashing von Transaktionen mithilfe kryptografischer hashing-Algorithmen, bis a Die Merkle-Wurzel wurde erreicht, wodurch ein Merkle-Baum erstellt wurde:
Abbildung 2: 8 TRX-Transaktionen werden im Merkle-Root hashed. Diese Merkle-Wurzel wird dann in den Block-Header eingefügt, der wird an die zuvor bestätigten Blöcke angehängt, um einen blockchain zu bilden. Dies ermöglicht eine einfache und transparente Nachverfolgung Transaktionen, Zeitstempel und andere verwandte Informationen.
7 Bitcoin Whitepaper: https://bitcoin.org/bitcoin.pdf 8 Ethereum Whitepaper: https://github.com/ethereum/wiki/wiki/White-Paper
Kryptografische Algorithmen sind bei der Verhinderung von Netzwerkangriffen nützlich, da sie Folgendes besitzen
mehrere Eigenschaften:
9
●
Größe der Eingabe-/Ausgabelänge – Der Algorithmus kann eine Eingabe beliebiger Länge und Größe übergeben
gibt einen Wert mit fester Länge hash aus.
●
Effizienz: Der Algorithmus ist relativ einfach und schnell zu berechnen.
●
Urbildwiderstand – Für einen gegebenen Ausgang z ist es unmöglich, einen solchen Eingang x zu finden
h(x) = z. Mit anderen Worten, der hashing-Algorithmus h(x) ist eine Einwegfunktion, in der nur die
Ausgabe kann gefunden werden, wenn eine Eingabe gegeben ist. Das Umgekehrte ist nicht möglich.
●
Kollisionswiderstand – Es ist rechnerisch nicht möglich, Paare x1 ≠ x2 zu finden, so dass h(x1)
= h(x2). Mit anderen Worten, die Wahrscheinlichkeit, zwei unterschiedliche Eingaben zu finden, die auf denselben Wert verweisen
Die Leistung ist extrem gering. Diese Eigenschaft impliziert auch einen Widerstand gegen das zweite Urbild.
●
Zweiter Urbildwiderstand: Bei gegebenem x1 und damit h(x1) ist dies rechnerisch nicht möglich
Finden Sie ein beliebiges x2 mit h(x1) = h(x2). Während diese Eigenschaft der Kollisionsbeständigkeit ähnelt, ist die
Die Eigenschaft unterscheidet sich darin, dass sie besagt, dass ein Angreifer mit einem bestimmten x1 es rechnerisch finden wird
Es ist unmöglich, x2 hashzu finden, die zum gleichen Ausgang führen.
●
Deterministisch – ordnet jede Eingabe einer und nur einer Ausgabe zu.
●
Avalanche-Effekt – eine kleine Änderung der Eingabe führt zu einer völlig anderen Ausgabe.
Diese Eigenschaften verleihen dem Kryptowährungsnetzwerk seinen inneren Wert, indem sie dafür sorgen, dass es nicht zu Angriffen kommt das Netzwerk gefährden. Wenn Miner einen Block bestätigen, erhalten sie als integrierte Belohnung tokens Anreiz zur Netzwerkbeteiligung. Allerdings als die globale Marktkapitalisierung der Kryptowährung Die Zahl der Miner nahm stetig zu, die Miner wurden zentralisiert und konzentrierten ihre Rechenressourcen darauf Horten von tokens als Vermögenswerte und nicht für Zwecke der Netzwerkbeteiligung. CPU-Miner gaben nach GPUs, die wiederum leistungsstarken ASICs Platz machten. In einer bemerkenswerten Studie wurde die Gesamtleistung ermittelt Der Verbrauch von Bitcoin Bergbau wurde auf bis zu 3 GW geschätzt, vergleichbar mit Irland 10 Stromverbrauch. Dieselbe Studie geht davon aus, dass der Gesamtstromverbrauch in naher Zukunft 8 GW erreichen wird Zukunft.
Um das Problem der Energieverschwendung zu lösen, wurde der Proof of Stake (PoS)-Konsensmechanismus vorgeschlagen viele neue Netzwerke. In PoS-Netzwerken sperren token-Inhaber ihre token-Guthaben, um sie zu blockieren validators. Die validators schlagen abwechselnd den nächsten Block vor und stimmen darüber ab. Allerdings ist das Problem Beim Standard-PoS korreliert der Einfluss von validator direkt mit der Anzahl der gesperrten tokens. Dies führt dazu, dass die Parteien große Mengen der Basiswährung des Netzwerks horten und unrechtmäßig handeln Einfluss auf das Netzwerk-Ökosystem.
Der Konsensmechanismus TRON verwendet ein innovatives Delegated Proof of Stake-System, bei dem 27
Super Representatives (SRs) produzieren Blöcke für das Netzwerk. Alle 6 Stunden, TRX-Kontoinhaber
Wer sein Konto einfriert, kann für eine Auswahl von SR-Kandidaten stimmen, darunter die besten 27 Kandidaten
gelten als die SRs. Wähler können SRs auf der Grundlage von Kriterien auswählen, beispielsweise von Projekten, die von SRs gesponsert werden
9 PAAR, C., PELZL, J., Understanding Cryptography: A Textbook for Students and Practitioners, Ausgabe 2010.
Springer-Verlag Berlin Heidelberg, 2010.
10 https://www.sciencedirect.com/science/article/pii/S2542435118301776Erhöhen Sie die TRX-Akzeptanz und die Verteilung der Belohnungen an die Wähler. Dies ermöglicht eine stärkere Demokratisierung und
dezentrales Ökosystem. Die Konten der SRs sind normale Konten, aber ihre Ansammlung von Stimmen
ermöglicht es ihnen, Blöcke zu produzieren. Aufgrund der geringen Durchsatzraten von Bitcoin und Ethereum
PoW-Konsensmechanismus und Skalierbarkeitsprobleme: Das DPoS-System von TRON bietet eine Innovation
Mechanismus führt zu 2000 TPS im Vergleich zu 3 TPS von Bitcoin und 15 TPS von Ethereum.
Das Protokollnetzwerk TRON generiert alle drei Sekunden einen Block, wobei jeder Block 32 vergibt TRX an Supervertreter. Insgesamt werden jährlich 336.384.000 TRX an die 27 SRs vergeben. Jedes Mal, wenn ein SR die Blockproduktion abschließt, werden Belohnungen an ein Unterkonto im Super-Ledger gesendet. SRs können diese TRX tokens prüfen, aber nicht direkt nutzen. Ein Widerruf kann von jedem vorgenommen werden SR einmal alle 24 Stunden, wobei die Prämien vom Unterkonto auf den angegebenen SR übertragen werden Konto.
Die drei Knotentypen im Netzwerk TRON sind Witness Node, Full Node und Solidity Node. Zeugenknoten werden von SRs eingerichtet und sind hauptsächlich für die Blockproduktion und -vorschläge verantwortlich Erstellung/Abstimmung. Vollständige Knoten stellen APIs bereit und übertragen Transaktionen und Blöcke. Solidity-Knoten werden synchronisiert Blöcke von anderen Full Nodes und stellen auch indizierbare APIs bereit.
Conta
4.1 Tipos
Os três tipos de contas na rede TRON são contas normais, contas token e contas contratuais.
1.
Contas regulares são usadas para transações padrão.
2.
Contas de token são usadas para armazenar TRC-10 tokens.
3.
As contas de contrato são contas smart contract criadas por contas normais e podem ser
acionado por contas regulares também.
4.2 Criação
Existem três maneiras de criar uma conta TRON:
1. Crie uma nova conta através da API 2. Transfira TRX para um novo endereço de conta 3. Transfira qualquer TRC-10 token para um novo endereço de conta
Um par de chaves off-line composto por um endereço (chave pública) e uma chave privada, e não registrado pelo TRON rede, também pode ser gerada. O algoritmo de geração de endereço de usuário consiste em gerando um par de chaves e depois extraindo a chave pública (matriz de bytes de 64 bytes representando x, y coordenadas). Faça hash da chave pública usando a função SHA3-256 (o protocolo SHA3 adotado é KECCAK-256) e extraia os últimos 20 bytes do resultado. Adicione 41 ao início da matriz de bytes e certifique-se de que o comprimento do endereço inicial seja de 21 bytes. Hash o endereço duas vezes usando a função SHA3-256 e pegue os primeiros 4 bytes como código de verificação. Adicione o código de verificação ao final do inicial endereço e obtenha o endereço no formato base58check por meio da codificação base58. Um codificado O endereço da rede principal começa com T e tem 34 bytes de comprimento. 4.3 Estrutura
Os três tipos de conta diferentes são Normal, AssetIssue e Contrato. Uma conta contém 7 parâmetros:
1.
nome_da_conta: o nome desta conta – por exemplo. Conta de contas.
2.
tipo: que tipo é esta conta – por ex. 0 (significa tipo ‘Normal’).
3.
saldo: saldo desta conta – por ex. 4213312.
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;
}
Konto
4.1 Typen
Die drei Arten von Konten im TRON-Netzwerk sind reguläre Konten, token-Konten und Vertragskonten.
1.
Für Standardtransaktionen werden reguläre Konten verwendet.
2.
Token-Konten werden zum Speichern von TRC-10 tokens verwendet.
3.
Vertragskonten sind smart contract Konten, die von regulären Konten erstellt wurden und können
wird auch durch reguläre Konten ausgelöst.
4.2 Schöpfung
Es gibt drei Möglichkeiten, ein TRON-Konto zu erstellen:
1. Erstellen Sie über die API ein neues Konto 2. Übertragen Sie TRX auf eine neue Kontoadresse 3. Übertragen Sie alle TRC-10 token in eine neue Kontoadresse
Ein Offline-Schlüsselpaar, das aus einer Adresse (öffentlicher Schlüssel) und einem privaten Schlüssel besteht und nicht von der Adresse aufgezeichnet wird TRON Netzwerk, kann ebenfalls generiert werden. Der Algorithmus zur Generierung der Benutzeradresse besteht aus Erzeugen eines Schlüsselpaars und anschließendes Extrahieren des öffentlichen Schlüssels (64-Byte-Byte-Array, das x, y darstellt). Koordinaten). Hashen Sie den öffentlichen Schlüssel mithilfe der SHA3-256-Funktion (das verwendete SHA3-Protokoll ist). KECCAK-256) und extrahieren Sie die letzten 20 Bytes des Ergebnisses. Fügen Sie 41 am Anfang des Byte-Arrays hinzu und stellen Sie sicher, dass die anfängliche Adresslänge 21 Byte beträgt. Hashen Sie die Adresse zweimal mit der SHA3-256-Funktion und nehmen Sie die ersten 4 Bytes als Bestätigungscode. Fügen Sie den Bestätigungscode am Ende der Initiale hinzu Adresse und erhalten Sie die Adresse im Base58-Check-Format durch Base58-Codierung. Eine verschlüsselte Die Mainnet-Adresse beginnt mit T und ist 34 Byte lang. 4.3 Struktur
Die drei verschiedenen Kontotypen sind Normal, AssetIssue und Contract. Ein Konto enthält 7 Parameter:
1.
Kontoname: der Name für dieses Konto – z.B. RechnungenKonto.
2.
Typ: Um welchen Typ handelt es sich bei diesem Konto – z.B. 0 (steht für Typ „Normal“).
3.
Saldo: Saldo dieses Kontos – z.B. 4213312.
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;
}
Bloco
Um bloco normalmente contém um cabeçalho de bloco e diversas transações.
Protobuf data structure:
message Block {
BlockHeader block_header = 1;
repeated Transaction transactions = 2;
}
5.1 Cabeçalho do bloco
Um cabeçalho de bloco contém raw_data, witness_signature e 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 Dados Brutos
Os dados brutos são denotados como raw_data no Protobuf. Ele contém os dados brutos de uma mensagem, contendo 6 parâmetros:
1. timestamp: timestamp desta mensagem – por ex. 1543884429000. 2. txTrieRoot: a raiz da árvore Merkle – por exemplo. 7dacsa…3ed. 3. parentHash: o hash do último bloco – por exemplo. 7dacsa…3ed. 4. número: a altura do bloco – por ex. 4638708. 5. versão: reservada – por exemplo. 5.

6. testemunha_address: o endereço da testemunha compactada neste bloco – por exemplo. 41928c...4d21. 5.1.2 Assinatura da Testemunha
A assinatura da testemunha é denotada como witness_signature no Protobuf, que é a assinatura para este cabeçalho do bloco do nó testemunha. 5.1.3 ID do bloco
Block ID é denotado como blockID no Protobuf. Ele contém a identificação atômica de um bloco. Um bloco O ID contém 2 parâmetros: 1. hash: o hash do bloco. 2. número: o hash e a altura do bloco. 5.2 Transação 5.2.1 Assinatura
O processo de assinatura da transação de TRON segue um algoritmo criptográfico ECDSA padrão, com um
Curva de seleção SECP256K1. Uma chave privada é um número aleatório e a chave pública é um ponto na
curva elíptica. O processo de geração de chave pública consiste em primeiro gerar um número aleatório como um
chave privada e, em seguida, multiplicando o ponto base da curva elíptica pela chave privada para obter o
chave pública. Quando ocorre uma transação, os dados brutos da transação são primeiro convertidos em formato de byte.
Os dados brutos são então submetidos a SHA-256 hashing. A chave privada correspondente ao contrato
address então assina o resultado do SHA256 hash. O resultado da assinatura é então adicionado ao
transação.
5.2.2 Modelo de largura de banda
As transações comuns consomem apenas pontos de largura de banda, mas as operações smart contract consomem ambos pontos de energia e largura de banda. Existem dois tipos de pontos de largura de banda disponíveis. Os usuários podem ganhar pontos de largura de banda do congelamento do TRX, enquanto 5.000 pontos de largura de banda gratuitos também estão disponíveis diariamente.
Quando uma transação TRX é transmitida, ela é transmitida e armazenada na forma de uma matriz de bytes sobre a rede. Pontos de largura de banda consumidos por uma transação = número de bytes da transação multiplicado pela taxa de pontos de largura de banda. Por exemplo, se o comprimento da matriz de bytes de uma transação for 200, então a transação consome 200 pontos de largura de banda. No entanto, se uma transferência TRX ou token resultar em a conta de destino sendo criada, apenas os pontos de largura de banda consumidos para criar a conta serão deduzidos e pontos de largura de banda adicionais não serão deduzidos. Na criação de uma conta cenário, a rede consumirá primeiro os pontos de largura de banda que o iniciador da transação ganhoudo congelamento do TRX. Se esse valor for insuficiente, a rede consome a transação TRX do iniciador.
Em cenários padrão de transferência TRX de uma conta TRX para outra, a rede primeiro consome os pontos de largura de banda obtidos pelo iniciador da transação para congelar o TRX. Se isso for insuficiente, então consome dos 5.000 pontos de largura de banda diários gratuitos. Se isso ainda não for suficiente, então a rede consome o TRX do iniciador da transação. O valor é calculado pelo número de bytes em a transação multiplicada por 10 SUN. Assim, para a maioria dos detentores de TRX que podem não necessariamente congelar seu TRX para participar da votação SR, a primeira etapa é automaticamente ignorada (já que o saldo TRX frozen = 0) e a largura de banda gratuita diária de 5.000 alimenta a transação.
Para transferências TRC-10 token, a rede primeiro verifica se o total de pontos de largura de banda livre do ativo token emitido são suficientes. Caso contrário, os pontos de largura de banda obtidos com o congelamento do TRX são consumido. Se ainda não houver pontos de largura de banda suficientes, então consome o TRX da transação iniciador.
5.2.3 Taxa
A rede TRON geralmente não cobra taxas para a maioria das transações, entretanto, devido ao sistema restrições e justiça, uso de largura de banda e transações cobram certas taxas.
As taxas cobradas são divididas nas seguintes categorias: 1. As transações normais custam pontos de largura de banda. Os usuários podem usar os pontos de largura de banda diários gratuitos (5000) ou congele TRX para obter mais. Quando os pontos de largura de banda não forem suficientes, o TRX será usado diretamente da conta remetente. O TRX necessário é o número de bytes * 10 SUN. 2. Os contratos inteligentes custam energia (Seção 6), mas também precisarão de pontos de largura de banda para o transação a ser transmitida e confirmada. O custo da largura de banda é o mesmo acima. 3. Todas as transações de consulta são gratuitas. Não custa energia ou largura de banda.
A rede TRON também define um conjunto de taxas fixas para as seguintes transações: 1. Criando um nó testemunha: 9999 TRX 2. Emitindo um TRC-10 token: 1024 TRX 3. Criando uma nova conta: 0,1 TRX 4. Criando um par de troca: 1024 TRX 5.2.4 Transação como Prova de Participação (TaPoS)
TRON usa TaPoS para garantir que todas as transações confirmem o blockchain principal, ao mesmo tempo que o faz
difícil forjar correntes falsificadas. No TaPoS, as redes exigem que cada transação inclua parte de
o hash de um cabeçalho de bloco recente. Este requisito impede que as transações sejam reproduzidas em
bifurcações não incluindo o bloco referenciado, e também sinaliza à rede que um determinado usuário e seusa aposta está em um fork específico. Este mecanismo de consenso protege a rede contra negação de
Serviço, 51%, mineração egoísta e ataques de gasto duplo.
5.2.5 Confirmação de Transação
Uma transação é incluída em um bloco futuro após ser transmitida para a rede. Após 19 blocos serem minerado em TRON (incluindo seu próprio bloco), a transação é confirmada. Cada bloco é produzido por um dos 27 principais superrepresentantes em um estilo round robin. Cada bloco leva cerca de 3 segundos para ser extraído em blockchain. O tempo pode variar ligeiramente para cada Super Representante devido à rede condições e configurações da máquina. Em geral, uma transação é considerada totalmente confirmada após ~1 minuto. 5.2.6 Estrutura
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 } } }
Block
Ein Block enthält typischerweise einen Blockheader und mehrere Transaktionen.
Protobuf data structure:
message Block {
BlockHeader block_header = 1;
repeated Transaction transactions = 2;
}
5.1 Blockkopf
Ein Blockheader enthält raw_data, witness_signature und 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 Rohdaten
Rohdaten werden in Protobuf als raw_data bezeichnet. Es enthält die Rohdaten einer Nachricht, bestehend aus 6 Parameter:
1. Zeitstempel: Zeitstempel dieser Nachricht – z.B. 1543884429000. 2. txTrieRoot: die Wurzel des Merkle-Baums – z.B. 7dacsa…3ed. 3. parentHash: der hash des letzten Blocks – z.B. 7dacsa…3ed. 4. Zahl: die Blockhöhe – z.B. 4638708. 5. Version: reserviert – z.B. 5.

6. Zeugenadresse: die Adresse des in diesem Block enthaltenen Zeugen – z.B. 41928c...4d21. 5.1.2 Unterschrift des Zeugen
Die Zeugensignatur wird in Protobuf als witness_signature bezeichnet, was die Signatur dafür ist Blockheader vom Zeugenknoten. 5.1.3 Block-ID
Die Block-ID wird in Protobuf als blockID bezeichnet. Es enthält die atomare Identifikation eines Blocks. Ein Block ID enthält 2 Parameter: 1. hash: der hash des Blocks. 2. Nummer: hash und Höhe des Blocks. 5.2 Transaktion 5.2.1 Unterzeichnung
Der Transaktionssignierungsprozess von TRON folgt einem standardmäßigen kryptografischen ECDSA-Algorithmus mit a
SECP256K1-Auswahlkurve. Ein privater Schlüssel ist eine Zufallszahl und der öffentliche Schlüssel ist ein Punkt auf dem
elliptische Kurve. Der Prozess der Generierung eines öffentlichen Schlüssels besteht darin, zunächst eine Zufallszahl als eine zu generieren
privaten Schlüssel und dann Multiplikation des Basispunkts der elliptischen Kurve mit dem privaten Schlüssel, um den zu erhalten
öffentlicher Schlüssel. Wenn eine Transaktion stattfindet, werden die Rohdaten der Transaktion zunächst in das Byte-Format konvertiert.
Anschließend werden die Rohdaten SHA-256 hashing unterzogen. Der dem Vertrag entsprechende private Schlüssel
Die Adresse signiert dann das Ergebnis des SHA256 hash. Das Signaturergebnis wird dann dem hinzugefügt
Transaktion.
5.2.2 Bandbreitenmodell
Gewöhnliche Transaktionen verbrauchen nur Bandbreitenpunkte, smart contract-Vorgänge verbrauchen jedoch beide Energie- und Bandbreitenpunkte. Es stehen zwei Arten von Bandbreitenpunkten zur Verfügung. Benutzer können gewinnen Bandbreitenpunkte durch das Einfrieren von TRX, während täglich auch 5000 kostenlose Bandbreitenpunkte verfügbar sind.
Wenn eine TRX-Transaktion gesendet wird, wird sie in Form eines Byte-Arrays übertragen und gespeichert das Netzwerk. Von einer Transaktion verbrauchte Bandbreitenpunkte = Anzahl der Transaktionsbytes multipliziert mit der Bandbreitenpunktrate. Wenn beispielsweise die Byte-Array-Länge einer Transaktion 200 beträgt, dann verbraucht die Transaktion 200 Bandbreitenpunkte. Wenn jedoch eine TRX- oder token-Übertragung erfolgt das Zielkonto, das erstellt wird, dann nur die Bandbreitenpunkte, die zum Erstellen des Kontos verbraucht wurden abgezogen, zusätzliche Bandbreitenpunkte werden nicht abgezogen. Bei einer Kontoerstellung In diesem Szenario verbraucht das Netzwerk zunächst die Bandbreitenpunkte, die der Transaktionsinitiator gewonnen hatvom Einfrieren von TRX. Reicht dieser Betrag nicht aus, verbraucht das Netzwerk die Transaktion TRX des Initiators.
In Standard-TRX-Übertragungsszenarien von einem TRX-Konto zu einem anderen verbraucht das Netzwerk zuerst die Bandbreitenpunkte, die der Transaktionsinitiator für das Einfrieren von TRX gewonnen hat. Wenn das nicht ausreicht, dann verbraucht von den kostenlosen 5000 täglichen Bandbreitenpunkten. Wenn das immer noch nicht reicht, dann das Netzwerk verbraucht den TRX des Transaktionsinitiators. Die Menge wird anhand der Anzahl der Bytes berechnet die Transaktion multipliziert mit 10 SUN. Daher ist für die meisten TRX-Inhaber dies nicht unbedingt der Fall Wenn ihr TRX an der SR-Abstimmung teilnehmen möchte, wird der erste Schritt automatisch übersprungen (da TRX-Guthaben eingefroren = 0) und die tägliche freie Bandbreite von 5000 treibt die Transaktion an.
Bei TRC-10 token-Übertragungen überprüft das Netzwerk zunächst, ob die gesamten freien Bandbreitenpunkte des ausgestelltes token-Vermögenswert sind ausreichend. Wenn nicht, sind es die Bandbreitenpunkte, die durch das Einfrieren von TRX erhalten werden verbraucht. Wenn immer noch nicht genügend Bandbreitenpunkte vorhanden sind, wird der TRX der Transaktion verbraucht Initiator.
5.2.3 Gebühr
Das Netzwerk TRON erhebt jedoch systembedingt grundsätzlich keine Gebühren für die meisten Transaktionen Einschränkungen und Fairness, Bandbreitennutzung und Transaktionen erfordern bestimmte Gebühren.
Die Gebühren werden in die folgenden Kategorien unterteilt: 1. Normale Transaktionen kosten Bandbreitenpunkte. Benutzer können die kostenlosen täglichen Bandbreitenpunkte nutzen (5000) oder TRX einfrieren, um mehr zu erhalten. Wenn Bandbreitenpunkte nicht ausreichen, wird TRX ausreichen direkt vom sendenden Konto verwendet werden. Der benötigte TRX ist die Anzahl der Bytes * 10 SUN. 2. Intelligente Verträge kosten Energie (Abschnitt 6), benötigen dafür aber auch Bandbreitenpunkte Die Transaktion muss übertragen und bestätigt werden. Die Bandbreitenkosten sind die gleichen wie oben. 3. Alle Abfragetransaktionen sind kostenlos. Es kostet weder Energie noch Bandbreite.
Das Netzwerk TRON definiert außerdem eine Reihe fester Gebühren für die folgenden Transaktionen: 1. Erstellen eines Zeugenknotens: 9999 TRX 2. Ausgabe eines TRC-10 token: 1024 TRX 3. Erstellen eines neuen Kontos: 0,1 TRX 4. Erstellen eines Austauschpaares: 1024 TRX 5.2.4 Transaktion als Proof of Stake (TaPoS)
TRON verwendet TaPoS, um sicherzustellen, dass alle Transaktionen den Haupt-blockchain bestätigen, während sie ausgeführt werden
Es ist schwierig, gefälschte Ketten zu fälschen. In TaPoS verlangen die Netzwerke, dass jede Transaktion einen Teil davon umfasst
der hash eines aktuellen Blockheaders. Diese Anforderung verhindert, dass Transaktionen wiederholt werden
Forks enthalten nicht den referenzierten Block und signalisieren dem Netzwerk auch, dass ein bestimmter Benutzer und seinDer Einsatz liegt auf einer bestimmten Gabel. Dieser Konsensmechanismus schützt das Netzwerk vor Denial of
Service, 51 %, egoistisches Mining und Double-Spend-Angriffe.
5.2.5 Transaktionsbestätigung
Eine Transaktion wird in einen zukünftigen Block aufgenommen, nachdem sie an das Netzwerk gesendet wurde. Nach 19 Blöcken sind abgebaut auf TRON (einschließlich seines eigenen Blocks), die Transaktion wird bestätigt. Jeder Block wird von erzeugt einer der 27 besten Super-Repräsentanten im Round-Robin-Verfahren. Jeder Block dauert ca. 3 Sekunden auf dem blockchain abgebaut werden. Aufgrund des Netzwerks kann die Zeit für jeden Super-Repräsentanten leicht variieren Bedingungen und Maschinenkonfigurationen. Im Allgemeinen gilt eine Transaktion danach als vollständig bestätigt ~1 Minute. 5.2.6 Struktur
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 Máquina Virtual
6.1 Introdução
TRON Máquina Virtual (TVM) é uma máquina virtual Turing completa e leve desenvolvida para o Ecossistema de TRON. Seu objetivo é fornecer um sistema blockchain personalizado que seja eficiente, conveniente, estável, seguro e escalável.
TVM inicialmente bifurcado de EVM e pode se conectar perfeitamente com a solidez existente smart contract 11 ecossistema de desenvolvimento. Com base nisso, o TVM também oferece suporte ao consenso DPoS.
A TVM emprega o conceito de Energia. Diferente do mecanismo de gás em EVM, as operações de transações e smart contracts no TVM são gratuitas, sem consumo de TRX. Tecnicamente, executável a capacidade de computação no TVM não é restrita pela quantidade total de tokens. 6.2 Fluxo de trabalho
O compilador primeiro traduz o Solidity smart contract em bytecode legível e executável em a TVM. O TVM então processa os dados através do opcode, o que equivale a operar a lógica de uma máquina de estados finitos baseada em pilha. Finalmente, o TVM acessa dados blockchain e invoca Interface de dados externos através da camada de interoperação. 11 EVM: Ethereum Máquina Virtual (https://github.com/ethereum/ethereumj)

Figura 3: Fluxo de trabalho TVM
6.3 Desempenho 6.3.1 Arquitetura Leve
A TVM adota uma arquitetura leve com o objetivo de reduzir o consumo de recursos para garantir desempenho do sistema. 6.3.2 Robusto
As transferências de TRX e a execução de smart contract custam apenas pontos de largura de banda, em vez de TRX, que isenta TRON de ser atacado. O consumo de largura de banda é previsível e estático, pois cada o custo da etapa computacional é fixo. 6.3.3 Alta Compatibilidade
TVM é compatível com EVM e será compatível com VMs mais convencionais no futuro. Assim, todos os smart contracts em EVM são executáveis no TVM. 6.3.4 Baixo Custo
Devido à configuração da largura de banda do TVM, os custos de desenvolvimento são reduzidos e os desenvolvedores podem se concentrar no desenvolvimento lógico de seu código de contrato. A TVM também oferece interfaces completas para contratos implantação, acionamento e visualização para oferecer conveniência aos desenvolvedores.
TRON Virtuelle Maschine
6.1 Einführung
TRON Virtual Machine (TVM) ist eine leichte, vollständige Turing-virtuelle Maschine, die für entwickelt wurde Das Ökosystem von TRON. Sein Ziel ist es, ein maßgeschneidertes blockchain-System bereitzustellen, das effizient ist, bequem, stabil, sicher und skalierbar.
TVM wurde ursprünglich von EVM abgezweigt und kann nahtlos mit der bestehenden Solidität smart contract verbunden werden. 11 Entwicklungsökosystem. Auf dieser Grundlage unterstützt TVM zusätzlich den Konsens DPoS.
TVM verwendet das Konzept der Energie. Anders als beim Gasmechanismus auf EVM, Operationen von Transaktionen und smart contracts auf TVM sind kostenlos, es wird kein TRX verbraucht. Technisch ausführbar Die Rechenkapazität auf TVM ist nicht durch den Gesamtbestand von tokens eingeschränkt. 6.2 Arbeitsablauf
Der Compiler übersetzt zunächst den Solidity smart contract in lesbaren und ausführbaren Bytecode der TVM. Das TVM verarbeitet die Daten dann über den Opcode, was dem Betrieb der Logik entspricht eines stapelbasierten Finite-State-Automaten. Schließlich greift der TVM auf blockchain-Daten zu und ruft sie auf Externe Datenschnittstelle über die Interoperation-Schicht. 11 EVM: Ethereum Virtuelle Maschine (https://github.com/ethereum/ethereumj)

Abbildung 3: TVM-Workflow
6.3 Leistung 6.3.1 Leichtbauarchitektur
TVM übernimmt eine leichtgewichtige Architektur mit dem Ziel, einen reduzierten Ressourcenverbrauch zu gewährleisten Systemleistung. 6.3.2 Robust
TRX-Übertragungen und smart contract-Ausführung kosten nur Bandbreitenpunkte, anstelle von TRX, was befreit TRON von Angriffen. Der Bandbreitenverbrauch ist vorhersehbar und statisch Die Kosten für den Rechenschritt sind festgelegt. 6.3.3 Hohe Kompatibilität
TVM ist mit EVM kompatibel und wird in Zukunft mit weiteren Mainstream-VMs kompatibel sein. Dadurch sind alle smart contracts auf EVM auf TVM ausführbar. 6.3.4 Niedrige Kosten
Aufgrund der Bandbreiteneinrichtung von TVM werden die Entwicklungskosten reduziert und Entwickler können sich auf das konzentrieren logische Entwicklung ihres Vertragscodes. TVM bietet auch All-in-One-Schnittstellen für Verträge an Bereitstellung, Auslösung und Anzeige, um Entwicklern Komfort zu bieten.
Contrato Inteligente
7.1 Introdução
Um smart contract é um protocolo que verifica digitalmente a negociação de contratos. Eles definem as regras e penalidades relacionadas a um acordo e também aplicar automaticamente essas obrigações. O inteligente O código do contrato facilita, verifica e reforça a negociação ou execução de um acordo ou transação. De uma perspectiva de tokenização, smart contracts também facilitam fundos automáticos transferências entre as partes participantes caso determinados critérios sejam atendidos.
TRON smart contracts são escritos na linguagem Solidity. Uma vez escritos e testados, eles podem ser compilado em bytecode e então implantado na rede TRON para a máquina virtual TRON. Uma vez implantados, smart contracts podem ser consultados por meio de seus endereços de contrato. A aplicação do contrato Interface Binária (ABI) mostra as funções de chamada do contrato e é usada para interagir com o rede. 7.2 Modelo Energético
O limite máximo de energia para implantar e acionar um smart contract é uma função de vários variáveis:
● A energia dinâmica do congelamento de 1 TRX é 50.000.000.000 (Limite de Energia Total) / (Energia Total Peso) ● O limite de energia é o limite diário de energia da conta após o congelamento do TRX ● A energia restante da conta diária do congelamento do TRX é calculada como Limite de Energia - Energia Usado ● O limite de taxa no TRX é definido em smart contract implantar/acionar chamada ● TRX utilizável restante na conta ● Energia por TRX se comprada diretamente (10 SUN = 1 Energia) = 100.000, os SRs podem votar ajuste
Existem dois cenários de consumo para calcular o limite máximo de energia para implantação e
gatilho. A lógica pode ser expressa da seguinte forma:
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 Implantação
Quando uma solidez TRON smart contract é compilada, a máquina virtual TRON lê o compilado bytecódigo. O bytecode consiste em uma seção para implantação de código, código de contrato e Auxdata. O Auxdata é a impressão digital criptográfica do código-fonte, usada para verificação. A implantação bytecode executa a função construtora e configura as variáveis de armazenamento iniciais. A implantação code também calcula o código do contrato e o retorna ao TVM. A ABI é um arquivo JSON que descreve as funções de TRON smart contract. Este arquivo define os nomes das funções, sua remuneração, os valores de retorno da função e sua mutabilidade de estado. 7.4 Função de disparo
Depois que os TRON smart contracts forem implantados, suas funções poderão ser acionadas individualmente por meio de TronStudio ou através de chamadas de API. Funções de mudança de estado requerem energia enquanto funções somente leitura executar sem energia. 7.5 TRON Solidez
TRON Solidity é um fork da linguagem Solidity de Ethereum. TRON modifica o projeto original para suporta unidades TRX e SUN (1 TRX = 1.000.000 SUN). O resto da sintaxe da linguagem é compatível com Solidity ^0.4.24. Assim, a Máquina Virtual Tron (TVM) é quase 100% compatível com instruções EVM.
Intelligenter Vertrag
7.1 Einführung
Ein smart contract ist ein Protokoll, das Vertragsverhandlungen digital überprüft. Sie definieren die Regeln und Strafen im Zusammenhang mit einer Vereinbarung zu verhängen und diese Verpflichtungen auch automatisch durchzusetzen. Der Schlaue Der Vertragskodex erleichtert, überprüft und erzwingt die Aushandlung oder Erfüllung einer Vereinbarung oder Transaktion. Aus Sicht der tokenisierung ermöglichen smart contracts auch automatische Mittel Übertragungen zwischen teilnehmenden Parteien, sofern bestimmte Kriterien erfüllt sind.
TRON smart contracts sind in der Solidity-Sprache geschrieben. Sobald sie geschrieben und getestet sind, können sie es sein In Bytecode kompiliert und dann im Netzwerk TRON für die virtuelle Maschine TRON bereitgestellt. Einmal Im Einsatz können smart contracts über ihre Vertragsadressen abgefragt werden. Der Vertragsantrag Binary Interface (ABI) zeigt die Aufruffunktionen des Vertrags an und wird für die Interaktion mit dem verwendet Netzwerk. 7.2 Energiemodell
Die maximale Energiegrenze für die Auslösung und Auslösung eines smart contract hängt von mehreren Faktoren ab Variablen:
● Die dynamische Energie aus dem Einfrieren von 1 TRX beträgt 50.000.000.000 (Gesamtenergielimit) / (Gesamtenergie). Gewicht) ● Das Energielimit ist das tägliche Energielimit des Kontos durch das Einfrieren von TRX ● Die verbleibende tägliche Kontoenergie aus dem Einfrieren von TRX wird als Energielimit – Energie berechnet Gebraucht ● Das Gebührenlimit in TRX wird in smart contract Deploy/Trigger Call festgelegt ● Verbleibender nutzbarer TRX im Konto ● Energie pro TRX bei direktem Kauf (10 SUN = 1 Energie) = 100.000, SRs können darüber abstimmen Anpassung
Es gibt zwei Verbrauchsszenarien zur Berechnung der maximalen Energiegrenze für den Einsatz und
Auslöser. Die Logik kann wie folgt ausgedrückt werden:
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 Bereitstellung
Wenn eine Solidität TRON smart contract kompiliert wird, liest die virtuelle Maschine TRON die kompilierte Datei Bytecode. Der Bytecode besteht aus einem Abschnitt für die Codebereitstellung, dem Vertragscode und den Auxdata. Bei den Auxdata handelt es sich um den kryptografischen Fingerabdruck des Quellcodes, der zur Verifizierung verwendet wird. Der Einsatz Bytecode führt die Konstruktorfunktion aus und richtet die anfänglichen Speichervariablen ein. Der Einsatz code berechnet auch den Vertragscode und gibt ihn an den TVM zurück. Die ABI ist eine JSON-Datei beschreibt die Funktionen eines TRON smart contract. Diese Datei definiert die Funktionsnamen, ihre Bezahlbarkeit, die Funktionsrückgabewerte und ihre Zustandsveränderlichkeit. 7.4 Triggerfunktion
Sobald die TRON smart contracts bereitgestellt sind, können ihre Funktionen einzeln entweder über ausgelöst werden TronStudio oder über API-Aufrufe. Zustandsverändernde Funktionen erfordern Energie, während schreibgeschützte Funktionen vorhanden sind ohne Energie ausführen. 7,5 TRON Solidität
TRON Solidity ist eine Abzweigung aus der Solidity-Sprache von Ethereum. TRON ändert das ursprüngliche Projekt in unterstützen TRX- und SUN-Einheiten (1 TRX = 1.000.000 SUN). Der Rest der Sprachsyntax ist kompatibel mit Solidity ^0.4.24. Somit ist die Tron Virtual Machine (TVM) nahezu 100 % kompatibel mit EVM Anweisungen.
Token
8.1 Token TRC-10
Na rede TRON, cada conta pode emitir tokens às custas de 1024 TRX. Para emitir tokens, o emissor precisa especificar um nome token, a capitalização total, a taxa de câmbio para TRX, duração da circulação, descrição, site, consumo máximo de largura de banda por conta, total consumo de largura de banda e a quantidade de token congelados. Cada emissão token também pode configurar o máximo diário de token pontos de largura de banda de transferência de cada conta, o máximo diário de toda a rede token pontos de largura de banda de transferência, fornecimento total de token, duração do bloqueio em dias e valor total de tokens bloqueados. 8.2 Token TRC-20
TRC-20 é um padrão técnico usado para smart contracts implementando tokens suportado pelo TRON Máquina Virtual. É totalmente compatível com ERC-20.
A interface é a seguinte:
contrato TRC20Interface {
função totalSupply() retornos constantes públicos (uint);
função balanceOf(endereço tokenOwner) public constantes retornos (uint
equilíbrio);
função subsídio(endereço tokenProprietário, endereço gastador) public constante
retorna (uint restante);
transferência de função (endereço para, uint tokens) retornos públicos (bool sucesso);
função aprovar (endereço gastador, uint tokens) retornos públicos (bool
sucesso);
função transferFrom(endereço de, endereço para, uint tokens) public
retorna (bool sucesso);
event Transfer(endereço indexado de, endereço indexado para, uint tokens);
Aprovação do evento (endereço indexado tokenProprietário, endereço gastador indexado, uint
tokens); }
Do ponto de vista do desenvolvedor, existem várias diferenças entre o TRC-10 e o TRC-20. Alguns das principais diferenças é que TRC-10 tokens são acessíveis por APIs e smart contracts enquanto TRC-20 tokens permitem a personalização da interface, mas só são acessíveis dentro de smart contracts.
Do ponto de vista de custo, os TRC-10 tokens têm taxas de transação 1.000 vezes mais baixas do que
TRC-20, mas acarreta custos de largura de banda para transferências e depósitos de API. Transferências e depósitos em smart
os contratos para TRC-10 tokens custam largura de banda e energia.
8.3 Além
Como TRON usa a mesma versão do Solidity que Ethereum, mais padrões token poderiam ser prontamente portado para TRON.
Token
8.1 TRC-10-Token
Im TRON-Netzwerk kann jedes Konto tokens auf Kosten von 1024 TRX ausgeben. Um tokens auszugeben, Der Emittent muss einen token-Namen, die Gesamtkapitalisierung, den Wechselkurs zu TRX angeben. Verbreitungsdauer, Beschreibung, Website, maximaler Bandbreitenverbrauch pro Account, Gesamt Bandbreitenverbrauch und die Menge der eingefrorenen token. Jede token-Ausgabe kann auch konfiguriert werden die maximale tägliche token Übertragungsbandbreitenpunkte jedes Kontos, die maximale tägliche Bandbreite des gesamten Netzwerks token Übertragungsbandbreitenpunkte, Gesamtangebot token, Sperrdauer in Tagen und Gesamtbetrag von tokens gesperrt. 8.2 TRC-20-Token
TRC-20 ist ein technischer Standard, der für smart contracts verwendet wird, die von der unterstützte tokens implementieren TRON Virtuelle Maschine. Es ist vollständig kompatibel mit ERC-20.
Die Schnittstelle ist wie folgt:
Vertrag TRC20Interface {
Funktion totalSupply() public constant returns (uint);
Funktion balanceOf(Adresse tokenOwner) öffentliche Konstante gibt zurück (uint
Gleichgewicht);
Funktion Zulage(Adresse tokenEigentümer, Adressgeber) Öffentliche Konstante
gibt zurück (uint übrig);
Funktion Übertragung(Adresse an, uint tokens) öffentliche Rückgaben (Bool-Erfolg);
Funktion approve(address spender, uint tokens) public returns (bool
Erfolg);
Funktion transferFrom(Adresse von, Adresse an, uint tokens) public
return (bool success);
Ereignis Übertragung(Adresse indiziert von, Adresse indiziert nach, uint tokens);
Ereignis Genehmigung(Adresse indiziert tokenEigentümer, Adresse indizierter Spender, uint
tokens); }
Aus Entwicklersicht gibt es mehrere Unterschiede zwischen TRC-10 und TRC-20. Einige Einer der Hauptunterschiede besteht darin, dass TRC-10-tokens über APIs und smart contracts zugänglich sind TRC-20 tokens ermöglichen die Anpassung der Benutzeroberfläche, sind jedoch nur innerhalb von smart contracts zugänglich.
Aus Kostengründen haben TRC-10 tokens Transaktionsgebühren, die 1000-mal niedriger sind als
TRC-20, verursachen jedoch Bandbreitenkosten für API-Übertragungen und -Einzahlungen. Überweisungen und Einzahlungen in smart
Verträge für TRC-10 tokens kosten sowohl Bandbreite als auch Energie.
8.3 Darüber hinaus
Da TRON dieselbe Solidity-Version wie Ethereum verwendet, könnten problemlos weitere token-Standards implementiert werden portiert auf TRON.
Governança
9.1 Superrepresentante 9.1.1 Geral
Todas as contas da rede TRON podem se inscrever e ter a oportunidade de se tornar um Super Representante (denotado como SR). Todos podem votar em candidatos SR. Os 27 principais candidatos com os mais votados se tornarão SRs com direito e obrigação de gerar blocos. Os votos são contado a cada 6 horas e os SRs mudarão de acordo.
Para evitar ataques maliciosos, há um custo para se tornar um candidato à RS. Ao se inscrever, 9999 O TRX será eliminado da conta do requerente. Uma vez bem-sucedida, essa conta pode ingressar no SR eleição. 9.1.2 Eleição
TRON O poder (denotado como TP) é necessário para votar e a quantidade de TP depende do eleitor ativos congelados (TRX).
O TP é calculado da seguinte forma:
PT
1 TRX congelado para obter largura de banda
1
=
Cada conta na rede TRON tem o direito de votar em seus próprios SRs.
Após o lançamento (descongelamento, disponível após 3 dias), os usuários não terão nenhum ativo congelado e perderão todos TP em conformidade. Como resultado, todos os votos tornam-se inválidos para a ronda de votação em curso e futura, a menos que TRX está congelado novamente para votar.
Observe que a rede TRON registra apenas o voto mais recente, o que significa que cada novo voto anulará todos os votos anteriores. 9.1.3 Recompensa uma. Recompensa de voto
Também conhecido como Recompensa do Candidato, que os 127 melhores candidatos atualizam uma vez a cada rodada (6
horas) compartilhará 115.200 TRX extraídos. A recompensa será dividida de acordo com o peso dos votos
cada candidato recebe. A cada ano, a recompensa total para os candidatos será de 168.192.000 TRX.
Recompensa total de votos por rodada
Por que 115.200 TRX a cada rodada?
15,00 TRX
recompensa total de votos por rodada (V R/rodada)
1
2
=
V R/rodada = 16 T RX/bloco × 20 blocos/min × 60 minutos/h × 6 horas/rodada
Aviso: isso é definido por WITNESS_STANDBY_ALLOWANCE = 115.200 TRX. Consulte parâmetros de rede dinâmica.
Recompensa total de votos por ano
Por que 168.192.000 TRX todos os anos?
168.192.000 T RX = recompensa total de votos por ano (V R/ano)
V R/ano = 115.200 T RX/rodada × 4 rodadas/dia × 365 dias/ano
b. Recompensa de bloco
Também conhecida como Recompensa do Super Representante, que os 27 principais candidatos (SRs) eleitos
cada rodada (6 horas) compartilhará cerca de 230.400 TRX extraídos. A recompensa será dividida igualmente
entre os 27 SRs (menos o total de blocos de recompensa perdidos devido a erro de rede). Um total de
336.384.000 TRX serão concedidos anualmente aos 27 SRs.
Recompensa total do bloco por rodada
Por que 230.400 TRX a cada rodada?
230, 400 T RX = recompensa total do bloco por rodada (BR/rodada)
BR/rodada = 32 T RX/bloco × 20 blocos/min × 60 minutos/h × 6 horas/rodada
Aviso: a recompensa do bloco unitário é definida por WITNESS_PAY_PER_BLOCK = 32 TRX. Veja rede dinâmica
parâmetros.
Recompensa total do bloco por ano
Por que 336.384.000 TRX todos os anos?
336.384.000 T RX = recompensa total do bloco por ano (BR/ano)
BR/ano = 230.400 T RX/rodada × 4 rodadas/dia × 365 dias/ano
1º de janeiro de 2021
Não haverá inflação na rede TRON antes de 1º de janeiro de 2021, e TRON DAO
conceder todas as recompensas em bloco e recompensas de candidatos antes dessa data.
c. Cálculo de recompensa
Cálculo de recompensa SR
recompensa total
recompensa de voto (V R)
recompensa de bloco (BR)
t
=
+
R
VR total
V
=
×
total de votos
votos que o candidato SR recebeu
R
bloco perdido
2
B
=
27
BR total -
× 3
Nota: a recompensa é calculada por SR por rodada (6 horas)
Cálculo de recompensa de candidato de classificação 28 a 127 SR recompensa total recompensa de voto (V R) t =
R
VR total
V
=
×
total de votos
votos que o candidato SR recebeu
Nota: a recompensa é calculada por candidato SR por rodada (6 horas)
9.2 Comitê
9.2.1 Geral
O comitê é usado para modificar parâmetros de rede dinâmicos TRON, como geração de blocos
recompensas, taxas de transação, etc. O comitê é composto pelos 27 SRs da rodada atual. Cada RS
tem o direito de propor e votar propostas. Quando uma proposta recebe 19 votos ou mais, é
aprovado e os novos parâmetros de rede serão aplicados no próximo período de manutenção (3 dias).
9.2.2 Parâmetros de Rede Dinâmicos
0.
MAINTENANCE_TIME_INTERVAL
uma.
Descrição
Modifique o tempo do intervalo de manutenção em ms. Conhecido como tempo de intervalo de votação SR por
redondo.
b.
Exemplo
[6 * 3600 * 1000] ms - que é 6 horas.
c.
Alcance
[3271000, 2436001000]ms
1.
ACCOUNT_UPGRADE_COST
uma.
Descrição
Modifique o custo de inscrição para uma conta SR.
b.
Exemplo
[9.999.000.000] SUN – que é 9.999 TRX.
c.
Alcance
[0,100 000 000 000 000 000] SOL
2.
CREATE_ACCOUNT_FEE
uma.
Descrição
Modifique a taxa de criação de conta.b.
Exemplo
[100.000] SOL - que é 1 TRX.
c.
Alcance
[0,100 000 000 000 000 000] SOL
3.
TRANSACTION_FEE
uma.
Descrição
Modifique o valor da taxa usada para obter largura de banda extra.
b.
Exemplo
[10] SOL/byte.
c.
Alcance
[0,100 000 000 000 000 000] SOL/byte
4.
ASSET_ISSUE_FEE
uma.
Descrição
Modifique a taxa de emissão de ativos.
b.
Exemplo
[1024.000.000] SOL - que é 1024 TRX.
c.
Alcance
[0,100 000 000 000 000 000] SOL
5.
WITNESS_PAY_PER_BLOCK
uma.
Descrição
Modifique a recompensa de geração de bloco SR. Conhecida como recompensa de bloco unitário.
b.
Exemplo
[32.000.000] SUN - que é 32 TRX.
c.
Alcance
[0,100 000 000 000 000 000] SOL
6.
WITNESS_STANDBY_ALLOWANCE
uma.
Descrição
Modifique as recompensas dadas aos 127 principais candidatos SR. Conhecida como recompensa total de votos
por rodada.
b.
Exemplo
[115.200.000.000] SUN – que é 115.200 TRX.
c.
Alcance
[0,100 000 000 000 000 000] SOL
7.
CREATE_NEW_ACCOUNT_FEE_IN_SYSTEM_CONTRACT
uma.
Descrição
Modifique o custo de criação de conta. Combine os parâmetros de rede dinâmica nº 8 para obter
custo total de criação de conta:
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT
REATE_NEW_ACCOUNT_BANDWIDTH_RATE
C
×C
b. Exemplo [0] SOL. c. Alcance [0,100 000 000 000 000 000] SOL 8. CREATE_NEW_ACCOUNT_BANDWIDTH_RATE
uma.
Descrição
Modifique o custo de criação de conta. Combine os parâmetros de rede dinâmica nº 7 para obter
custo total de criação de conta:
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT
REATE_NEW_ACCOUNT_BANDWIDTH_RATE
C
×C
b. Exemplo [1]. c. Alcance [0.100.000.000.000.000.000] 9. ALLOW_CREATION_OF_CONTRACTS uma. Descrição Para ativar a Máquina Virtual Tron (TVM). b. Exemplo Verdadeiro - definido para ativação e efeito desde 10/10/2018 23:47 UTC. c. Alcance Verdadeiro/Falso 10. REMOVE_THE_POWER_OF_THE_GR uma. Descrição Remova os votos iniciais do GR genesis b. Exemplo Verdadeiro - efetuado em 04/11/2018 08:46 UTC. c. Alcance Verdadeiro/Falso - Aviso: não é possível retornar de Verdadeiro para Falso. 11. ENERGY_FEE uma. Descrição Modifique a taxa de 1 energia. b. Exemplo 20 SOL. c. Alcance [0,100 000 000 000 000 000] SOL 12. EXCHANGE_CREATE_FEE uma. Descrição Modifique o custo de criação de pares de negociação. Conhecido como o custo de criação de uma ordem comercial. b. Exemplo [1.024.000.000] SOL - que é 1024 TRX. c. Alcance [0,100 000 000 000 000 000] SOL 13. MAX_CPU_TIME_OF_ONE_TX uma. Descrição Modifique o tempo máximo de execução de uma transação. Conhecido como limite de tempo limite de uma transação. b. Exemplo 50 ms. c. Alcance
[0, 1000] ms
14. ALLOW_UPDATE_ACCOUNT_NAME
uma.
Descrição
Modifique a opção para permitir que uma conta atualize seu nome de conta.
b.
Exemplo
Falso - que está disponível para proposta no java-tron Odyssey v3.2.
c.
Alcance
Verdadeiro/Falso - Aviso: não é possível retornar de Verdadeiro para Falso.
15.ALLOW_SAME_TOKEN_NAME
uma.
Descrição
Modifique a validação para permitir que diferentes token tenham um nome duplicado.
b.
Exemplo
Falso - que está disponível para proposta no java-tron Odyssey v3.2.
c.
Alcance
Verdadeiro/Falso - Aviso: não é possível retornar de Verdadeiro para Falso.
16. ALLOW_DELEGATE_RESOURCE
uma.
Descrição
Modifique a validação para permitir a emissão de token com nome duplicado, para que o
tokenID do token, no tipo de dados inteiro longo, seria o único atômico
identificação de um token.
b.
Exemplo
Falso - que está disponível para proposta no java-tron Odyssey v3.2.
c.
Alcance
Verdadeiro/Falso - Aviso: não é possível retornar de Verdadeiro para Falso.
17. TOTAL_ENERGY_LIMIT
uma.
Descrição
Modifique todo o limite de energia total da rede.
b.
Exemplo
[50.000.000.000.000.000] SOL - que é 50.000.000.000 TRX.
c.
Alcance
[0.100.000.000.000.000.000] SOL
18. ALLOW_TVM_TRANSFER_TRC10
uma.
Descrição
Permitir transferência TRC-10 token dentro de smart contracts.
ALLOW_UPDATE_ACCOUNT_NAME, ALLOW_SAME_TOKEN_NAME,
Todas as propostas ALLOW_DELEGATE_RESOURCE devem ser aprovadas antes de serem propostas
esta mudança de parâmetro.
b.
Exemplo
Falso - que está disponível para proposta no java-tron Odyssey v3.2.
c.
Alcance
Verdadeiro/Falso - Aviso: não é possível retornar de Verdadeiro para Falso.9.2.3 Criar Proposta
Somente as contas SR têm o direito de propor uma alteração nos parâmetros dinâmicos da rede. 9.2.4 Proposta de Votação
Somente os membros do comitê (SRs) podem votar em uma proposta e o membro que não votar a tempo será considerado como discordo. A proposta fica ativa por 3 dias após ser criada. A votação pode ser alterado ou recuperado durante o período de votação de 3 dias. Terminado o período, a proposta será sucesso (mais de 19 votos) ou fracasso (e fim). 9.2.5 Cancelar Proposta
O proponente pode cancelar a proposta antes que ela entre em vigor. 9.3 Estrutura
SRs são as testemunhas dos blocos recém-gerados. Uma testemunha contém 8 parâmetros:
1.
endereço: o endereço desta testemunha – por ex. 0xu82h…7237.
2.
voteCount: número de votos recebidos nesta testemunha – por ex. 234234.
3.
pubKey: a chave pública desta testemunha – por exemplo. 0xu82h…7237.
4.
url: o URL desta testemunha – por ex. https://www.noonetrust.com.
5.
totalProduzido: o número de blocos que esta testemunha produziu – por exemplo. 2434.
6.
totalMissed: o número de blocos que esta testemunha perdeu – por exemplo. 7.
7.
lastBlockNum: a última altura do bloco – por exemplo. 4522.
8.
isjobs: um sinalizador booleano.
Estrutura de dados do protobuf:
mensagem Testemunha{
endereço de bytes = 1;
int64 contagem de votos = 2;
bytes pubKey = 3;
string url=4;
int64 totalProduzido = 5;
int64 totalPerdidos = 6;
int64 últimoBlockNum = 7;
bool isJobs = 8;
}
- Desenvolvimento de DApps 10.1 APIs
A rede TRON oferece uma ampla seleção de mais de 60 gateways de API HTTP para interagir com o rede via Full e Solidity Nodes. Além disso, TronWeb é uma biblioteca JavaScript abrangente contendo funções de API que permitem aos desenvolvedores implantar smart contracts, altere o blockchain estado, consulta blockchain e informações de contrato, negociação no DEX e muito mais. Estas APIs os gateways podem ser direcionados para uma rede privada local, a rede de teste Shasta ou a rede principal TRON.
10.2 Redes
TRON possui uma rede de teste Shasta e também uma rede principal. Os desenvolvedores podem se conectar às redes por
implantando nós, interagindo via TronStudio ou usando APIs por meio do serviço TronGrid. O TronGrid
O serviço consiste em clusters de nós com balanceamento de carga hospedados em servidores AWS em todo o mundo. Como DApp
o desenvolvimento aumenta e os volumes de chamadas de API aumentam, o TronGrid responde com sucesso ao aumento em
Tráfego de API.
10.3 Ferramentas
TRON oferece um conjunto de ferramentas de desenvolvimento para permitir que os desenvolvedores criem DApps inovadores.
TronBox é uma estrutura que permite aos desenvolvedores testar e implantar smart contracts através do TronWeb
API. TronGrid é um serviço de API hospedado e com balanceamento de carga que permite aos desenvolvedores acessar o
TRON rede sem precisar executar seu próprio nó. TronGrid oferece acesso tanto ao Shasta
testnet, bem como a rede principal TRON. TronStudio é um desenvolvimento integrado abrangente
Ambiente (IDE) que permite aos desenvolvedores compilar, implantar e depurar seu Solidity smart
contratos. TronStudio contém um nó completo interno que cria um ambiente local privado para
smart contract testes antes da implantação. A biblioteca API TronWeb conecta desenvolvedores ao
rede por meio de uma ampla seleção de chamadas de API HTTP agrupadas em JavaScript.
10.4 Recursos
O TRON Developer Hub é um site abrangente de documentação de API adaptado para 12 desenvolvedores que desejam desenvolver na rede TRON. O Developer Hub fornece um alto nível compreensão conceitual de TRON e orienta os usuários nos detalhes da interação com o 12 Centro do desenvolvedor: https://developers.tron.network/
rede. Os guias orientam os desenvolvedores na configuração, implantação e interação do nó com aplicativos inteligentes
contratos, interação e implementação de API, construção de DApps de amostra e uso de cada um dos
ferramentas para desenvolvedores. Além disso, os canais da comunidade de desenvolvedores estão disponíveis através do Discord.
13
13Discordância: https://discordapp.com/invite/GsRgsTD
- Conclusão
TRON é uma solução blockchain escalável que empregou métodos inovadores para lidar com desafios enfrentados pelas redes blockchain legadas. Tendo alcançado mais de 2 milhões de transações por dia, com mais de 700 mil contas TRX e ultrapassando 2.000 TPS, TRON permitiu à comunidade em criando uma rede descentralizada e democratizada.
Regierungsführung
9.1 Supervertreter 9.1.1 Allgemeines
Jeder Account im TRON-Netzwerk kann sich bewerben und hat die Möglichkeit, ein Super zu werden Vertreter (bezeichnet als SR). Jeder kann für SR-Kandidaten stimmen. Die 27 besten Kandidaten mit Die meisten Stimmen erhalten SRs mit dem Recht und der Pflicht, Blöcke zu generieren. Die Stimmen sind alle 6 Stunden gezählt und die SRs ändern sich entsprechend.
Um böswillige Angriffe zu verhindern, ist es mit Kosten verbunden, ein SR-Kandidat zu werden. Bei der Bewerbung 9999 TRX wird vom Konto des Antragstellers gelöscht. Bei Erfolg kann ein solches Konto dem SR beitreten Wahl. 9.1.2 Wahl
TRON Macht (bezeichnet als TP) ist zum Wählen erforderlich und die Höhe der TP hängt von der des Wählers ab eingefrorene Vermögenswerte (TRX).
TP wird auf folgende Weise berechnet:
TP
1 TRX eingefroren, um Bandbreite zu erhalten
1
=
Jedes Konto im Netzwerk TRON hat das Recht, für seine eigenen SRs zu stimmen.
Nach der Veröffentlichung (Entsperrung, verfügbar nach 3 Tagen) haben Benutzer keine eingefrorenen Assets mehr und verlieren alle TP entsprechend. Dadurch werden alle Stimmen für die laufende und zukünftige Abstimmungsrunde ungültig, es sei denn TRX ist erneut für die Abstimmung eingefroren.
Beachten Sie, dass das Netzwerk TRON nur die letzte Abstimmung aufzeichnet, also jede neue Abstimmung wird alle vorherigen Abstimmungen negieren. 9.1.3 Belohnung a. Abstimmungsbelohnung
Auch als Kandidatenbelohnung bekannt, die die 127 besten Kandidaten einmal pro Runde aktualisieren (6
Stunden) werden 115.200 TRX wie abgebauten teilen. Die Belohnung wird entsprechend der Stimmengewichtung aufgeteilt
Jeder Kandidat erhält. Jedes Jahr beträgt die Gesamtprämie für Kandidaten 168.192.000 TRX.
Gesamtstimmenbelohnung pro Runde
Warum 115.200 TRX jede Runde?
15.00 TRX
Gesamtstimmenbelohnung pro Runde (V R/Runde)
1
2
=
V R/Runde = 16 T RX/Block × 20 Blöcke/Minute × 60 Minuten/Std. × 6 Stunden/Runde
Hinweis: Dies wird durch WITNESS_STANDBY_ALLOWANCE = 115.200 TRX festgelegt. Siehe dynamische Netzwerkparameter.
Gesamtstimmenbelohnung pro Jahr
Warum 168.192.000 TRX jedes Jahr?
168.192.000 T RX = Gesamtstimmenbelohnung pro Jahr (V R/Jahr)
V R/Jahr = 115, 200 T RX/Runde × 4 Runden/Tag × 365 Tage/Jahr
b. Belohnung blockieren
Auch bekannt als Super Representative Reward, der den 27 besten Kandidaten (SRs) verliehen wird, die gewählt werden
In jeder Runde (6 Stunden) werden etwa 230.400 TRX abgebaut. Die Belohnung wird gleichmäßig aufgeteilt
zwischen den 27 SRs (abzüglich der gesamten aufgrund eines Netzwerkfehlers verpassten Belohnungsblöcke). Insgesamt
336.384.000 TRX werden jährlich an die 27 SRs vergeben.
Gesamtblockbelohnung pro Runde
Warum 230.400 TRX jede Runde?
230, 400 T RX = Gesamtblockbelohnung pro Runde (BR/Runde)
BR/Runde = 32 T RX/Block × 20 Blöcke/Minute × 60 Minuten/Std. × 6 Stunden/Runde
Hinweis: Die Einheitsblockbelohnung wird durch WITNESS_PAY_PER_BLOCK = 32 TRX festgelegt. Siehe dynamisches Netzwerk
Parameter.
Gesamtblockbelohnung pro Jahr
Warum jedes Jahr 336.384.000 TRX?
336.384.000 T RX = Gesamtblockbelohnung pro Jahr (BR/Jahr)
BR/Jahr = 230, 400 T RX/Runde × 4 Runden/Tag × 365 Tage/Jahr
1. Januar 2021
Vor dem 1. Januar 2021 wird es im Netzwerk TRON keine Inflation geben, im Netzwerk TRON DAO jedoch
Vergeben Sie alle Blockprämien und Kandidatenprämien vor diesem Datum.
C. Belohnungsberechnung
Berechnung der SR-Belohnung
totale Belohnung
Abstimmungsbelohnung (V R)
Blockbelohnung (BR)
t
=
+
R
Gesamt-V R
V
=
×
Gesamtstimmen
Stimmen, die der SR-Kandidat erhalten hat
R
Block verpasst
2
B
=
27
Gesamt-BR −
× 3
Hinweis: Die Belohnung wird pro SR pro Runde (6 Stunden) berechnet.
Berechnung der Belohnung für SR-Kandidaten von Rang 28 bis Rang 127 totale Belohnung Abstimmungsbelohnung (V R) t =
R
Gesamt-V R
V
=
×
Gesamtstimmen
Stimmen, die der SR-Kandidat erhalten hat
Hinweis: Die Belohnung wird pro SR-Kandidat und Runde (6 Stunden) berechnet.
9.2 Ausschuss
9.2.1 Allgemeines
Das Komitee wird zum Ändern dynamischer Netzwerkparameter TRON verwendet, beispielsweise zur Blockgenerierung
Belohnungen, Transaktionsgebühren usw. Das Komitee besteht aus den 27 SRs der aktuellen Runde. Jeder SR
hat das Recht, Vorschläge vorzulegen und darüber abzustimmen. Wenn ein Vorschlag 19 oder mehr Stimmen erhält, ist dies der Fall
genehmigt und die neuen Netzwerkparameter werden in der nächsten Wartungsperiode (3 Tage) angewendet.
9.2.2 Dynamische Netzwerkparameter
0.
MAINTENANCE_TIME_INTERVAL
a.
Beschreibung
Ändern Sie die Wartungsintervallzeit in ms. Bekannt als SR-Abstimmungsintervallzeit pro
rund.
B.
Beispiel
[6 * 3600 * 1000] ms – das sind 6 Stunden.
C.
Reichweite
[3 * 27* 1000, 24 * 3600 * 1000] ms
1.
ACCOUNT_UPGRADE_COST
a.
Beschreibung
Ändern Sie die Kosten für die Beantragung eines SR-Kontos.
B.
Beispiel
[9.999.000.000] SUN – das sind 9.999 TRX.
C.
Reichweite
[0,100 000 000 000 000 000] SONNE
2.
CREATE_ACCOUNT_FEE
a.
Beschreibung
Ändern Sie die Gebühr für die Kontoerstellung.B.
Beispiel
[100.000] SUN – das ist 1 TRX.
C.
Reichweite
[0,100 000 000 000 000 000] SONNE
3.
TRANSACTION_FEE
a.
Beschreibung
Ändern Sie die Höhe der Gebühr, um zusätzliche Bandbreite zu gewinnen.
B.
Beispiel
[10] SUN/Byte.
C.
Reichweite
[0,100 000 000 000 000 000] SUN/Byte
4.
ASSET_ISSUE_FEE
a.
Beschreibung
Ändern Sie die Gebühr für die Ausgabe von Vermögenswerten.
B.
Beispiel
[1024.000.000] SUN – das sind 1024 TRX.
C.
Reichweite
[0,100 000 000 000 000 000] SONNE
5.
WITNESS_PAY_PER_BLOCK
a.
Beschreibung
Ändern Sie die Belohnung für die SR-Blockgenerierung. Wird als Unit-Block-Belohnung bezeichnet.
B.
Beispiel
[32.000.000] SUN – das sind 32 TRX.
C.
Reichweite
[0,100 000 000 000 000 000] SONNE
6.
WITNESS_STANDBY_ALLOWANCE
a.
Beschreibung
Ändern Sie die Belohnungen für die 127 besten SR-Kandidaten. Wird als Gesamtstimmenbelohnung bezeichnet
pro Runde.
B.
Beispiel
[115.200.000.000] SUN – das sind 115.200 TRX.
C.
Reichweite
[0,100 000 000 000 000 000] SONNE
7.
CREATE_NEW_ACCOUNT_FEE_IN_SYSTEM_CONTRACT
a.
Beschreibung
Ändern Sie die Kosten für die Kontoerstellung. Kombinieren Sie die dynamischen Netzwerkparameter Nr. 8, um zu erhalten
Gesamtkosten für die Kontoerstellung:
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT
REATE_NEW_ACCOUNT_BANDWIDTH_RATE
C
× C
b. Beispiel [0] SONNE. C. Reichweite [0,100 000 000 000 000 000] SONNE 8. CREATE_NEW_ACCOUNT_BANDWIDTH_RATE
a.
Beschreibung
Ändern Sie die Kosten für die Kontoerstellung. Kombinieren Sie die dynamischen Netzwerkparameter Nr. 7, um zu erhalten
Gesamtkosten für die Kontoerstellung:
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT
REATE_NEW_ACCOUNT_BANDWIDTH_RATE
C
× C
b. Beispiel [1]. C. Reichweite [0.100.000.000.000.000.000] 9. ALLOW_CREATION_OF_CONTRACTS a. Beschreibung So aktivieren Sie Tron Virtual Machine (TVM). B. Beispiel True – aktiviert und wirksam seit dem 10.10.2018 23:47 UTC. C. Reichweite Richtig/Falsch 10. REMOVE_THE_POWER_OF_THE_GR a. Beschreibung Entfernen Sie die anfänglichen GR-Genesis-Stimmen b. Beispiel Stimmt – gültig am 04.11.2018 08:46 UTC. C. Reichweite Wahr/Falsch – Hinweis: Von „Wahr“ kann nicht auf „Falsch“ zurückgesetzt werden. 11. ENERGIEGEBÜHR a. Beschreibung Ändern Sie die Gebühr von 1 Energie. B. Beispiel 20 SO. C. Reichweite [0,100 000 000 000 000 000] SONNE 12. EXCHANGE_CREATE_FEE a. Beschreibung Ändern Sie die Kosten für die Erstellung von Handelspaaren. Bekannt als die Kosten für die Erstellung eines Handelsauftrags. B. Beispiel [1.024.000.000] SUN – das sind 1024 TRX. C. Reichweite [0,100 000 000 000 000 000] SONNE 13. MAX_CPU_TIME_OF_ONE_TX a. Beschreibung Ändern Sie die maximale Ausführungszeit einer Transaktion. Bekannt als das Timeout-Limit von eine Transaktion. B. Beispiel 50 ms. C. Reichweite
[0, 1000] ms
14. ALLOW_UPDATE_ACCOUNT_NAME
a.
Beschreibung
Ändern Sie die Option, damit ein Konto seinen Kontonamen aktualisieren kann.
B.
Beispiel
Falsch – was ab Java-Tron Odyssey v3.2 vorgeschlagen werden kann.
C.
Reichweite
Wahr/Falsch – Hinweis: Von „Wahr“ kann nicht auf „Falsch“ zurückgesetzt werden.
15. ALLOW_SAME_TOKEN_NAME
a.
Beschreibung
Ändern Sie die Validierung, um zuzulassen, dass verschiedene token einen doppelten Namen haben.
B.
Beispiel
Falsch – was ab Java-Tron Odyssey v3.2 vorgeschlagen werden kann.
C.
Reichweite
Wahr/Falsch – Hinweis: Von „Wahr“ kann nicht auf „Falsch“ zurückgesetzt werden.
16. ALLOW_DELEGATE_RESOURCE
a.
Beschreibung
Ändern Sie die Validierung, sodass token mit einem doppelten Namen ausgegeben werden darf
tokenID des token im Datentyp „Long Integer“ wäre die einzige atomare Variable
Identifizierung eines token.
B.
Beispiel
Falsch – was ab Java-Tron Odyssey v3.2 vorgeschlagen werden kann.
C.
Reichweite
Wahr/Falsch – Hinweis: Von „Wahr“ kann nicht auf „Falsch“ zurückgesetzt werden.
17. TOTAL_ENERGY_LIMIT
a.
Beschreibung
Ändern Sie den Gesamtenergiegrenzwert des gesamten Netzwerks.
B.
Beispiel
[50.000.000.000.000.000] SUN – das sind 50.000.000.000 TRX.
C.
Reichweite
[0.100.000.000.000.000.000] SONNE
18. ALLOW_TVM_TRANSFER_TRC10
a.
Beschreibung
TRC-10 token-Übertragung innerhalb von smart contracts zulassen.
ALLOW_UPDATE_ACCOUNT_NAME, ALLOW_SAME_TOKEN_NAME,
ALLOW_DELEGATE_RESOURCE-Vorschläge müssen alle genehmigt werden, bevor sie vorgeschlagen werden
diese Parameteränderung.
B.
Beispiel
Falsch – was ab Java-Tron Odyssey v3.2 vorgeschlagen werden kann.
C.
Reichweite
Wahr/Falsch – Hinweis: Von „Wahr“ kann nicht auf „Falsch“ zurückgesetzt werden.9.2.3 Angebot erstellen
Nur die SR-Konten haben das Recht, eine Änderung der dynamischen Netzwerkparameter vorzuschlagen. 9.2.4 Abstimmungsvorschlag
Nur Ausschussmitglieder (SRs) können für einen Vorschlag stimmen und das Mitglied, das nicht rechtzeitig abstimmt wird als Nichtübereinstimmung gewertet. Das Angebot ist nach seiner Erstellung drei Tage lang aktiv. Die Abstimmung kann können während des dreitägigen Abstimmungsfensters geändert oder abgerufen werden. Sobald die Frist abgelaufen ist, wird der Vorschlag eingereicht entweder erfolgreich (19+ Stimmen) oder scheitern (und enden). 9.2.5 Angebot stornieren
Der Antragsteller kann den Vorschlag vor Inkrafttreten stornieren. 9.3 Struktur
SRs sind die Zeugen neu generierter Blöcke. Ein Zeuge enthält 8 Parameter:
1.
Adresse: die Adresse dieses Zeugen – z.B. 0xu82h…7237.
2.
voteCount: Anzahl der erhaltenen Stimmen zu diesem Zeugen – z.B. 234234.
3.
pubKey: der öffentliche Schlüssel für diesen Zeugen – z.B. 0xu82h…7237.
4.
URL: die URL für diesen Zeugen – z.B. https://www.noonetrust.com.
5.
totalProduced: Die Anzahl der Blöcke, die dieser Zeuge erzeugt hat – z. B. 2434.
6.
totalMissed: Die Anzahl der Blöcke, die dieser Zeuge verpasst hat – z.B. 7.
7.
LatestBlockNum: die neueste Blockhöhe – z.B. 4522.
8.
isjobs: eine boolesche Flagge.
Protobuf-Datenstruktur:
Nachricht Zeuge{
Bytes Adresse = 1;
int64 voteCount = 2;
Bytes pubKey = 3;
string url = 4;
int64 totalProduced = 5;
int64 totalMissed = 6;
int64 LatestBlockNum = 7;
bool isJobs = 8;
}
- DApp-Entwicklung 10.1 APIs
Das TRON-Netzwerk bietet eine große Auswahl von über 60 HTTP-API-Gateways für die Interaktion mit dem Netzwerk über Full und Solidity Nodes. Darüber hinaus ist TronWeb eine umfassende JavaScript-Bibliothek Enthält API-Funktionen, die es Entwicklern ermöglichen, smart contracts bereitzustellen. Ändern Sie die blockchain Status, Abfrage von blockchain- und Vertragsinformationen, Handel am DEX und vieles mehr. Diese API Gateways können auf ein lokales Privatenet, das Shasta-Testnet oder das TRON Mainnet gerichtet sein.
10.2 Netzwerke
TRON verfügt sowohl über ein Shasta-Testnetz als auch über ein Mainnet. Entwickler können eine Verbindung zu den Netzwerken herstellen
Bereitstellung von Knoten, Interaktion über TronStudio oder Verwendung von APIs über den TronGrid-Dienst. Das TronGrid
Der Dienst besteht aus Knotenclustern mit Lastausgleich, die auf AWS-Servern weltweit gehostet werden. Als DApp
Die Entwicklung nimmt zu und das API-Aufrufvolumen nimmt zu. TronGrid bewältigt den Anstieg erfolgreich
API-Verkehr.
10.3 Werkzeuge
TRON bietet eine Reihe von Entwicklungstools, mit denen Entwickler innovative DApps erstellen können.
TronBox ist ein Framework, das es Entwicklern ermöglicht, smart contracts über TronWeb zu testen und bereitzustellen
API. TronGrid ist ein lastenausgleichender und gehosteter API-Dienst, der Entwicklern den Zugriff ermöglicht
TRON Netzwerk, ohne einen eigenen Knoten betreiben zu müssen. TronGrid bietet Zugriff auf beide Shasta
testnet sowie das TRON Mainnet. TronStudio ist eine umfassende integrierte Entwicklung
Umgebung (IDE), die es Entwicklern ermöglicht, ihre Solidity Smart zu kompilieren, bereitzustellen und zu debuggen
Verträge. TronStudio enthält einen internen Vollknoten, der eine private lokale Umgebung für erstellt
smart contract Tests vor der Bereitstellung. Die TronWeb API-Bibliothek verbindet Entwickler mit dem
Netzwerk über eine große Auswahl an in JavaScript verpackten HTTP-API-Aufrufen.
10.4 Ressourcen
Der TRON Developer Hub ist eine umfassende API-Dokumentationsseite, die darauf zugeschnitten ist 12 Entwickler, die auf dem Netzwerk TRON aufbauen möchten. Der Developer Hub bietet ein High-Level konzeptionelles Verständnis von TRON und führt Benutzer durch die Details der Interaktion mit dem 12 Entwickler-Hub: https://developers.tron.network/
Netzwerk. Die Leitfäden führen Entwickler durch die Knoteneinrichtung, Bereitstellung und Interaktion mit smart
Verträge, API-Interaktion und -Implementierung, Erstellen von Beispiel-DApps und Verwenden jeder dieser
Entwicklertools. Darüber hinaus sind Entwickler-Community-Kanäle über Discord verfügbar.
13
13 Discord: https://discordapp.com/invite/GsRgsTD
- Fazit
TRON ist eine skalierbare blockchain Lösung, die innovative Methoden zur Bewältigung eingesetzt hat Herausforderungen, mit denen alte blockchain-Netzwerke konfrontiert sind. Mit über 2 Millionen Transaktionen pro Tag, Mit über 700.000 TRX-Konten und mehr als 2.000 TPS hat TRON der Community geholfen Schaffung eines dezentralen und demokratisierten Netzwerks.