Sách trắng TRON

Por Justin Sun · 2017

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.

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

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

TRON development roadmap phase 2 timeline from July 2018 to 2019

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

Giới thiệu

1.1 Tầm nhìn

TRON là một dự án đầy tham vọng dành riêng cho việc thiết lập một mạng Internet phi tập trung thực sự và cơ sở hạ tầng. Giao thức TRON, một trong những hệ điều hành dựa trên blockchain lớn nhất trong thế giới, cung cấp hỗ trợ công khai blockchain về thông lượng cao, khả năng mở rộng cao và tính sẵn sàng cao cho tất cả Ứng dụng phi tập trung (DApp) trong hệ sinh thái TRON. Việc mua lại vào tháng 7 năm 2018 BitTorrent củng cố thêm vai trò lãnh đạo của TRON trong việc theo đuổi hệ sinh thái phi tập trung.
1.2 Bối cảnh

Sự ra đời của Bitcoin vào năm 2009 đã cách mạng hóa nhận thức của xã hội về hệ thống tài chính truyền thống sau cuộc Đại suy thoái (2007-2008). Khi các quỹ phòng hộ và ngân hàng tập trung sụp đổ do đầu cơ vào các công cụ tài chính phái sinh không rõ ràng, công nghệ blockchain đã cung cấp một sổ cái chung minh bạch mà từ đó bất kỳ ai cũng có thể thu thập được thông tin giao dịch. các các giao dịch được bảo mật bằng mật mã bằng cơ chế đồng thuận Proof of Work (PoW), do đó ngăn chặn các vấn đề chi tiêu gấp đôi.

Vào cuối năm 2013, sách trắng Ethereum đã đề xuất một mạng trong đó smart contracts và một Turing-Complete Ethereum Máy ảo (EVM) sẽ cho phép các nhà phát triển tương tác với mạng thông qua DApps. Tuy nhiên, khi khối lượng giao dịch trong Bitcoin và Ethereum đạt đỉnh điểm vào năm 2017, rõ ràng là do thời gian thông lượng giao dịch thấp và phí giao dịch cao các loại tiền điện tử như Bitcoin và Ethereum ở trạng thái hiện tại không thể mở rộng để phổ biến nhận con nuôi. Do đó, TRON được thành lập và hình dung như một giải pháp sáng tạo cho những vấn đề cấp bách này những thách thức về khả năng mở rộng.

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

1.3 Lịch sử TRON DAO được thành lập vào tháng 7 năm 2017 tại Singapore. Vào tháng 12 năm 2017, TRON đã có đã đưa ra giao thức nguồn mở của nó. Testnet, Blockchain Explorer và Ví Web đều ra mắt vào tháng 3 năm 2018. TRON Mainnet ra mắt ngay sau đó vào tháng 5 năm 2018, đánh dấu Việc phát hành Odyssey 2.0 là một cột mốc kỹ thuật. Vào tháng 6 năm 2018, TRON tuyên bố độc lập với việc tạo ra khối Genesis, cùng với việc mua lại BitTorrent vào tháng 7 năm 2018. trong Tháng 10 năm 2018, TRON ra mắt TRON Máy ảo (TVM), một bộ công cụ hoàn chỉnh dành cho nhà phát triển, và hệ thống hỗ trợ 360. Lộ trình TRON liên quan đến việc kết hợp 100 triệu người dùng của BitTorrent với mạng TRON thông qua Project Atlas, cũng như thúc đẩy cộng đồng nhà phát triển triển khai các DApp mới thú vị trên mạng TRON1. 1 V1.0 có sẵn tại https://tron.network/static/doc/white_paper_v_1_0.pdf

1.4 Thuật ngữ

Địa chỉ/Ví Địa chỉ hoặc ví bao gồm thông tin xác thực tài khoản trên mạng TRON được tạo bởi cặp khóa, bao gồm khóa riêng và khóa chung, khóa sau được lấy từ khóa trước thông qua một thuật toán. Khóa chung thường được sử dụng để mã hóa khóa phiên, chữ ký xác minh và mã hóa dữ liệu có thể được giải mã bằng khóa riêng tương ứng.

ABI Giao diện nhị phân ứng dụng (ABI) là giao diện giữa hai mô-đun chương trình nhị phân; thường một trong những mô-đun này là thư viện hoặc cơ sở hệ điều hành và mô-đun còn lại là nơi người dùng chạy chương trình.

API Giao diện lập trình ứng dụng (API) chủ yếu được sử dụng để phát triển khách hàng người dùng. Với API hỗ trợ, token nền tảng phát hành cũng có thể do chính các nhà phát triển thiết kế.

Tài sản Trong tài liệu của TRON, nội dung giống với token, cũng được ký hiệu là TRC-10 token.

Điểm băng thông (BP) Để giữ cho mạng hoạt động trơn tru, TRON giao dịch mạng sử dụng BP làm nhiên liệu. Mỗi tài khoản nhận được 5000 BP miễn phí hàng ngày và có thể kiếm được nhiều hơn nữa bằng cách đóng băng TRX cho BP. Cả TRX và TRC-10 token chuyển khoản là các giao dịch bình thường khiến BP phải trả phí. Triển khai và thực hiện hợp đồng thông minh giao dịch tiêu thụ cả BP và Năng lượng.

Chặn Các khối chứa các bản ghi kỹ thuật số của các giao dịch. Một khối hoàn chỉnh bao gồm số ma thuật, kích thước khối, tiêu đề khối, bộ đếm giao dịch và dữ liệu giao dịch.

Khối phần thưởng Phần thưởng sản xuất khối được gửi đến một tài khoản phụ (địa chỉ/ví). Siêu đại diện có thể nhận phần thưởng của họ trên Tronscan hoặc trực tiếp thông qua API.

Tiêu đề khối Tiêu đề khối là một phần của khối. TRON tiêu đề khối chứa hash của khối trước đó, Merkle root, dấu thời gian, phiên bản và địa chỉ nhân chứng.Ví lạnh Ví lạnh hay còn gọi là ví ngoại tuyến, giữ cho khóa riêng bị ngắt kết nối hoàn toàn với bất kỳ mạng. Ví lạnh thường được cài đặt trên các thiết bị "lạnh" (ví dụ: máy tính hoặc điện thoại di động). ở chế độ ngoại tuyến) để đảm bảo tính bảo mật của khóa riêng TRX.

DApp Ứng dụng phi tập trung là Ứng dụng hoạt động mà không có bên đáng tin cậy tập trung. Một ứng dụng cho phép tương tác/thỏa thuận/giao tiếp trực tiếp giữa người dùng cuối và/hoặc tài nguyên không qua trung gian.

gRPC gRPC (GRPC Remote Protocol Calls) là một hệ thống gọi thủ tục từ xa (RPC) mã nguồn mở 2 ban đầu được phát triển tại Google. Nó sử dụng HTTP/2 để truyền tải, Bộ đệm giao thức làm giao diện ngôn ngữ mô tả và cung cấp các tính năng như xác thực, truyền phát và luồng hai chiều kiểm soát, chặn hoặc không chặn các ràng buộc cũng như hủy bỏ và hết thời gian chờ. Nó tạo ra liên kết máy khách và máy chủ đa nền tảng cho nhiều ngôn ngữ. Các tình huống sử dụng phổ biến nhất bao gồm các dịch vụ kết nối theo kiến trúc kiểu microservices và kết nối các thiết bị di động, đồng thời trình duyệt của khách hàng đến các dịch vụ phụ trợ.

Ví nóng Ví nóng hay còn gọi là ví trực tuyến cho phép sử dụng khóa riêng của người dùng trực tuyến, do đó nó có thể dễ bị tổn thương tiềm ẩn hoặc bị chặn bởi các tác nhân độc hại.

JDK Bộ công cụ phát triển Java là SDK Java được sử dụng cho các ứng dụng Java. Nó là cốt lõi của Java phát triển, bao gồm môi trường ứng dụng Java (thư viện lớp Java+JVM) và Java công cụ.

KhaosDB TRON có KhaosDB trong bộ nhớ nút đầy đủ có thể lưu trữ tất cả các chuỗi mới được phân nhánh được tạo trong một khoảng thời gian nhất định và hỗ trợ các nhân chứng chuyển từ chuỗi hoạt động của chính họ một cách nhanh chóng thành một chuỗi chính mới. Xem 2.2.2 Lưu trữ trạng thái để biết thêm chi tiết.

CấpDB LevelDB ban đầu được thông qua với mục tiêu chính là đáp ứng các yêu cầu về R/W nhanh và tốc độ nhanh. sự phát triển. Sau khi khởi chạy Mainnet, TRON đã nâng cấp cơ sở dữ liệu của nó lên một cơ sở dữ liệu được tùy chỉnh hoàn toàn một phục vụ cho nhu cầu riêng của mình. Xem 2.2.1 Lưu trữ chuỗi khối để biết thêm chi tiết.

Rễ cây Merkle Gốc Merkle là hash của tất cả hashes của tất cả các giao dịch được đưa vào như một phần của khối trong blockchain mạng. Xem 3.1 Bằng chứng về cổ phần được ủy quyền (DPoS) để biết thêm chi tiết. 2 https://en.wikipedia.org/wiki/GRPC

TRON development roadmap phase 2 timeline from July 2018 to 2019

Mạng thử nghiệm công cộng (Shasta) Một phiên bản của mạng chạy trong cấu hình một nút. Nhà phát triển có thể kết nối và thử nghiệm các tính năng mà không phải lo lắng về thiệt hại kinh tế. Testnet token không có giá trị và bất kỳ ai cũng có thể yêu cầu nhiều hơn từ vòi công cộng.

RPC
3 Trong điện toán phân tán, lệnh gọi thủ tục từ xa (RPC) là khi một chương trình máy tính gây ra thủ tục (chương trình con) để thực thi trong một không gian địa chỉ khác (thường là trên một máy tính khác trên một mạng chia sẻ), được mã hóa như thể đó là một lệnh gọi thủ tục (cục bộ) thông thường, không có lập trình viên mã hóa rõ ràng các chi tiết cho tương tác từ xa.

Khả năng mở rộng Khả năng mở rộng là một tính năng của Giao thức TRON. Đó là khả năng của một hệ thống, mạng hoặc quy trình để xử lý khối lượng công việc ngày càng tăng hoặc khả năng mở rộng công việc để đáp ứng sự tăng trưởng đó.

CN SUN đã thay thế drop thành đơn vị nhỏ nhất của TRX. 1 TRX = 1.000.000 SUN.

Thông lượng Thông lượng cao là một tính năng của TRON Mainnet. Nó được đo bằng Số giao dịch mỗi giây (TPS), cụ thể là khả năng giao dịch tối đa trong một giây.

Dấu thời gian Thời gian gần đúng của quá trình sản xuất khối được ghi lại dưới dạng dấu thời gian Unix, là số lượng mili giây đã trôi qua kể từ 00:00:00 ngày 01 tháng 1 năm 1970 UTC.

TKC Cấu hình mã thông báo.

TRC-10 Tiêu chuẩn tiền điện tử token trên nền tảng TRON. Một số quy tắc và giao diện nhất định phải tuân theo khi nắm giữ đợt chào bán tiền xu ban đầu vào TRON blockchain.

TRX TRX là viết tắt của Tronix, là tiền điện tử chính thức của 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.

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

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/

Kiến trúc

TRON áp dụng kiến ​​trúc 3 lớp được chia thành Lớp lưu trữ, Lớp lõi và Lớp ứng dụng. Giao thức TRON tuân theo Google Protobuf, về cơ bản hỗ trợ đa ngôn ngữ phần mở rộng.

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

Hình 1: TRON Kiến trúc 3 lớp

2.1 Cốt lõi

Có một số mô-đun trong lớp lõi, bao gồm smart contracts, quản lý tài khoản và sự đồng thuận. Máy ảo dựa trên ngăn xếp được triển khai trên TRON và hướng dẫn được tối ưu hóa bộ được sử dụng. Để hỗ trợ tốt hơn cho các nhà phát triển DApp, Solidity đã được chọn làm smart contract 4 ngôn ngữ, tiếp theo là sự hỗ trợ trong tương lai của các ngôn ngữ nâng cao khác. Ngoài ra, sự đồng thuận của TRON cơ chế dựa trên Bằng chứng cổ phần được ủy quyền (DPoS) và nhiều cải tiến đã được thực hiện trong nhằm đáp ứng những yêu cầu riêng biệt của nó. 2.2 Lưu trữ

TRON đã thiết kế một giao thức lưu trữ phân tán độc đáo bao gồm Lưu trữ khối và Trạng thái Lưu trữ. Khái niệm cơ sở dữ liệu đồ thị đã được đưa vào thiết kế lớp lưu trữ để đáp ứng tốt hơn nhu cầu lưu trữ dữ liệu đa dạng trong thế giới thực. 2.2.1 Lưu trữ chuỗi khối

TRON blockchain bộ lưu trữ chọn sử dụng LevelDB, được Google phát triển và đã được chứng minh thành công với nhiều công ty và dự án. Nó có hiệu suất cao và hỗ trợ byte tùy ý mảng dưới dạng cả khóa và giá trị, nhận, đặt và xóa số ít, đặt và xóa theo đợt, hai chiều các vòng lặp và nén đơn giản bằng thuật toán Snappy rất nhanh. 2.2.2 Lưu trữ trạng thái

TRON có KhaosDB trong bộ nhớ nút đầy đủ có thể lưu trữ tất cả các chuỗi mới phân nhánh được tạo trong một khoảng thời gian nhất định và hỗ trợ các nhân chứng chuyển từ chuỗi hoạt động của chính họ một cách nhanh chóng thành một chuỗi chính mới. Nó cũng có thể bảo vệ bộ nhớ blockchain bằng cách làm cho nó ổn định hơn khỏi bị chấm dứt một cách bất thường ở trạng thái trung gian. 2.3 Ứng dụng

Các nhà phát triển có thể tạo nhiều loại DApp và ví tùy chỉnh đa dạng trên TRON. Kể từ TRON cho phép smart contract được triển khai và thực thi, cơ hội của các ứng dụng tiện ích là không giới hạn. 4 Tài liệu chính thức của Solidity: https://solidity.readthedocs.io/

2.4 Giao thức

TRON giao thức tuân thủ Bộ đệm giao thức của Google , là giao thức trung lập về ngôn ngữ, nền tảng, 5 và cách mở rộng tuần tự hóa dữ liệu có cấu trúc để sử dụng trong các giao thức truyền thông, lưu trữ dữ liệu, và hơn thế nữa. 2.4.1 Bộ đệm giao thức

Bộ đệm giao thức (Protobuf) là một cơ chế tự động, linh hoạt, hiệu quả để tuần tự hóa các dữ liệu có cấu trúc. dữ liệu, tương tự như JSON hoặc XML, nhưng nhỏ hơn, nhanh hơn và đơn giản hơn nhiều.

Các định nghĩa Protobuf (.proto) có thể được sử dụng để tạo mã cho C++, Java, C#, Python, Ruby, Ngôn ngữ Golang và Objective-C thông qua các trình tạo mã chính thức. Bên thứ ba khác nhau việc triển khai cũng có sẵn cho nhiều ngôn ngữ khác. Protobuf giúp dễ dàng phát triển cho khách hàng bằng cách thống nhất các định nghĩa API và tối ưu hóa việc truyền dữ liệu. Khách hàng có thể lấy API .proto từ kho lưu trữ giao thức của TRON và tích hợp thông qua mã được tạo tự động thư viện.

Để so sánh, Bộ đệm giao thức nhỏ hơn từ 3 đến 10 lần và nhanh hơn 20 đến 100 lần so với XML, với cú pháp ít mơ hồ hơn. Protobuf tạo các lớp truy cập dữ liệu dễ sử dụng hơn theo lập trình. 2.4.2 HTTP

TRON Giao thức cung cấp API HTTP RESTful thay thế cho API Protobuf. Họ chia sẻ giống nhau giao diện nhưng API HTTP có thể dễ dàng được sử dụng trong ứng dụng khách javascript. 2.5 TRON Máy ảo (TVM)

TVM là một máy ảo Turing hoàn chỉnh, gọn nhẹ được phát triển cho hệ sinh thái của TRON. các TVM kết nối liền mạch với hệ sinh thái phát triển hiện có để cung cấp hàng triệu giải pháp toàn cầu nhà phát triển có hệ thống blockchain được xây dựng tùy chỉnh hiệu quả, thuận tiện, ổn định, an toàn và có khả năng mở rộng.
2.6 Sàn giao dịch phi tập trung (DEX)

5 Tài liệu chính thức về Bộ đệm giao thức của Google: https://developers.google.com/protocol-buffers/Mạng TRON vốn hỗ trợ các chức năng trao đổi phi tập trung. Một sàn giao dịch phi tập trung bao gồm nhiều cặp giao dịch. Một cặp giao dịch (ký hiệu “Trao đổi”) là một Thị trường trao đổi giữa TRC-10 tokens hoặc giữa TRC-10 token và TRX. Bất kỳ tài khoản nào cũng có thể tạo giao dịch ghép nối giữa bất kỳ token nào, ngay cả khi cặp tương tự đó đã tồn tại trên mạng TRON. Giao dịch và biến động giá của các cặp giao dịch tuân theo Giao thức Bancor. Mạng TRON quy định rằng 6 trọng số của hai token trong tất cả các cặp giao dịch đều bằng nhau, do đó tỷ lệ số dư của chúng là giá giữa họ. Ví dụ: hãy xem xét một cặp giao dịch chứa hai token, ABC và DEF. ABC có số dư 10 triệu và DEF có số dư 1 triệu. Vì trọng lượng của chúng bằng nhau nên 10 ABC = 1 DEF. Điều này có nghĩa là tỷ lệ ABC và DEF là 10 ABC trên DEF. 2.7 Thực hiện

Mã TRON blockchain được triển khai bằng Java và ban đầu là một nhánh từ EthereumJ.

6 Trang web chính thức của Giao thức Bancor: 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 ​x​1 ​≠ x​2​ ​tais que ​h(x​1​) =h(x​2​)​. 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 ​x​1​, e portanto h(x​1​)​, é computacionalmente inviável encontre qualquer x2 tal que h(x​1​) = h(x​2​)​. 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 ​x​2​ 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.

Sự đồng thuận

3.1 Bằng chứng về cổ phần được ủy quyền (DPoS)

Cơ chế đồng thuận sớm nhất là cơ chế đồng thuận Proof of Work (PoW). Cái này giao thức hiện được triển khai trong Bitcoin và Ethereum . Trong hệ thống PoW, các giao dịch 7 8 phát qua mạng được nhóm lại với nhau thành các khối mới để xác nhận thợ mỏ. các quá trình xác nhận bao gồm hash thực hiện các giao dịch bằng cách sử dụng thuật toán mã hóa hash cho đến khi đã đạt được gốc merkle, tạo ra cây merkle:

Hình 2: 8 giao dịch TRX được hashed vào thư mục gốc merkle. Gốc merkle này sau đó được đưa vào tiêu đề khối, được gắn vào các khối đã được xác nhận trước đó để tạo thành blockchain. Điều này cho phép theo dõi dễ dàng và minh bạch giao dịch, dấu thời gian và các thông tin liên quan khác.

7 Bitcoin báo cáo chính thức: https://bitcoin.org/bitcoin.pdf 8 Ethereum sách trắng: https://github.com/ethereum/wiki/wiki/White-Paper

Thuật toán mật mã hashing rất hữu ích trong việc ngăn chặn tấn công mạng vì chúng sở hữu một số thuộc tính:
9

● Kích thước độ dài đầu vào/đầu ra​ - Thuật toán có thể chuyển vào đầu vào có kích thước bất kỳ và xuất ra giá trị hash có độ dài cố định.
● Hiệu quả​ - Thuật toán tính toán tương đối dễ dàng và nhanh chóng.
● Điện trở tiền ảnh​ - Đối với một đầu ra ​z​ cho trước, không thể tìm thấy bất kỳ đầu vào ​x​ nào sao cho h(x) =​ ​z​. Nói cách khác, thuật toán hashing ​h(x)​ là hàm một chiều trong đó chỉ có đầu ra có thể được tìm thấy, cho trước một đầu vào. Điều ngược lại là không thể.
● Khả năng chống va chạm​ - Về mặt tính toán không thể tìm được bất kỳ cặp ​x​1 ​≠ x​2​ ​sao cho ​h(x​1​) = h(x​2​)​. Nói cách khác, xác suất tìm thấy hai đầu vào khác nhau hash đến cùng một đầu ra cực kỳ thấp. Đặc tính này cũng ngụ ý khả năng chống tiền ảnh thứ hai.
● Điện trở tiền ảnh thứ hai​ - Cho ​x​1​, và do đó ​h(x​1​),​, về mặt tính toán là không thể thực hiện được tìm ​x​2​ bất kỳ sao cho ​h(x​1​) = h(x​2​)​. Mặc dù đặc tính này tương tự như khả năng chống va chạm, nhưng thuộc tính khác ở chỗ nó nói rằng kẻ tấn công với ​x​1​ nhất định sẽ tìm thấy nó bằng máy tính không thể tìm thấy bất kỳ ​x​2​ hash nào cho cùng một đầu ra.
● Xác định - ánh xạ mỗi đầu vào thành một và chỉ một đầu ra. ● Hiệu ứng Avalanche​ - một thay đổi nhỏ ở đầu vào sẽ dẫn đến đầu ra hoàn toàn khác.

Các thuộc tính này mang lại cho mạng tiền điện tử giá trị nội tại bằng cách đảm bảo các cuộc tấn công không xảy ra. làm tổn hại mạng. Khi người khai thác xác nhận một khối, họ sẽ được thưởng token như một phần thưởng tích hợp động lực tham gia mạng lưới. Tuy nhiên, khi vốn hóa thị trường tiền điện tử toàn cầu tăng đều đặn, các thợ mỏ trở nên tập trung và tập trung tài nguyên máy tính của họ vào tích trữ token làm tài sản chứ không phải cho mục đích tham gia mạng lưới. Công cụ khai thác CPU đã nhường chỗ cho GPU, từ đó nhường chỗ cho các ASIC mạnh mẽ. Trong một nghiên cứu đáng chú ý, tổng công suất mức tiêu thụ khai thác Bitcoin được ước tính lên tới 3 GW , tương đương với mức tiêu thụ của Ireland 10 tiêu thụ điện năng. Nghiên cứu tương tự này dự kiến tổng mức tiêu thụ điện năng sẽ đạt 8 GW trong thời gian tới tương lai.

Để giải quyết vấn đề lãng phí năng lượng, cơ chế đồng thuận Proof of Stake (PoS) đã được đề xuất bởi nhiều mạng mới. Trong mạng PoS, chủ sở hữu token khóa số dư token của họ để trở thành khối validators. Các validator lần lượt đề xuất và bỏ phiếu ở khối tiếp theo. Tuy nhiên, vấn đề với PoS tiêu chuẩn là ảnh hưởng của validator tương quan trực tiếp với số lượng token bị khóa. Điều này dẫn đến việc các bên tích trữ một lượng lớn tiền tệ cơ sở của mạng bằng cách sử dụng quá mức ảnh hưởng đến hệ sinh thái mạng.

Cơ chế đồng thuận TRON sử dụng hệ thống Bằng chứng cổ phần được ủy quyền cải tiến trong đó 27 Siêu đại diện (SR) tạo ra các khối cho mạng. Cứ sau 6 giờ, chủ tài khoản TRX những người đóng băng tài khoản của họ có thể bỏ phiếu cho một số ứng cử viên SR, với 27 ứng cử viên hàng đầu được coi là SR. Cử tri có thể chọn SR dựa trên các tiêu chí như các dự án do SR tài trợ để 9 PAAR, C., PELZL, J., ​Tìm hiểu về mật mã: Sách giáo khoa dành cho sinh viên và người thực hành​, 2010 ed. Springer-Verlag Berlin Heidelberg, 2010.
10 https://www.sciencedirect.com/science/article/pii/S2542435118301776tăng cường áp dụng TRX và phân phối phần thưởng cho cử tri. Điều này cho phép một nền dân chủ hơn và hệ sinh thái phi tập trung. Tài khoản của SR là tài khoản bình thường nhưng số phiếu tích lũy của họ cho phép họ sản xuất khối. Với tốc độ thông lượng thấp Bitcoin và Ethereum do Cơ chế đồng thuận PoW và các vấn đề về khả năng mở rộng, hệ thống DPoS của TRON cung cấp một giải pháp cải tiến cơ chế dẫn đến 2000 TPS so với 3 TPS của Ethereum và 15 TPS của Bitcoin.

Mạng giao thức TRON tạo ra một khối cứ sau ba giây, với mỗi khối trao 32 TRX đến Siêu đại diện. Tổng cộng 336.384.000 TRX sẽ được trao hàng năm cho 27 SR. Mỗi khi SR hoàn thành việc sản xuất khối, phần thưởng sẽ được gửi đến tài khoản phụ trong siêu sổ cái. SR có thể kiểm tra nhưng không trực tiếp sử dụng các TRX token này. Mỗi người có thể thực hiện việc rút tiền SR cứ sau 24 giờ một lần, chuyển phần thưởng từ tài khoản phụ sang SR được chỉ định tài khoản.

Ba loại nút trên mạng TRON là Nút Nhân chứng, Nút Đầy đủ và Nút Solidity. Các nút chứng kiến được thiết lập bởi các SR và chịu trách nhiệm chính về việc sản xuất và đề xuất khối tạo/bỏ phiếu. Các nút đầy đủ cung cấp API cũng như các giao dịch và khối phát sóng. Đồng bộ hóa các nút vững chắc khối từ các Nút đầy đủ khác và cũng cung cấp các API có thể lập chỉ mục.

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

Tài khoản

4.1 Các loại

Ba loại tài khoản trong mạng TRON là tài khoản thông thường, tài khoản token và tài khoản hợp đồng.

1. Tài khoản thông thường được sử dụng cho các giao dịch tiêu chuẩn.
2. Tài khoản mã thông báo được sử dụng để lưu trữ TRC-10 tokens.
3. Tài khoản hợp đồng là smart contract tài khoản được tạo bởi tài khoản thông thường và có thể cũng được kích hoạt bởi các tài khoản thông thường. 4.2 Sáng tạo

Có ba cách để tạo tài khoản TRON:

1. Tạo tài khoản mới thông qua API 2. Chuyển TRX sang địa chỉ tài khoản mới 3. Chuyển bất kỳ TRC-10 token nào sang địa chỉ tài khoản mới

Một cặp khóa ngoại tuyến bao gồm một địa chỉ (khóa chung) và khóa riêng và không được ghi lại bởi TRON mạng, cũng có thể được tạo. Thuật toán tạo địa chỉ người dùng bao gồm tạo cặp khóa và sau đó trích xuất khóa chung (mảng byte 64 byte biểu thị x, y tọa độ). Băm khóa chung bằng hàm SHA3-256 (giao thức SHA3 được áp dụng là KECCAK-256) và trích xuất 20 byte cuối cùng của kết quả. Thêm 41 vào đầu mảng byte và đảm bảo độ dài địa chỉ ban đầu là 21 byte. Băm địa chỉ hai lần bằng hàm SHA3-256 và lấy 4 byte đầu tiên làm mã xác minh. Thêm mã xác minh vào cuối mã ban đầu địa chỉ và lấy địa chỉ ở định dạng base58check thông qua mã hóa base58. Một mã hóa Địa chỉ Mainnet bắt đầu bằng T và có độ dài 34 byte. 4.3 Cấu trúc

Ba loại tài khoản khác nhau là Thông thường, Phát hành tài sản và Hợp đồng. Một tài khoản chứa 7 thông số:

1. account_name​: tên của tài khoản này – ví dụ: Tài khoản Hóa đơn.
2. type​: loại tài khoản này là gì – ví dụ: 0 (viết tắt của loại ‘Bình thường’).
3. số dư​ : số dư của tài khoản này – ví dụ: 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.

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

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

Khối

Một khối thường chứa tiêu đề khối và một số giao dịch.

Protobuf data structure: message​ ​Block​ {
BlockHeader block_header = ​1​; ​repeated​ Transaction transactions = ​2​; } 5.1 Tiêu đề khối

Tiêu đề khối chứa ​raw_data​, ​witness_signature​ và ​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 Dữ liệu thô

Dữ liệu thô được ký hiệu là ​raw_data​ trong Protobuf. Nó chứa dữ liệu thô của một tin nhắn, chứa 6 thông số:

1. timestamp​ : dấu thời gian của tin nhắn này – ví dụ: 1543884429000. 2. txTrieRoot​: Gốc của Cây Merkle – ví dụ: 7 dacsa…3ed. 3. parentHash​: hash của khối cuối cùng – ví dụ: 7 dacsa…3ed. 4. number​: chiều cao khối – ví dụ: 4638708. 5. phiên bản​: dành riêng – ví dụ: 5.

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

6. nhân chứng_address​: địa chỉ của nhân chứng được đóng gói trong khối này – ví dụ: 41928c...4d21. 5.1.2 Chữ ký của nhân chứng

Chữ ký của nhân chứng được ký hiệu là ​witness_signature​ trong Protobuf, đây là chữ ký cho việc này tiêu đề khối từ nút nhân chứng. 5.1.3 ID khối

Block ID được ký hiệu là ​blockID​ trong Protobuf. Nó chứa nhận dạng nguyên tử của một khối. một khối ID chứa 2 tham số: 1. hash​: hash của khối. 2. số​: hash và chiều cao của khối. 5.2 Giao dịch 5.2.1 Ký kết

Quá trình ký giao dịch của TRON tuân theo thuật toán mã hóa ECDSA tiêu chuẩn, với Đường cong lựa chọn SECP256K1. Khóa riêng là một số ngẫu nhiên và khóa chung là một điểm trên đường cong elip. Quá trình tạo khóa công khai bao gồm việc tạo ra một số ngẫu nhiên đầu tiên dưới dạng khóa riêng, sau đó nhân điểm cơ sở của đường cong elip với khóa riêng để thu được khóa công khai. Khi một giao dịch xảy ra, dữ liệu thô của giao dịch trước tiên được chuyển đổi thành định dạng byte. Sau đó, dữ liệu thô sẽ trải qua SHA-256 hashing. Khóa riêng tương ứng với hợp đồng sau đó ký vào kết quả của SHA256 hash. Kết quả chữ ký sau đó được thêm vào giao dịch.
5.2.2 Mô hình băng thông

Các giao dịch thông thường chỉ tiêu tốn điểm băng thông, nhưng các hoạt động smart contract tiêu tốn cả hai điểm năng lượng và băng thông. Có hai loại điểm băng thông có sẵn. Người dùng có thể đạt được điểm băng thông từ việc đóng băng TRX, trong khi 5000 điểm băng thông miễn phí cũng có sẵn hàng ngày.

Khi một giao dịch TRX được phát sóng, nó sẽ được truyền và lưu trữ dưới dạng một mảng byte trên mạng lưới. Điểm băng thông được tiêu thụ bởi một giao dịch = số byte giao dịch nhân với tốc độ điểm băng thông. Ví dụ: nếu độ dài mảng byte của giao dịch là 200, sau đó giao dịch tiêu tốn 200 điểm băng thông. Tuy nhiên, nếu việc chuyển TRX hoặc token dẫn đến tài khoản mục tiêu đang được tạo, sau đó chỉ sử dụng điểm băng thông để tạo tài khoản sẽ bị trừ, điểm băng thông bổ sung sẽ không bị trừ. Trong quá trình tạo tài khoản kịch bản, trước tiên mạng sẽ sử dụng điểm băng thông mà người khởi tạo giao dịch đạt đượckhỏi việc đóng băng TRX. Nếu số tiền này không đủ thì mạng sẽ tiêu thụ giao dịch TRX của người khởi xướng.

Trong các kịch bản chuyển TRX tiêu chuẩn từ tài khoản TRX này sang tài khoản TRX khác, trước tiên mạng sẽ tiêu thụ điểm băng thông mà người khởi tạo giao dịch đạt được để đóng băng TRX. Nếu điều đó vẫn chưa đủ thì tiêu thụ từ 5000 điểm băng thông hàng ngày miễn phí. Nếu vẫn chưa đủ thì mạng tiêu thụ TRX của người khởi tạo giao dịch. Số lượng được tính bằng số byte trong giao dịch nhân với 10 SUN. Do đó, đối với hầu hết những người nắm giữ TRX, những người có thể không nhất thiết phải đóng băng TRX của họ tham gia bỏ phiếu SR, bước đầu tiên sẽ tự động bị bỏ qua (vì số dư TRX Frozen = 0) và 5000 băng thông miễn phí hàng ngày hỗ trợ giao dịch.

Đối với các lần truyền TRC-10 token, trước tiên mạng sẽ xác minh xem tổng số điểm băng thông miễn phí của nội dung token đã phát hành là đủ. Nếu không, điểm băng thông thu được từ việc đóng băng TRX sẽ là tiêu thụ. Nếu vẫn không đủ điểm băng thông thì sẽ tiêu tốn TRX của giao dịch người khởi xướng.

5.2.3 Phí

Tuy nhiên, mạng TRON thường không tính phí đối với hầu hết các giao dịch do hệ thống các hạn chế và sự công bằng, việc sử dụng băng thông và các giao dịch đều phải trả một số khoản phí nhất định.

Lệ phí được chia thành các loại sau: 1. Giao dịch thông thường tốn điểm băng thông. Người dùng có thể sử dụng điểm băng thông miễn phí hàng ngày (5000) hoặc đóng băng TRX để kiếm thêm. Khi điểm băng thông không đủ, TRX sẽ được sử dụng trực tiếp từ tài khoản gửi. TRX cần có là số byte * 10 SUN. 2. Hợp đồng thông minh tiêu tốn năng lượng (Phần 6) nhưng cũng sẽ cần điểm băng thông cho giao dịch sẽ được phát sóng và xác nhận. Chi phí băng thông cũng giống như trên. 3. Tất cả các giao dịch truy vấn đều miễn phí. Nó không tốn năng lượng hoặc băng thông.

Mạng TRON cũng xác định một tập hợp phí cố định cho các giao dịch sau: 1. Tạo nút chứng kiến: 9999 TRX 2. Phát hành TRC-10 token: 1024 TRX 3. Tạo tài khoản mới: 0,1 TRX 4. Tạo cặp trao đổi: 1024 TRX 5.2.4 Giao dịch dưới dạng Bằng chứng cổ phần (TaPoS)

TRON sử dụng TaPoS để đảm bảo tất cả các giao dịch đều xác nhận blockchain chính trong khi thực hiện khó làm giả dây chuyền giả. Trong TaPoS, mạng yêu cầu mỗi giao dịch bao gồm một phần hash của tiêu đề khối gần đây. Yêu cầu này ngăn chặn các giao dịch được thực hiện lại trên các nhánh không bao gồm khối được tham chiếu và cũng báo hiệu cho mạng rằng một người dùng cụ thể và của họcổ phần nằm trên một ngã ba cụ thể. Cơ chế đồng thuận này bảo vệ mạng khỏi việc từ chối Dịch vụ, 51%, khai thác ích kỷ và tấn công chi tiêu gấp đôi.
5.2.5 Xác nhận giao dịch

Một giao dịch được đưa vào khối tương lai sau khi được phát lên mạng. Sau 19 khối là được khai thác trên TRON (bao gồm khối riêng của nó), giao dịch được xác nhận. Mỗi khối được sản xuất bởi một trong 27 Siêu đại diện hàng đầu theo thể thức vòng tròn một lượt. Mỗi khối mất ~3 giây để được khai thác trên blockchain. Thời gian có thể thay đổi một chút đối với mỗi Siêu đại diện do mạng lưới tình trạng và cấu hình máy. Nói chung, một giao dịch được coi là đã được xác nhận đầy đủ sau khi ~1 phút. 5.2.6 Cấu trúc

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)

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

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 Máy ảo

6.1 Giới thiệu

TRON Máy ảo (TVM) là một máy ảo hoàn chỉnh, nhẹ, được phát triển cho Hệ sinh thái của TRON. Mục tiêu của nó là cung cấp một hệ thống blockchain được xây dựng tùy chỉnh hiệu quả, thuận tiện, ổn định, an toàn và có thể mở rộng.

TVM ban đầu được phân nhánh từ EVM và có thể kết nối liền mạch với độ bền vững hiện có smart contract 11 hệ sinh thái phát triển. Dựa vào đó, TVM còn hỗ trợ thêm sự đồng thuận DPoS.

TVM sử dụng khái niệm Năng lượng. Khác với cơ chế Gas trên EVM, hoạt động của các giao dịch và smart contract trên TVM đều miễn phí và không tiêu thụ TRX. Về mặt kỹ thuật, có thể thực hiện được khả năng tính toán trên TVM không bị hạn chế bởi tổng lượng nắm giữ tokens. 6.2 Quy trình làm việc

Trước tiên, trình biên dịch sẽ dịch Solidity smart contract thành mã byte có thể đọc và thực thi được trên TVM. TVM sau đó xử lý dữ liệu thông qua opcode, tương đương với việc vận hành logic của một máy trạng thái hữu hạn dựa trên ngăn xếp. Cuối cùng, TVM truy cập dữ liệu blockchain và gọi Giao diện dữ liệu ngoài thông qua lớp tương tác. 11 EVM: Ethereum Máy ảo (https://github.com/ethereum/ethereumj)

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

Hình 3: Quy trình làm việc TVM

6.3 Hiệu suất 6.3.1 Kiến trúc nhẹ

TVM áp dụng kiến trúc gọn nhẹ với mục đích giảm mức tiêu thụ tài nguyên để đảm bảo hiệu suất hệ thống. 6.3.2 Mạnh mẽ

Việc truyền TRX và smart contract chỉ tốn điểm băng thông, thay vì TRX. miễn cho TRON khỏi bị tấn công. Mức tiêu thụ băng thông có thể dự đoán được và tĩnh vì mỗi chi phí bước tính toán là cố định. 6.3.3 Khả năng tương thích cao

TVM tương thích với EVM và sẽ tương thích với nhiều máy ảo phổ thông hơn trong tương lai. Do đó, tất cả smart contract trên EVM đều có thể thực thi được trên TVM. 6.3.4 Chi phí thấp

Nhờ thiết lập băng thông của TVM, chi phí phát triển sẽ giảm và các nhà phát triển có thể tập trung vào phát triển logic của mã hợp đồng của họ. TVM cũng cung cấp giao diện tất cả trong một cho hợp đồng triển khai, kích hoạt và xem để mang lại sự thuận tiện cho các nhà phát triển.

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.

Hợp đồng thông minh

7.1 Giới thiệu

smart contract là giao thức xác minh kỹ thuật số việc đàm phán hợp đồng. Họ xác định các quy tắc và các hình phạt liên quan đến một thỏa thuận và cũng tự động thực thi các nghĩa vụ đó. thông minh mã hợp đồng tạo điều kiện thuận lợi, xác minh và thực thi việc đàm phán hoặc thực hiện một thỏa thuận hoặc giao dịch. Từ góc độ tokenization, smart contract cũng tạo điều kiện cho việc nạp tiền tự động chuyển giao giữa các bên tham gia nếu đáp ứng được các tiêu chí nhất định.

TRON smart contract được viết bằng ngôn ngữ Solidity. Sau khi được viết và kiểm tra, chúng có thể được được biên dịch thành mã byte, sau đó được triển khai trên mạng TRON cho Máy ảo TRON. Một lần đã triển khai, smart contract có thể được truy vấn thông qua địa chỉ hợp đồng của chúng. Ứng dụng hợp đồng Giao diện nhị phân (ABI) hiển thị các chức năng gọi của hợp đồng và được sử dụng để tương tác với mạng. 7.2 Mô hình năng lượng

Giới hạn năng lượng tối đa để triển khai và kích hoạt smart contract là hàm của một số biến:

● Năng lượng động từ việc đóng băng 1 TRX là 50.000.000.000 (Tổng giới hạn năng lượng) / (Tổng năng lượng Trọng lượng) ● Giới hạn năng lượng là giới hạn năng lượng hàng ngày của tài khoản từ việc đóng băng TRX ● Năng lượng còn lại trong tài khoản hàng ngày từ việc đóng băng TRX được tính là Giới hạn năng lượng - Năng lượng đã qua sử dụng ● Giới hạn phí trong TRX được đặt trong smart contract lệnh gọi triển khai/kích hoạt ● TRX còn lại có thể sử dụng trong tài khoản ● Năng lượng trên mỗi TRX nếu mua trực tiếp (10 SUN = 1 Năng lượng) = 100.000, SR có thể bỏ phiếu điều chỉnh

Có hai kịch bản tiêu thụ để tính toán giới hạn năng lượng tối đa cho việc triển khai và kích hoạt. Logic có thể được biểu diễn như sau:
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 Triển khai

Khi một TRON độ rắn smart contract được biên dịch, Máy ảo TRON sẽ đọc nội dung đã biên dịch mã byte. Mã byte bao gồm một phần để triển khai mã, mã hợp đồng và Auxdata. Auxdata là dấu vân tay mật mã của mã nguồn, được sử dụng để xác minh. Việc triển khai mã byte chạy hàm xây dựng và thiết lập các biến lưu trữ ban đầu. Việc triển khai code cũng tính toán mã hợp đồng và trả về TVM. ABI là một tệp JSON mô tả chức năng của TRON smart contract. Tệp này xác định tên chức năng, khả năng thanh toán của chúng, hàm trả về các giá trị và khả năng thay đổi trạng thái của chúng. 7.4 Chức năng kích hoạt

Khi TRON smart contract được triển khai, các chức năng của chúng có thể được kích hoạt riêng lẻ thông qua TronStudio hoặc thông qua lệnh gọi API. Các hàm thay đổi trạng thái yêu cầu Năng lượng trong khi các hàm chỉ đọc thực hiện mà không cần năng lượng. 7.5 TRON Độ rắn chắc

TRON Solidity là một nhánh từ ngôn ngữ Solidity của Ethereum. TRON sửa đổi dự án ban đầu thành hỗ trợ các đơn vị TRX và SUN (1 TRX = 1.000.000 SUN). Phần còn lại của cú pháp ngôn ngữ là tương thích với Solidity ^0.4.24. Do đó, Máy ảo Tron (TVM) gần như tương thích 100% với hướng dẫn EVM.

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 Mã thông báo TRC-10

Trong mạng TRON, mỗi tài khoản có thể phát hành token với chi phí là 1024 TRX. ​Để phát hành tokens, nhà phát hành cần chỉ định tên token, tổng vốn hóa, tỷ giá hối đoái đối với TRX, thời lượng lưu hành, mô tả, trang web, mức tiêu thụ băng thông tối đa trên mỗi tài khoản, tổng cộng mức tiêu thụ băng thông và lượng token bị đóng băng. Mỗi bản phát hành token cũng có thể định cấu hình Số băng thông tối đa hàng ngày của mỗi tài khoản token chuyển Điểm băng thông, số điểm băng thông tối đa hàng ngày của toàn bộ mạng token chuyển Điểm băng thông, tổng nguồn cung cấp token, thời gian khóa theo ngày và tổng số tiền trong số token giây đã bị khóa. 8.2 Mã thông báo TRC-20

TRC-20 là tiêu chuẩn kỹ thuật được sử dụng để smart contract triển khai token được hỗ trợ bởi TRON Máy ảo. Nó hoàn toàn tương thích với ERC-20.

Giao diện như sau:
hợp đồng TRC20Interface { ​hàm​ ​totalSupply​() ​công khai​ ​hằng​ ​trả về​ (uint); ​function​ ​balanceOf​(địa chỉ tokenOwner) ​công khai​ ​hằng​ ​trả về​ (uint cân bằng); ​hàm​ ​phụ cấp​(địa chỉ tokenChủ sở hữu, địa chỉ người chi tiêu) ​công khai​ ​hằng số trả về​ (uint còn lại); ​chức năng​ ​chuyển​(địa chỉ tới, uint tokens) ​trả về công khai​ (bool thành công); ​hàm​ ​phê duyệt​(người chi tiêu địa chỉ, uint tokens) ​trả về công khai ​ (bool thành công); ​function​ ​transferFrom​(địa chỉ từ, địa chỉ tới, uint tokens) ​ công khai trả về (bool thành công);

​sự kiện​ ​Transfer​(địa chỉ được lập chỉ mục từ, địa chỉ được lập chỉ mục tới, uint tokens); 
​sự kiện​ ​Phê duyệt​(địa chỉ được lập chỉ mục tokenChủ sở hữu, địa chỉ người chi tiêu được lập chỉ mục, uint

tokens); }

Từ quan điểm của nhà phát triển, có một số điểm khác biệt giữa TRC-10 và TRC-20. Một số điểm khác biệt chính là TRC-10 token có thể truy cập được bằng API và smart contract trong khi TRC-20 token cho phép tùy chỉnh giao diện nhưng chỉ có thể truy cập được trong smart contract giây.

Từ góc độ chi phí, TRC-10 token có phí giao dịch thấp hơn 1000 lần so với TRC-20, nhưng tốn chi phí băng thông cho việc truyền và gửi API. Chuyển khoản và gửi tiền thông minh hợp đồng cho TRC-10 token tốn cả băng thông và năng lượng.
8.3 Ngoài ra

Vì TRON sử dụng cùng một phiên bản Solidity như Ethereum nên có thể dễ dàng có thêm nhiều tiêu chuẩn token được chuyển tới 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; }

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

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

Quản trị

9.1 Siêu đại diện 9.1.1 Khái quát

Mọi tài khoản trong mạng TRON đều có thể đăng ký và có cơ hội trở thành Siêu nhân Người đại diện (ký hiệu là SR). Mọi người đều có thể bỏ phiếu cho ứng cử viên SR. 27 ứng cử viên hàng đầu với nhiều phiếu bầu nhất sẽ trở thành SR với quyền và nghĩa vụ tạo khối. Số phiếu bầu là được tính 6 giờ một lần và SR sẽ thay đổi tương ứng.

Để ngăn chặn các cuộc tấn công độc hại, bạn phải trả giá khi trở thành ứng cử viên SR. Khi nộp đơn, 9999 TRX sẽ bị đốt khỏi tài khoản của người nộp đơn. Sau khi thành công, tài khoản đó có thể tham gia SR cuộc bầu cử. 9.1.2 Bầu cử

TRON Cần có quyền lực (ký hiệu là TP) để bỏ phiếu và số lượng TP tùy thuộc vào cử tri tài sản bị đóng băng (TRX).

TP được tính như sau:
TP 1 TRX bị đóng băng để lấy băng thông 1 =

Mọi tài khoản trong mạng TRON đều có quyền bỏ phiếu cho SR của riêng mình.

Sau khi phát hành (giải phóng, khả dụng sau 3 ngày), người dùng sẽ không còn tài sản bị đóng băng nào và mất tất cả TP tương ứng. Kết quả là tất cả các phiếu bầu sẽ không hợp lệ cho vòng bỏ phiếu đang diễn ra và trong tương lai trừ khi TRX lại bị đóng băng để bỏ phiếu.

Lưu ý rằng mạng TRON chỉ ghi lại phiếu bầu gần đây nhất, nghĩa là mỗi phiếu bầu mới sẽ phủ nhận tất cả các phiếu bầu trước đó. 9.1.3 Phần thưởng một. Phần thưởng bầu chọn

Còn được gọi là Phần thưởng Ứng viên, được 127 ứng viên hàng đầu cập nhật mỗi vòng một lần (6 giờ) sẽ chia sẻ 115.200 TRX được khai thác. Phần thưởng sẽ được chia theo trọng lượng phiếu bầu mỗi ứng viên nhận được. Mỗi năm, tổng phần thưởng cho ứng viên sẽ là 168.192.000 TRX. Tổng phần thưởng bình chọn mỗi vòng Tại sao 115.200 TRX mỗi vòng? 15, 00 TRX tổng phần thưởng phiếu bầu mỗi vòng (V R/vòng) 1 2 =
V R/vòng = 16 T RX/khối × 20 khối/phút × 60 phút/giờ × 6 giờ/vòng Lưu ý: số tiền này được đặt theo WITNESS_STANDBY_ALLOWANCE = 115.200 TRX. Xem thông số mạng động. Tổng phần thưởng bình chọn mỗi năm Tại sao 168.192.000 TRX mỗi năm? 168, 192.000 T RX = tổng phần thưởng phiếu bầu mỗi năm (V R/năm) V R/năm = 115, 200 T RX/vòng × 4 vòng/ngày × 365 ngày/năm b. Khối phần thưởng Còn được gọi là Phần thưởng Siêu đại diện, dành cho 27 ứng cử viên (SR) hàng đầu được bầu mỗi vòng (6 giờ) sẽ chia sẻ khoảng 230.400 TRX được khai thác. Phần thưởng sẽ được chia đều giữa 27 SR (trừ đi tổng số khối phần thưởng bị bỏ lỡ do lỗi mạng). Tổng cộng 336.384.000 TRX sẽ được trao hàng năm cho 27 SR. Tổng phần thưởng khối mỗi vòng Tại sao 230.400 TRX mỗi vòng? 230, 400 T RX = tổng phần thưởng khối mỗi vòng (BR/vòng) BR/vòng = 32 T RX/khối × 20 khối/phút × 60 phút/giờ × 6 giờ/vòng Lưu ý: phần thưởng khối đơn vị được đặt theo WITNESS_PAY_PER_BLOCK = 32 TRX. Xem mạng động các thông số. Tổng phần thưởng khối mỗi năm Tại sao 336.384.000 TRX mỗi năm? 336, 384, 000 T RX = tổng phần thưởng khối mỗi năm (BR/năm) BR/năm = 230, 400 T RX/vòng × 4 vòng/ngày × 365 ngày/năm Ngày 1 tháng 1 năm 2021 Sẽ không có lạm phát trên mạng TRON trước ngày 1 tháng 1 năm 2021 và TRON DAO sẽ trao tất cả phần thưởng khối và phần thưởng ứng viên trước ngày đó. c. Tính toán phần thưởng

Tính toán phần thưởng SR tổng phần thưởng phần thưởng phiếu bầu (V R) phần thưởng khối (BR) t =
+

R tổng V R V. =
×
tổng số phiếu bầu số phiếu ứng cử viên SR nhận được
R

khối bị bỏ lỡ 2 B =
27 tổng BR − × 3
Lưu ý: phần thưởng được tính trên mỗi SR mỗi vòng (6 giờ)

Xếp hạng 28 để tính phần thưởng ứng viên xếp hạng 127 SR tổng phần thưởng phần thưởng phiếu bầu (V R) t =

R tổng V R V. =
×
tổng số phiếu bầu số phiếu ứng cử viên SR nhận được
Lưu ý: phần thưởng được tính cho mỗi ứng viên SR mỗi vòng (6 giờ) 9.2 Ủy ban 9.2.1 Khái quát

Ủy ban được sử dụng để sửa đổi các tham số mạng động TRON, chẳng hạn như tạo khối phần thưởng, phí giao dịch, v.v. Ủy ban bao gồm 27 SR trong vòng hiện tại. Mỗi SR có quyền đề xuất và biểu quyết các đề xuất. Khi một đề xuất nhận được 19 phiếu bầu trở lên thì đó là đã được phê duyệt và các thông số mạng mới sẽ được áp dụng trong kỳ bảo trì tiếp theo (3 ngày). 9.2.2 Tham số mạng động 0. MAINTENANCE_TIME_INTERVAL một. Mô tả
Sửa đổi khoảng thời gian bảo trì tính bằng ms. Được biết đến là khoảng thời gian bỏ phiếu SR cho mỗi tròn.
b. Ví dụ [6 * 3600 * 1000] ms - tức là 6 giờ. c. Phạm vi [3 * 27* 1000, 24 * 3600 * 1000] mili giây 1. ACCOUNT_UPGRADE_COST một. Mô tả Sửa đổi chi phí đăng ký tài khoản SR. b. Ví dụ [9.999.000.000] SUN - tức là 9.999 TRX. c. Phạm vi [0,100 000 000 000 000 000] MẶT TRỜI 2. TẠO_ACCOUNT_FEE một. Mô tả Sửa đổi phí tạo tài khoản.b. Ví dụ [100.000] SUN - tức là 1 TRX. c. Phạm vi [0,100 000 000 000 000 000] MẶT TRỜI 3. TRANSACTION_FEE một. Mô tả Sửa đổi mức phí được sử dụng để có thêm băng thông. b. Ví dụ [10] CN/byte. c. Phạm vi [0,100 000 000 000 000 000] SUN/byte 4. TÀI SẢN_ISSUE_FEE một. Mô tả Sửa đổi phí phát hành tài sản. b. Ví dụ [1024.000.000] SUN - tức là 1024 TRX. c. Phạm vi [0,100 000 000 000 000 000] MẶT TRỜI 5. WITNESS_PAY_PER_BLOCK một. Mô tả Sửa đổi phần thưởng tạo khối SR. Được biết đến như phần thưởng khối đơn vị. b. Ví dụ [32.000.000] SUN - tức là 32 TRX. c. Phạm vi [0,100 000 000 000 000 000] MẶT TRỜI 6. WITNESS_STANDBY_ALLOWANCE một. Mô tả Sửa đổi phần thưởng được trao cho 127 ứng cử viên SR hàng đầu. Được biết đến như là phần thưởng tổng số phiếu bầu mỗi vòng. b. Ví dụ [115.200.000.000] SUN - tức là 115.200 TRX. c. Phạm vi [0,100 000 000 000 000 000] MẶT TRỜI 7. TẠO_NEW_ACCOUNT_FEE_IN_SYSTEM_CONTRACT một. Mô tả Sửa đổi chi phí tạo tài khoản. Kết hợp các tham số mạng động #8 để có được tổng chi phí tạo tài khoản:
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT REATE_NEW_ACCOUNT_BANDWIDTH_RATE
C × C

b. Ví dụ [0] CN. c. Phạm vi [0,100 000 000 000 000 000] MẶT TRỜI 8. CREATE_NEW_ACCOUNT_BANDWIDTH_RATE

một. Mô tả Sửa đổi chi phí tạo tài khoản. Kết hợp các tham số mạng động #7 để có được tổng chi phí tạo tài khoản:
REATE_NEW_ACCOUNT_FEE_IN_SY STEM_CONTRACT REATE_NEW_ACCOUNT_BANDWIDTH_RATE
C × C

b. Ví dụ [1]. c. Phạm vi [0,100,000,000,000,000,000] 9. ALLOW_CREATION_OF_CONTRACTS một. Mô tả Để bật Máy ảo Tron (TVM). b. Ví dụ Đúng - được thiết lập để kích hoạt và có hiệu lực kể từ ngày 10/10/2018 23:47 UTC. c. Phạm vi Đúng/Sai 10. REMOVE_THE_POWER_OF_THE_GR một. Mô tả Xóa phiếu bầu GR ban đầu b. Ví dụ Đúng - có hiệu lực vào ngày 4/11/2018 08:46 UTC. c. Phạm vi Đúng/Sai - Lưu ý: không thể đặt lại thành Sai từ Đúng. 11. NĂNG LƯỢNG_FEE một. Mô tả Sửa đổi mức phí của 1 năng lượng. b. Ví dụ 20 CN. c. Phạm vi [0,100 000 000 000 000 000] MẶT TRỜI 12. TRAO ĐỔI_CREATE_FEE một. Mô tả Sửa đổi chi phí tạo cặp giao dịch. Được biết đến như là chi phí tạo ra một lệnh giao dịch. b. Ví dụ [1.024.000.000] SUN - tức là 1024 TRX. c. Phạm vi [0,100 000 000 000 000 000] MẶT TRỜI 13. MAX_CPU_TIME_OF_ONE_TX một. Mô tả Sửa đổi thời gian thực hiện tối đa của một giao dịch. Được biết đến như là giới hạn thời gian chờ của một giao dịch. b. Ví dụ 50 mili giây. c. Phạm vi

[0, 1000] mili giây 14. ALLOW_UPDATE_ACCOUNT_NAME một. Mô tả Sửa đổi tùy chọn để cho phép tài khoản cập nhật tên tài khoản của họ.
b. Ví dụ Sai - có sẵn để đề xuất từ java-tron Odyssey v3.2. c. Phạm vi Đúng/Sai - Lưu ý: không thể đặt lại thành Sai từ Đúng. 15. ALLOW_SAME_TOKEN_NAME một. Mô tả Sửa đổi xác thực cho phép token khác có tên trùng lặp.
b. Ví dụ Sai - có sẵn để đề xuất từ java-tron Odyssey v3.2. c. Phạm vi Đúng/Sai - Lưu ý: không thể đặt lại thành Sai từ Đúng. 16. ALLOW_DELEGATE_RESOURCE một. Mô tả Sửa đổi xác thực cho phép phát hành token với tên trùng lặp, do đó tokenID​ của token, ở kiểu dữ liệu số nguyên dài, sẽ là nguyên tử duy nhất nhận dạng token.
b. Ví dụ Sai - có sẵn để đề xuất từ java-tron Odyssey v3.2. c. Phạm vi Đúng/Sai - Lưu ý: không thể đặt lại thành Sai từ Đúng. 17. TOTAL_ENERGY_LIMIT một. Mô tả Sửa đổi tổng giới hạn năng lượng của toàn mạng. b. Ví dụ [50.000.000.000.000.000] SUN - tức là 50.000.000.000 TRX. c. Phạm vi [0,100,000,000,000,000,000] MẶT TRỜI 18. ALLOW_TVM_TRANSFER_TRC10 một. Mô tả Cho phép truyền TRC-10 token trong vòng smart contract giây. ALLOW_UPDATE_ACCOUNT_NAME, ALLOW_SAME_TOKEN_NAME, Tất cả các đề xuất ALLOW_DELEGATE_RESOURCE đều phải được phê duyệt trước khi đề xuất sự thay đổi thông số này.
b. Ví dụ Sai - có sẵn để đề xuất từ java-tron Odyssey v3.2. c. Phạm vi Đúng/Sai - Lưu ý: không thể đặt lại thành Sai từ Đúng.9.2.3 Tạo đề xuất

Chỉ tài khoản SR mới có quyền đề xuất thay đổi các tham số mạng động. 9.2.4 Bỏ phiếu đề xuất

Chỉ các thành viên ủy ban (SR) mới có thể bỏ phiếu cho một đề xuất và thành viên không bỏ phiếu kịp thời sẽ được coi là không đồng ý. Đề xuất có hiệu lực trong 3 ngày sau khi được tạo. Việc bỏ phiếu có thể được thay đổi hoặc truy xuất trong thời gian bỏ phiếu 3 ngày. Khi thời hạn kết thúc, đề xuất sẽ hoặc thành công (hơn 19 phiếu bầu) hoặc thất bại (và kết thúc). 9.2.5 Hủy bỏ đề xuất

Người đề xuất có thể hủy đề xuất trước khi nó có hiệu lực. 9.3 Cấu trúc

SR là nhân chứng của các khối mới được tạo. Một nhân chứng chứa 8 tham số:
1. address​ : địa chỉ của nhân chứng này – ví dụ: 0xu82h…7237.
2. voteCount​: số phiếu bầu nhận được cho nhân chứng này – ví dụ: 234234.
3. pubKey​: khóa chung cho nhân chứng này – ví dụ: 0xu82h…7237.
4. url​: url cho nhân chứng này – ví dụ: https://www.noonetrust.com.
5. TotalProduced​: số khối mà nhân chứng này đã tạo ra – ví dụ: 2434.
6. TotalMissed​: số khối mà nhân chứng này đã bỏ lỡ – ví dụ: 7.
7. mới nhấtBlockNum​: chiều cao mới nhất của khối – ví dụ: 4522. 8. isjobs​ : một cờ boolean.

Cấu trúc dữ liệu Protobuf: tin nhắn​ ​Nhân chứng​{
​địa chỉ​ byte​ = ​1​;
​int64​ voteCount = ​2​;
​byte​ pubKey = ​3​;
​chuỗi​ url = ​4​;
​int64​ TotalProduced = ​5​;
​int64​ TotalMissed = ​6​;
​int64​ mới nhấtBlockNum = ​7​; ​bool​ isJobs = ​8​; }

  1. Phát triển DApp API 10.1

Mạng TRON cung cấp nhiều lựa chọn gồm hơn 60 cổng API HTTP để tương tác với mạng thông qua các nút đầy đủ và vững chắc. Ngoài ra, TronWeb là một thư viện JavaScript toàn diện chứa các hàm API cho phép nhà phát triển triển khai smart contracts, hãy thay đổi blockchain trạng thái, truy vấn blockchain và thông tin hợp đồng, giao dịch trên DEX, v.v. Các API này các cổng có thể được hướng tới mạng riêng cục bộ, mạng thử nghiệm Shasta hoặc TRON Mainnet.

10.2 Mạng

TRON có cả mạng thử nghiệm Shasta cũng như Mainnet. Các nhà phát triển có thể kết nối với mạng bằng cách triển khai các nút, tương tác qua TronStudio hoặc sử dụng API thông qua dịch vụ TronGrid. TronGrid dịch vụ bao gồm các cụm nút cân bằng tải được lưu trữ trên các máy chủ AWS trên toàn thế giới. Là DApp quy mô phát triển tăng lên và số lượng cuộc gọi API tăng lên, TronGrid đã thành công trong việc tăng Lưu lượng truy cập API.
10.3 Công cụ

TRON cung cấp một bộ công cụ phát triển để cho phép các nhà phát triển tạo DApps sáng tạo.
TronBox là một framework cho phép các nhà phát triển thử nghiệm và triển khai smart contract thông qua TronWeb API. TronGrid là dịch vụ API được lưu trữ và cân bằng tải cho phép các nhà phát triển truy cập vào TRON mạng mà không cần phải chạy nút riêng. TronGrid cung cấp quyền truy cập vào cả Shasta testnet cũng như TRON Mainnet. TronStudio là một công cụ phát triển tích hợp toàn diện Môi trường (IDE) cho phép các nhà phát triển biên dịch, triển khai và gỡ lỗi thông minh Solidity của họ hợp đồng. TronStudio chứa một nút đầy đủ bên trong tạo ra môi trường cục bộ riêng tư cho smart contract thử nghiệm trước khi triển khai. Thư viện API TronWeb kết nối các nhà phát triển với mạng thông qua nhiều lựa chọn lệnh gọi API HTTP được gói trong JavaScript.
10.4 Tài nguyên

Trung tâm nhà phát triển TRON là trang tài liệu API toàn diện được thiết kế theo hướng 12 các nhà phát triển mong muốn xây dựng trên mạng TRON. Trung tâm nhà phát triển cung cấp giải pháp cấp cao hiểu biết khái niệm về TRON và hướng dẫn người dùng chi tiết về cách tương tác với 12 Trung tâm nhà phát triển: https://developers.tron.network/

mạng. Hướng dẫn hướng dẫn các nhà phát triển cách thiết lập, triển khai và tương tác với nút thông minh hợp đồng, tương tác và triển khai API, xây dựng DApp mẫu và sử dụng từng công cụ phát triển. Ngoài ra, các kênh cộng đồng nhà phát triển có sẵn thông qua Discord.
13

13 Bất hòa: https://discordapp.com/invite/GsRgsTD

  1. Kết luận

TRON là giải pháp blockchain có thể mở rộng sử dụng các phương pháp cải tiến để giải quyết những thách thức mà mạng blockchain cũ phải đối mặt. Đã đạt hơn 2 triệu giao dịch mỗi ngày, với hơn 700 nghìn tài khoản TRX và vượt qua 2000 TPS, TRON đã hỗ trợ cộng đồng trong tạo ra một mạng lưới phi tập trung và dân chủ hóa.