高级配置:超级代表出块授权
超级代表(SR)的账户权限可通过 账户权限管理 功能进行分组管理。一个常见的应用场景是将出块权授权给其他账户,同时保留自身的其他控制权。这种方式可以提升操作的灵活性,并带来更高的安全性。
本指南将介绍如何修改账户权限,以及在 SR 出块权变更后如何配置产块节点。
修改 SR 账户权限
超级代表(SR)可以通过 Tronscan 网站或 wallet/accountpermissionupdate 接口来管理和修改其账户权限。
注意在修改 SR 账户权限之前,请务必确保对应的产块节点已停止运行。
查询 SR 账户权限
使用 wallet/getaccount 接口查询 SR 的权限信息:
curl --location --request POST 'https://api.nileex.io/wallet/getaccount' \
--header 'Content-Type: text/plain' \
--data-raw '{
"address": "TUZKijZ9Esy8JEkrqMpaVgtbDKKNA5p5CZ",
"visible": true
}'
返回:
{
"address": "TUZKijZ9Esy8JEkrqMpaVgtbDKKNA5p5CZ",
......
"owner_permission": {
"permission_name": "owner",
"threshold": 1,
"keys": [
{
"address": "TUZKijZ9Esy8JEkrqMpaVgtbDKKNA5p5CZ",
"weight": 1
}
]
},
"witness_permission": {
"type": "Witness",
"id": 1,
"permission_name": "witness",
"threshold": 1,
"keys": [
{
"address": "TWDTKh7d3LzZhvBCrnWpJwGtsY2yw1NxFo",
"weight": 1
}
]
},
"active_permission": [
......
],
......
}
返回结果显示,SR 账户 TUZKijZ9Esy8JEkrqMpaVgtbDKKNA5p5CZ 已经把出块权交给了账户 TWDTKh7d3LzZhvBCrnWpJwGtsY2yw1NxFo。
配置 SR 节点
SR 的出块权(witness permission)变更后,请按如下方式配置其出块节点:
// 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.
localWitnessAccountAddress = TUZKijZ9Esy8JEkrqMpaVgtbDKKNA5p5CZ
// the private key of TWDTKh7d3LzZhvBCrnWpJwGtsY2yw1NxFo
localwitness = [ 9191d6......13f818
]
#localwitnesskeystore = [
# "localwitnesskeystore.json"
#]
其中:
localWitnessAccountAddress:设置为 SR 的账户地址:TUZKijZ9Esy8JEkrqMpaVgtbDKKNA5p5CZ。localwitness:设置为被授权出块的账户的私钥,即TWDTKh7d3LzZhvBCrnWpJwGtsY2yw1NxFo的私钥。
请注意:如果 SR 未将其出块权授权给其他账户(即出块权仍归属于其自身),则无需配置 localWitnessAccountAddress,仅需将 localwitness 配置为 SR 账户自身的私钥。
启动节点
若要在全节点上启用出块功能,请在启动命令中加入 --witness 参数。
$ java -Xmx24g -XX:+UseConcMarkSweepGC -jar FullNode.jar --witness -c config.conf
注:关于节点部署的详细说明,请参阅此文档。
节点启动并完成数据同步后,当轮到该节点出块时,它会使用 localwitness 中配置的私钥对区块数据进行签名。签名数据将存储在区块头的 witness_signature 字段中。随后,网络中的其他节点将对该区块进行验证。验证过程中,系统会检查签名私钥对应的地址是否拥有出块权。该出块权归属于 block_header.raw_data.witness_address 字段所记录的 SR 地址。若验证通过,则该区块被确认为合法区块。
Updated 4 months ago