Governor

How to Become a Governor

In STABILA network, any account can apply to become a executive. Every account can vote for executives.

The top 21 executives are called Governor, the executives from 22nd to 100th are called Partner, the executives after 100th are called Candidates. Only Governor can produce blocks.

The votes will be counted every 6 hours, so governors may also change every 6 hours.

To prevent vicious attack, STABILA network burns 9999 STB from the account that applies to become a governor candidate.

Governor Election

To vote, you need to have STABILA Power(TP). To get STABILA Power, you need to stake STB. Every 1 staked STB accounts for one STABILA Power(TP). Every account in STABILA network has the right to vote for a governor candidate. After you unstake your staked STB, you will lose the responding STABILA Power(TP), so your previous vote will be invalid.

Note: Only your latest vote will be counted in STABILA network which means your previous vote will be overwritten by your latest vote.

Example (Using wallet-cli):

> cdbalance 10,000,000 3 // Stake 10 STB to get 10 STABILA Power(TP)
> voteexecutive executive1 4 executive2 6 // Vote 4 votes for executive1, 6 votes for executive2
> voteexecutive executive1 3 executive2 7 // Vote 3 votes for executive1, 7 votes for executive2

The final output above is: Vote 3 votes for executive1, 7 votes for executive2

Executives Brokerage

The default ratio is 20%, which can be modified by the executives.

If a executive get 20% of the reward, and the other 80% will be awarded to the voters. If the brokerage ratio is set to 100%, the rewards are all obtained by the executive; if set to 0, the rewards are all sent to the voters.

Reward for Executives

Often referred as Executive Reward, the topmost 79 Executives will split 78 STB as earned once per round (6 hours). The prize will be divided according on the vote percentage each Executive earns.

Total E reward per round = 10,972 Unit/block × 20 blocks/min × 60 mins/hr × 6 hrs/round.

A total of 28,834 STB will be given out every year to the 79 Gs.

Committee

1. What is Committee

Committee can modify the STABILA network parameters, like transaction fees, block producing reward amount, etc. Committee is composed of the current 21 governors. Every governor has the right to start a proposal. The proposal will be passed after it gets 15 or more approves from the governors and will become valid in the next maintenance period.

2. Create a Proposal

Only Governors, Partners and Candidates can create a proposal.

The network parameters can be modified([min,max]).

{0,1}: 1 means 'allowed' or 'actived', 0 means 'disallow', 'disable' or 'no'.

# Command Value
0 MaintenanceTimeInterval
(To modify the maintenance interval of Governor)
21600000 ms
1 AccountUpgradeCost
(To modify the cost of applying for Governor account)
1000000000 STB
2 CreateAccountFee
(To modify the account creation fee)
1385 STB
3 TransactionFee
(To modify the amount of STB used to gain extra bandwidth)
40 STB
4 AssetIssueFee
(To modify asset issuance fee)
1000000000 STB
5 ExecutivePayPerBlock
(To modify Governor block generation reward)
221714 STB
6 ExecutiveStandbyAllowance
(To modify the rewards given to the top 21 Governors and
the following 100 executives)
0 STB
7 CreateNewAccountFeeInSystemContract
(To modify the cost of account creation)
0 STB
8 CreateNewAccountBandwidthRate
(To modify the consumption of bandwidth of account creation)
1 Bandwidth/Byte
9 AllowCreationOfContracts
(To activate the Virtual Machine (VM))
0
{0, 1}
10 RemoveThePowerOfTheGr
(To remove the GR Genesis votes)
0
11 UcrFee
(To modify the fee of 1 ucr)
40 UNIT
12 ExchangeCreateFee
(To modify the cost of trading pair creation)
14000000 STB
13 MaxCpuTimeOfOneTx
(To modify the maximum execution time of one transaction)
80 ms
14 AllowUpdateAccountName
(To allow to change the account name)
0
15 AllowSameTokenName
(To allow the same token name)
0
{0, 1}
16 AllowDelegateResource
(To allow resource delegation)
0
{0, 1}
18 AllowSvmTransferSrc10
(To allow the SRC-10 token transfer in smart contracts)
0
{0, 1}
19 TotalUcrCurrentLimit
(To modify current total ucr limit)
30000000000
20 AllowMultiSign
(To allow the initiation of multi-signature)
0
{0, 1}
21 AllowAdaptiveUcr
(To allow adaptive adjustment for total Ucr)
0
{0, 1}
22 UpdateAccountPermissionFee
(To modify the fee for updating account permission)
1385000
23 MultiSignFee
(To modify the fee for multi-signature)
13857
24 AllowProtoFilterNum
(To enable protocol optimization)
0
{0, 1}
26 AllowSvmConstantinople
(To support the new commands of Constantinople)
0
{0, 1}
21 AllowShieldedTransaction
(To enable shielded transaction)
0
{0, 1}
29 AdaptiveResourceLimitMultiplier
(To modify the adaptive ucr limit multiplier)
1000
30 ChangeDelegation
(Propose to support the decentralized vote dividend)
0
{0, 1}
31 Executive127PayPerBlock
(Propose to modify the block voting rewards given to
the top 21 Governors and the following 100 executives)
10972 STB
32 AllowSvmSolidity059
(To allow SVM to support solidity compiler 0.5.9)
0
{0, 1}
33 AdaptiveResourceLimitTargetRatio
(To modify the target ucr limit)
10
35 ForbidTransferToContract 0
39 AllowShieldedSrc20Transaction 0
40 AllowPbft 0
41 AllowSvmIstanbul 0
44 AllowMarketTransaction 0
45 MarketSellFee 0
46 MarketCancelFee 0
47 MaxFeeLimit 15000000
48 AllowTransactionFeePool 0
49 AllowBlackholeOptimization 0
51 AllowNewResourceModel 0
52 AllowSvmCd 0
53 AllowAccountAssetOptimization 0
59 AllowSvmVote 0
61 FreeNetLimit 500
62 TotalNetLimit 28800000

Example (Using wallet-cli):

> createproposal id value
# id: the serial number (0 ~ 33)
# value: the parameter value

Note: In STABILA network, 1 STB = 1_000_000 UNIT

3. Vote for a Proposal

Proposal only support YES vote. Since the creation time of the proposal, the proposal is valid within 3 days. If the proposal does not receive enough YES votes within the period of validity, the proposal will be invalid beyond the period of validity. Yes vote can be cancelled.

Example (Using wallet-cli):

> approveProposal id is_or_not_add_approval
# id: proposal id
# is_or_not_add_approval: YES vote or cancel YES vote

4. Cancel Proposal

Proposal creator can cancel the proposal before it is passed.

Example (Using wallet-cli):

> deleteProposal id
# id: proposal id

5. Query Proposal

  • Query all the proposals list (ListProposals)
  • Query all the proposals list by pagination (GetPaginatedProposalList)
  • Query a proposal by proposal id (GetProposalById)

For more API detail, please refer to HTTP API.