Skip to content

Commit

Permalink
Merge pull request #177 from vivian1912/master
Browse files Browse the repository at this point in the history
update SR description
  • Loading branch information
ethan1844 authored Jan 2, 2025
2 parents 2b9bc21 + 56349b4 commit ba231a8
Show file tree
Hide file tree
Showing 9 changed files with 58 additions and 60 deletions.
16 changes: 8 additions & 8 deletions docs/api/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -1258,7 +1258,7 @@ curl -X POST http://127.0.0.1:8090/wallet/createwitness -d '{"owner_address":"4


#### wallet/updatewitness
作用:修改witness的url
作用:修改超级代表的url
```
curl -X POST http://127.0.0.1:8090/wallet/updatewitness -d '{
"owner_address":"41d1e7a6bc354106cb410e65ff8b181c600ff14292",
Expand All @@ -1271,17 +1271,17 @@ curl -X POST http://127.0.0.1:8090/wallet/updatewitness -d '{
- `update_url`是更新的官网的url,默认为hexString格式
- 可选参数`Permission_id`,多重签名时使用,设置交易多重签名时使用的permissionId

返回值:更新witness的Transaction
返回值:更新超级代表网址URL的Transaction


#### wallet/listwitnesses
作用:查询所有witness列表
作用:查询所有超级代表
```
curl -X POST http://127.0.0.1:8090/wallet/listwitnesses
```
参数说明:无

返回值:witness列表
返回值:超级代表列表

#### wallet/withdrawbalance
作用:超级代表提现奖励到balance,每24个小时可以提现一次
Expand Down Expand Up @@ -1319,17 +1319,17 @@ curl -X POST http://127.0.0.1:8090/wallet/votewitnessaccount -d '{
返回值:投票的Transaction

#### wallet/getBrokerage
作用:查询witness当前Brokerage比例
作用:查询超级代表当前的Brokerage比例
```
curl -X GET http://127.0.0.1:8090/wallet/getBrokerage -d '{
"address":"41E552F6487585C2B58BC2C9BB4492BC1F17132CD0"}'
```
参数说明:`address`是被投票的超级代表的地址,默认为hexString格式

返回值:witness当前Brokerage比例
返回值:超级代表的当前Brokerage比例

#### wallet/updateBrokerage
作用:更新witness当前Brokerage比例
作用:更新超级代表当前的Brokerage比例
```
curl -X POST http://47.252.81.126:8090/wallet/updateBrokerage -d '{
"owner_address":"41E552F6487585C2B58BC2C9BB4492BC1F17132CD0",
Expand All @@ -1338,7 +1338,7 @@ curl -X POST http://47.252.81.126:8090/wallet/updateBrokerage -d '{
参数说明:

- `owner_address`是被投票的超级代表的地址,默认为hexString格式
- `brokerage`是witness想要更新为的Brokerage比例
- `brokerage`是超级代表想要更新为的Brokerage比例

返回值:更新Brokerage的Transaction

Expand Down
4 changes: 2 additions & 2 deletions docs/api/rpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ rpc BroadcastTransaction (Transaction) returns (Return) {}
Nodes: Fullnode

Description:
Transfer, vote, issuance of token, or participation in token offering. Sending signed transaction information to node, and broadcasting it to the entire network after witness verification.
Transfer, vote, issuance of token, or participation in token offering. Sending signed transaction information to node, and broadcasting it to the entire network after SR(Super Representatives) verification.

**4. Create an account**

Expand All @@ -50,7 +50,7 @@ rpc VoteWitnessAccount (VoteWitnessContract) returns (Transaction) {}
```
Nodes: FullNode

**7. Query the ratio of brokerage of the witness**
**7. Query the ratio of brokerage of the super representative**
```protobuf
rpc GetBrokerageInfo (BytesMessage) returns (NumberMessage) {}
```
Expand Down
26 changes: 13 additions & 13 deletions docs/clients/wallet-cli-command.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ wallet>UpdateAccountPermission [ownerAddress] [permissions]

* `owner`: 拥有账户的所有权限。
* `active`: 可以获得账户中的特定权限,如果是witness权限则不包括出块权利。
* `witness`: 只用于witness, 出块的权利将会被授予其他账户。
* `witness`: 只用于超级代表, 出块的权利将会被授予其他账户。

**注意** 参数`Permission` 必须按json格式传入且不能换行。如果owner账户不是超级代表,则不要授权witness权限给其他账户。

Expand Down Expand Up @@ -1956,9 +1956,9 @@ wallet> getproposal 34
```
### Votewitness
使用该命令为witness投票。投票需要相应的权益, 即`Tron Power`,可以通过质押资产来获得。第一个参数为witness的地址,第二个参数为投票的数量
使用该命令为超级代表投票。投票需要相应的投票权, 即`Tron Power`,可以通过质押资产来获得。第一个参数为超级代表的地址,第二个参数为该超级代表投票的数量
```
wallet> votewitness [witness address] [Tron Power Amount]
wallet> votewitness [SR address] [Tron Power Amount]
* Tron Power计算规则: 每冻结 1 TRX获得一个单位的Tron Power。
* 资产解冻后, 所有之前的投票即作废。可以重复冻结资产避免这种情况。
Expand All @@ -1969,15 +1969,15 @@ wallet> votewitness [witness address] [Tron Power Amount]
```shell
wallet> freezeBalance 100000000 3 1 address # 冻结 10TRX,获得10个单位的Tron Power。
wallet> votewitness [witness1] 4 [witness2] 6 # 为witness1投4票,同时再为witness2投6票
wallet> votewitness [SR1] 4 [SR2] 6 # 为SR1投4票,同时再为SR2投6票
wallet> votewitness [witness1] 10 # 为witness1投10票
wallet> votewitness [SR1] 10 # 为SR1投10票
```
示例中的结果为witness1获得10票,witness2获得0票
示例中的结果为SR1获得10票,SR2获得0票
### ListWitnesses
列出所有witness的信息
列出所有超级代表的信息
```shell
wallet> listwitnesses
{
Expand Down Expand Up @@ -2006,11 +2006,11 @@ wallet> listwitnesses
```
### GetBrokerage
使用该命令,可以查看witness的出块分成比例
使用该命令,可以查看超级代表的出块分成比例
在为witness投票后,会收到相应的奖励。witness可以调整出块收益的分成比例,默认比例为20%,即收益的20%归witness所有,剩余80%按投票数分配给投票者。
在为超级代表投票后,会收到相应的奖励。超级代表可以调整出块收益的分成比例,默认比例为20%,即收益的20%归该超级代表所有,剩余80%按投票数分配给投票者。
`OwnerAddress` 为witness的地址,base58格式。
`OwnerAddress` 为超级代表的地址,base58格式。
示例中,出块奖励的分成为20%,即80%的收益会按权重分配给投票者:
```shell
Expand All @@ -2021,19 +2021,19 @@ The brokerage is : 20
### GetReward
查询未领取的奖励。
`OwnerAddress` 为witness的地址,base58格式。示例如下:
`OwnerAddress` 为超级代表的地址,base58格式。示例如下:
```shell
wallet> getreward TSzdGHnhYnQKFF4LKrRLztkjYAvbNoxnQ8
The reward is : 0
```
### UpdateBrokerage
该命令由witness发起,调整出块收益的分成比例。
该命令由超级代表发起,调整出块收益的分成比例。
```
wallet> updateBrokerage [OwnerAddress] [brokerage]
```
`OwnerAddress` 为witness的地址,base58格式。`brokerage` 为要改成的比例,0-100之间。
`OwnerAddress` 为超级代表的地址,base58格式。`brokerage` 为要改成的比例,0-100之间。
示例:
```shell
Expand Down
14 changes: 7 additions & 7 deletions docs/introduction/dpos.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ DPOS共识在区块链系统中根据节点获取选票的多少确定出部分

* 记账候选人:指波场中有成为记账人资格的节点。

* 记账人:指波场中获得记账资格的节点,通常DPOS共识中将记账人称为witness,波场也将记账人称为super node(简称SR),波场设定记账人的数量是27个。下文不区分记账人、witness、supernode、SR等概念。
* 记账人:指波场中获得记账资格的节点,通常DPOS共识中将记账人称为超级代表,波场也将记账人称为super node,super representative(简称SR),波场设定记账人的数量是27个。下文不区分记账人、witness、supernode、SR等概念。

* 记账:指验证交易并将交易记录成账目的过程,由于波场中的账目是用区块承载的,因此记账的过程也被称为生产区块,下文不区分记账和生产区块。

Expand Down Expand Up @@ -63,23 +63,23 @@ DPOS共识在区块链系统中根据节点获取选票的多少确定出部分
![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/blockchain_structure.png)


理想情况下,采用DPOS共识的区块链系统的记账过程就是按照事先计算好的记账顺序,由witness轮流依序产块(如下图a),但实际情况下,区块链网络是一个分布式的、不可信的复杂系统,体现在 1)由于网络链路环境不佳导致witness生产的区块并不会在有效时间内被其他的witness收到(如下图b1、b2);
2)并不能保证某个witness运行始终正常(如图c);
3)某些witness恶意生产分叉的区块企图将链分叉(如图d)。
理想情况下,采用DPOS共识的区块链系统的记账过程就是按照事先计算好的记账顺序,由超级代表轮流依序产块(如下图a),但实际情况下,区块链网络是一个分布式的、不可信的复杂系统,体现在 1)由于网络链路环境不佳导致超级代表生产的区块并不会在有效时间内被其他的超级代表收到(如下图b1、b2);
2)并不能保证某个超级代表运行始终正常(如图c);
3)某些超级代表恶意生产分叉的区块企图将链分叉(如图d)。

![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/longest_chain1.png)

![image](https://raw.githubusercontent.com/tronprotocol/documentation-zh/master/images/longest_chain2.png)

前文已经提到区块链系统正常运行的基础是系统中绝大部分的节点是诚实可靠的,再进一步探讨这个问题,区块链系统安全的首要保证的是账本的安全,账本既不能被恶意写入不合法的数据,账本在各个节点上保存的副本也应该是一致的。如果从DPOS共识的角度上来看,记账过程是由witness完成,因此波场的安全取决于大部分witness的可靠性,波场设定了不可逆转区块,也称为固化块。同时为了抵抗少部分记账节点的恶意行为,波场采用基于最长链的原则确认为主链。
前文已经提到区块链系统正常运行的基础是系统中绝大部分的节点是诚实可靠的,再进一步探讨这个问题,区块链系统安全的首要保证的是账本的安全,账本既不能被恶意写入不合法的数据,账本在各个节点上保存的副本也应该是一致的。如果从DPOS共识的角度上来看,记账过程是由超级代表完成,因此波场的安全取决于大部分超级代表的可靠性,波场设定了不可逆转区块,也称为固化块。同时为了抵抗少部分记账节点的恶意行为,波场采用基于最长链的原则确认为主链。

### 固化块原则

刚生产出来的区块处于未确认状态,只有被27个Witness中70%以上(即27 * 70% = 19, 向下取整)的witness"认可"的区块才被认为是不可逆区块,一般称为固化块,此时固化块中包含的交易已经被整个区块链网络确认。此处对未确认状态区块"认可"的方式是Witness在其之后生产后继区块,如图d中Witness C生产的第103块,Witness E在第103块的基础上生产了104‘,Witness G、A、B分别生产的第105‘、106’、107‘实质上也是103块的后继区块,故也是对C生产的第103块的认可。可知,当高度为121的区块被生产出来的时候,第103块就成为固化块,因为此时103区块已经有了19个后继区块,此处需要强调的一点是:生产这19个区块的Witness互不相同,并且和生产第103个区块的Witness也不同
刚生产出来的区块处于未确认状态,只有被27个超级代表中70%以上(即27 * 70% = 19, 向下取整)的超级代表"认可"的区块才被认为是不可逆区块,一般称为固化块,此时固化块中包含的交易已经被整个区块链网络确认。此处对未确认状态区块"认可"的方式是超级代表在其之后生产后继区块,如图d中超级代表C生产的第103块,超级代表E在第103块的基础上生产了104‘,超级代表G、A、B分别生产的第105‘、106’、107‘实质上也是103块的后继区块,故也是对C生产的第103块的认可。可知,当高度为121的区块被生产出来的时候,第103块就成为固化块,因为此时103区块已经有了19个后继区块,此处需要强调的一点是:生产这19个区块的超级代表互不相同,并且和生产第103个区块的超级代表也不同

### 最长链原则

当区块链产生分叉之后,诚实的witness总是选择在当前最长的那个分叉链上继续生产区块
当区块链产生分叉之后,诚实的超级代表总是选择在当前最长的那个分叉链上继续生产区块

## 激励模型

Expand Down
10 changes: 5 additions & 5 deletions docs/introduction/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ MainNet的配置请参照:

```shell
freezebalancev2 10,000,000 3 # 质押了10TRX,获取了10单位TRON Power(TP)
votewitness witness1 4 witness2 6 # 同时给witness1投了4票,给witness2投了6票
votewitness witness1 3 witness2 7 # 同时给witness1投了3票,给witness2投了7票
votewitness SR1 4 SR2 6 # 同时给SR1投了4票,给SR2投了6票
votewitness SR1 3 SR2 7 # 同时给SR1投了3票,给SR2投了7票
```

以上命令的最终结果是给witness1投了3票,给witness2投了7票
以上命令的最终结果是给SR1投了3票,给SR2投了7票

### 2.3 超级代表的奖励

Expand Down Expand Up @@ -304,7 +304,7 @@ wget https://raw.githubusercontent.com/tronprotocol/tron-deployment/master/priva
```shell
nohup java -Xmx6g -XX:+HeapDumpOnOutOfMemoryError -jar FullNode.jar -c private_net_config.conf
命令行参数说明:
--witness: 启动witness功能,由于配置的这个fullnode节点不需要产快,所以此fullnode节点不可以添加这个参数,i.e.: --witness。
--witness: 启动超级代表产块功能, 因为这个fullnode节点不需要产快,所以此fullnode节点不可以添加这个参数,i.e.: --witness。
--log-config: 指定日志配置文件路径,i.e.: --log-config logback.xml。
-c: 指定配置文件路径,i.e.: -c config.conf。
```
Expand Down Expand Up @@ -1131,7 +1131,7 @@ receiverAddress表示受委托账户的地址,

|交易类型|费用|
| :------|:------:|
|创建witness|9999 TRX|
|申请成为超级代表候选人|9999 TRX|
|发行token|1024 TRX|
|创建account|0.1 TRX|
|创建exchange|1024 TRX|
Expand Down
18 changes: 9 additions & 9 deletions docs/mechanism-algorithm/multi-signatures.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ message AccountPermissionUpdateContract {

`owner_address`:待修改权限的账户的地址
`owner`:修改后的 owner 权限
`witness`:修改后的 witness 权限(如果是 witness )
`witness`:修改后的 witness 权限
`actives`:修改后的 actives 权限

注意:该接口是覆盖原账户权限,因此,如果只想修改owner权限,witness(如果是witnss账户)及actives的也需要设置。
注意:该接口是覆盖原账户权限,因此,如果只想修改owner权限,witness(如果是超级代表账户)及actives的也需要设置。

#### Permission

Expand Down Expand Up @@ -124,24 +124,24 @@ Owner权限具有以下特性:

### Witness权限

超级代表可使用该权限,管理出块节点。非witness账户无该权限
超级代表可使用该权限,管理出块节点。非超级代表账户无该权限

使用场景示例:一个超级代表在云服务器上部署出块程序,为了账户安全,此时可以将出块权限赋予另一个地址。由于该地址仅具有出块权限,无TRX转出权限,即使该服务器上私钥被泄密,也不会出现TRX丢失。

Witness出块节点的配置
出块节点的配置
1、未修改witness权限时,无需特殊配置。
2、修改witness权限后的出块节点,需要在重新配置,配置项如下:

```conf
#config.conf
// Optional.The default is empty.
// It is used when the witness account has set the witnessPermission.
// When it is not empty, the localWitnessAccountAddress represents the address of the witness account,
// and the localwitness is configured with the private key of the witnessPermissionAddress in the witness account.
// When it is empty,the localwitness is configured with the private key of the witness account.
// It is used when the SR account has set the witnessPermission.
// When it is not empty, the localWitnessAccountAddress represents the address of the SR account,
// and the localwitness is configured with the private key of the witnessPermissionAddress in the SR account.
// When it is empty,the localwitness is configured with the private key of the SR account.
//可选项,默认为空。
//用于当witness账户设置了witnessPermission
//用于当超级代表账户设置了witnessPermission
//当该值不为空时,localWitnessAccountAddress代表witness账户的地址,localwitness是witnessPermission中的地址的私钥。
//当该值为空时,localwitness配置为witness账户的私钥。
Expand Down
20 changes: 9 additions & 11 deletions docs/mechanism-algorithm/sr.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,15 @@

```shell
freezebalancev2 10,000,000 3 # 质押了10TRX,获取了10单位TRON Power(TP)
votewitness witness1 4 witness2 6 # 同时给witness1投了4票,给witness2投了6票
votewitness witness1 3 witness2 7 # 同时给witness1投了3票,给witness2投了7票
votewitness SR1 4 SR2 6 # 同时给SR1投了4票,给SR2投了6票
votewitness SR1 3 SR2 7 # 同时给SR1投了3票,给SR2投了7票
```

以上命令的最终结果是给witness1投了3票,给witness2投了7票
以上命令的最终结果是给SR1投了3票,给SR2投了7票

### Witnesses分红
### 超级代表佣金比例

默认比例是20%,超级代表和超级代表合伙人可以通过wallet/getBrokerage接口查询佣金比例, 也可以通过wallet/updateBrokerage接口修改佣金比例。

如果一个witness获得20%的奖励,那么剩余的80%奖励会被分配给投票者。如果分红比例设置为100%,那么只有witness可以获得奖励;相反,如果设置为0,那么只有投票者会获得奖励。
默认佣金比例是20%,即超级代表获得20%的奖励,剩余的80%奖励会被分配给投票者,超级代表和超级代表合伙人可以通过wallet/getBrokerage接口查询佣金比例, 也可以通过wallet/updateBrokerage接口修改佣金比例。如果分红比例设置为100%,那么只有超级代表可以获得奖励;相反,如果设置为0,那么只有投票者会获得奖励。

## 3. 超级代表的奖励

Expand All @@ -57,13 +55,13 @@ votewitness witness1 3 witness2 7 # 同时给witness1投了3票,给witness2投

## 4. 投票者的奖励

如果投票给Super Representative
如果投票给一个超级代表

每日获得奖励 = (((你投给一个witness的票数) *4,608,000 / 总票数)* 80%) + ((460,800 / 27) *80%)* (你投给一个witness的票数) / (一个witness获得的总票数) TRX
每日获得的奖励 = (((你投给这个超级代表的票数) *4,608,000 / 总票数)* 80%) + ((460,800 / 27) *80%)* (你投给这个超级代表的票数) / (这个超级代表获得的总票数) TRX

如果你投票给Partner
如果你投票给超级代表合伙人

每日获得奖励 = (((你投给一个witness的票数) *4,608,000 / 总票数)* 80%) TRX
每日获得奖励 = (((你投给这个超级代表合伙人的票数) *4,608,000 / 总票数)* 80%) TRX

## 5. 委员会

Expand Down
Loading

0 comments on commit ba231a8

Please sign in to comment.