TRON Developer Guide — Super Representatives

TRON DAO
9 min readMay 9, 2019

--

Introduction

This article describes the Super Representative application process, the purpose of the role, and how they play a vital part in TRON’s Delegated Proof of Stake (DPOS) consensus mechanism.

Election

TRON Power (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: 1 TP for 1 frozen TRX.

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

After the release(unfreeze), you don’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 to freeze again to vote.

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

Token Holder Categories

  1. Super Representatives: top 27 individuals among the 127 candidates, voted once every 6 hours. Super Representatives play a key role in governing the TRON community by ensuring basic functions, e.g. block generation and bookkeeping, and obtain corresponding earnings.
  2. Super Representative Candidates: 127 individuals elected through voting by the entire token holder community. Votes are updated once every 6 hours.
  3. Token Holder: Individual holding any amount of TRX.

Rewards

  1. Candidate Reward(Vote Reward): 127 candidates updated once every 6 hours will share 115,200 TRX. The reward will be split in accordance to the votes each candidate receives. Total reward for candidates will be 168,192,000 TRX each year.
  2. Super Representative Reward(Block Reward): The TRON Protocol network will generate one block every 3 seconds, with each block awarding 32 TRX to Super Representatives. A total of 336,384,000 TRX will be awarded annually to 27 Super Representatives.
  3. There will be no inflation on the TRON network before January 1, 2021, and the TRON Foundation will award all block rewards and candidate rewards prior to that date.

Each time a Super Representative finishes block production, rewards are sent to the sub-account in the superledger. Super Representatives can check, but not directly make use of this asset. A withdrawal can be made once every 24 hours, transferring the reward from the sub-account to the Super Representative’s account.

Rewards Calculation

Total Rewards = Vote Reward + Block Reward

Vote Rewards

  • Vote rewards are 16 TRX every block, with a block generated every 3 seconds1, and 20 blocks per minute.
  • Voting statistics counted every 6 hours, with SRs changing based on vote results.
  • For all 127 SR candidates, the vote rewards per day are calculated as follows: Vote Rewards = 16 (TRX/block) x 20 (blocks/min) x 60 (min/hour) x 6 (hours/election) x 4 (elections/day) = 460,800 (TRX/day)2.
  • For each candidate, the Vote Rewards = 460,800 x (# votes / # total votes)

1.It may take slightly longer than 3 seconds due to machine speed and network jitter.
2.Reward may be less than the theoretical number due to missed blocks.

Block Rewards

  • Block rewards are 32 TRX every block, and SRs create blocks one by one.
  • Block rewards per day: 32 (TRX/block) x 20 (blocks/min) x 60 (min/hour) x 24 (hours/day) = 921,600 (TRX/Day)

Example

Block Rewards Example

Vote Rewards: 460,800 x 14.72% = 67,830 TRX
Block Rewards: 921,600 / 27 = 34,133 TRX
Total Rewards: 67,830 + 34,133 = 101,963 TRX
This SR receives about 101,963 TRX total rewards per day.

For estimating SR voting reward and SR rank by specific votes amount, please use Tron Station voting reward tool to calculate.

Blockchain Explorer

Users can get the following SR information from the TRON blockchain explorer:

  • Delegate’s account address
  • Total votes the delegate received
  • Delegate’s website url
  • Total number of blocks produced by the delegate
  • The total missed blocks of delegate

Super Representative Application Process

All willing users can apply to become Super Representatives, but to prevent malicious attacks, we have set up a threshold for admittance — to run for Super Representative, 9999 TRX in the applicants’ account will be burnt. After successful application, users can run for Super Representatives.

  • Click “APPLY TO BE A SUPER REPRESENTATIVE CANDIDATE” button.
  • Write your personal website address and check information below website address.

Note: 9999 TRX will be paid when users apply to be a SR candidate.

Tronscan provides a way for Super Representatives to publish their information right where the voters are, on Tronscan!

Super Representatives can use this template to build a static page which will be shown on Tronscan. The link will be placed in the voting overview page right next to the name of SR.

The Super Representatives can manage their own content by editing files in the Github repository.

This guide assumes that you already have an account with Super Representative (candidate) status.

  1. Copy/Fork the Template on Github

After forking the repository you will be navigated to your own tronsr-template version of the repository where you can make changes.

2. Fill in the Template

The template can now be modified by editing files on Github.

  • Click the file you want to edit
  • Open edit mode
  • Add some information to the file

Files are written in markdown format. An excellent intro can be found at https://guides.github.com/features/mastering-markdown/

  • Update the logo.png and banner.png

Then click on “choose your files” and make sure the logo or banner you want to upload is named logo.png or banner.jpg to overwrite the placeholder images.

After you filled in the template it can now be published on https://tronscan.org

3. Publish to Tronscan

4. Navigate to https://tronscan.org

5. Login to your account. In this example it shows using the private key, but you may use any login method.

6. Open account and make sure the “Representative” label is visible

7. Scroll to the bottom and click “Set Github Link”

8. Enter your Github username and then press “Link Github”

9. View your new Page!

Example

The example shows which files are presented where. Whenever the files on Github are modified the page will instantly be updated

Voting

Every account in TRON’s network can vote for the Super Representatives they support. Voting requires TRON Power (TP), which is determined by the users’ frozen balance.

TP Calculation: 1 TP for 1 frozen TRX

Once you unfreeze your balance, an equivalent amount of TP is also lost, meaning that previous votes cast may no longer be valid. You can refreeze your balance to revalidate the votes.

Note: TRON network only records the latest votes, so every new allocation of votes you make replaces all previous records.

  • e.g.
freezebalance password 10,000,000 3    // 10 TP for 10 frozen TRX
votewitness password witness1 4 witness2 6 //4 votes for witness1 and 6 votes for witness2
votewitness password witness1 3 witness2 7 // 3 votes for witness1 and 7 votes for witness2

The final result of the above commands is 3 votes for witness1 and 7 votes for witness2.

Freezing/Unfreezing Balance

Why are Tokens Frozen?

The balance freezing mechanism is set up out of two considerations:

  • To prevent malicious spam transactions from clogging the network and causing delayed transaction confirmation.
  • To prevent malicious voting.

Freeze/Unfreeze Mechanism

Once the balance is frozen, the user will receive a proportionate amount of TP and bandwidth. TP represents voting power whereas bandwidth points are used to pay for transactions. Their usage and means of calculation will be introduced in following sections.

Frozen assets are held in your frozen account and cannot be used for trading.

The fixed frozen duration is 3 days, after which you can unfreeze your balance any time you like manually. Balance unfrozen will be transferred back into your current account.

More TP and bandwidth points can be obtained by freezing more balance. The balance can be unfrozen after 3 days from the latest freezing.

  • The freezing command is as follows:
freezebalance password amount time
amount: the unit of frozen balance is sun. The minimum balance frozen is 1,000,000 sun, or 1 TRX.
time: frozen duration lasting from date of freeze and date to unfreeze is 3 days.
  • e.g.

freezebalance password 10_000_000 3

  • Unfreezing command:

unfreezebalance password

Create Proposal

Only Super Representatives have the right to propose the corresponding account. The network dynamic parameters allowed to be modified and numbered as follows ( [min,max] ):

Proposal #

Proposal

Description

0

MAINTENANCE_TIME_INTERVAL, [3 27 1000 , 24 36001000]

Modify the super representative adjustment interval, currently 6 3600 1000ms

1

ACCOUNT_UPGRADE_COST, [0,100 000 000 000 000 000]

Modify the cost of upgrading your account to Super Representative, currently 9999_000_000 Sun

2

CREATE_ACCOUNT_FEE, [0,100 000 000 000 000 000]

Modify the cost of creating an account, currently 100_000Sun

3

TRANSACTION_FEE, [0,100 000 000 000 000 000]

Modify the cost of TRX deductible bandwidth, currently 10Sun/byte

4

ASSET_ISSUE_FEE, [0,100 000 000 000 000 000]

Modify asset issuance fee, currently 1024_000_000 Sun

5

WITNESS_PAY_PER_BLOCK, [0,100 000 000 000 000 000]

Modify Super Representative to give a block reward, currently 32_000_000 Sun

6

WITNESS_STANDBY_ALLOWANCE, [0,100 000 000 000 000 000]

Amend the award to the top 127 super representative candidates, 115_200_000_000 Sun

7

CREATE_NEW_ACCOUNT_FEE_IN_SYSTEM_CONTRACT

Modify the cost of creating a system account, currently 0 Sun

8

CREATE_NEW_ACCOUNT_BANDWIDTH_RATE

Proposals 7, 8 are used in combination to modify the consumption of resources or TRX when creating an account.

9

ALLOW_CREATION_OF_CONTRACTS

Used to control the opening of virtual machine functions

10

REMOVE_THE_POWER_OF_THE_GR

Genesis votes used to clear GR

11

ENERGY_FEE, [0,100 000 000 000 000 000]

sun

12

EXCHANGE_CREATE_FEE, [0,100 000 000 000 000 000]

sun

13

MAX_CPU_TIME_OF_ONE_TX, [0, 1000]

ms

14

ALLOW_UPDATE_ACCOUNT_NAME

Used to allow the user to change the nickname and the nickname of the same name, currently 0, indicating that it is not allowed

15

ALLOW_SAME_TOKEN_NAME

Used to allow the creation of a token of the same name, currently 0, indicating that it is not allowed

16

ALLOW_DELEGATE_RESOURCE

Used to allow resource delegation, currently 0, indicating not allowed

17

ALLOW_TVM_TRANSFER_TRC10

Used to allow the virtual machine to turn to TRC10, 0 means not allowed

18

TOTAL_ENERGY_LIMIT

Used to modify the total amount of ENERGY

19

ALLOW_MULTI_SIGN

Used for multiple signatures, currently 0, indicating not allowed (V3.5)

20

ALLOW_ADAPTIVE_ENERGY

Used to allow ENERGY total adaptive adjustment, currently 0, indicating not allowed (V3.5)

21

UPDATE_ACCOUNT_PERMISSION_FEE

Used to modify the account permission fee, currently 100TRX (V3.5)

22

MULTI_SIGN_FEE

Used to modify the multi-signature fee, currently 1TRX (V3.5)

The proposal only supports voting in favor of the vote, and does not vote for disapproval. The proposed validity period is 3 days from the time the proposal is created. Beyond this time frame, if the proposal does not receive sufficient votes in favor, the proposal will lapse. Allow cancellation of the vote before the vote.

Approve Proposal

Approve Proposal Full Node HTTP API

curl -X POST  https://api.trongrid.io/wallet/proposalapprove -d '{"owner_address": "419844F7600E018FD0D710E2145351D607B3316CE9","proposal_id":1,"is_add_approval":true}'

Delete Proposal

Delete Proposal Full Node HTTP API

Delete Proposal TronWeb API

curl -X POST  https://api.trongrid.io/wallet/proposaldelete -d '{"owner_address":"419844F7600E018FD0D710E2145351D607B3316CE9","proposal_id":1}'

Query Proposals

List Proposals Full Node HTTP API

List Proposals TronWeb API

Get Proposal by ID Full Node HTTP API

--

--

TRON DAO
TRON DAO

Written by TRON DAO

The official Medium of TRON DAO.

No responses yet