Sách trắng TRON

TRON Whitepaper v2.0

بقلم Justin Sun · 2017

Introduction

Introduction

1.1 Vision

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

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

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

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

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

TRON development roadmap phase 2 timeline from July 2018 to 2019

1.4 Terminology

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TKC Token configuration.

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

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

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

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

Architecture

Architecture

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

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

Figure 1: TRON 3-layer Architecture

2.1 Core

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

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

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

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

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

2.4 Protocol

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

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

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

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

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

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

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

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

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

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

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/

Consensus

Consensus

3.1 Delegated Proof of Stake (DPoS)

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

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

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

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

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

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

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

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

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

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

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

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.

Account

Account

4.1 Types

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

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

There are three ways to create a TRON account:

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

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

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

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

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

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

​bytes​ vote_address = ​1​;

​int64​ vote_count = ​2​;

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

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

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

Block

Block

A block typically contains a block header and several transactions.

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

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

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

​int64​ timestamp = ​1​;

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

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

​bytes​ witness_address = ​6​;

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

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

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

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

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

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

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

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

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

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

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

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

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

5.2.3 Fee

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

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

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

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

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

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

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

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

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 Virtual Machine

TRON Virtual Machine

6.1 Introduction

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

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

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

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

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

Figure 3: TVM Workflow

6.3 Performance 6.3.1 Lightweight Architecture

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

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

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

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

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

Smart Contract

Smart Contract

7.1 Introduction

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

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

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

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

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

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

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

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

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

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

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

Token

8.1 TRC-10 Token

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

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

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

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

tokens); }

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

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

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

Token

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

Governance

Governance

9.1 Super Representative 9.1.1 General

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9.2.3 Create Proposal

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

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

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

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

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

  1. DApp Development 10.1 APIs

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

10.2 Networks

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

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

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

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

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

  1. Conclusion

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

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.