-
-
Notifications
You must be signed in to change notification settings - Fork 355
将旧版Znodes迁移到新的确定性Znodes系统
将旧版Znodes迁移到新的确定性Znodes系统
Zcoin v.14.0.0部署确定性Znodes。
本指南为区块高度278300处(大约2020年6月22日世界标准时间12:00),注册Znode pro-tx后的步骤。 本指南旨在帮助用户将旧版Znodes迁移到新的确定性Znodes系统。此系统与之前的不同,用户无需“启动”Znode,只需通过称为提供商注册交易(protx)的特殊交易在Zcoin区块链上注册Znode。
通过以下命令将旧版Znodes注册为确定性Znodes:
protx register "collateralHash" collateralIndex "ipAndPort" "ownerAddress" "operatorPubKey" "votingAddress" "operatorReward" "payoutAddress" "feeSourceAddress"
示例如下:
protx register "4950f88867b69760d3cd7c1f53531340f6723eb8f7d7f00730abfa12c5fe10e0" "0" "207.148.122.12:8168" "TRVDAxJwaZYFfmti4aTeKCByz1jbMq8Jy4" "995b3e1e2a65ce960a8cc7d305c5914b7f60e888c338c1f3317efbdcac58e82ecc110315ce03f49d9d387ff35c2796ad" "" "0" "TEZ8M8Fgp8h4HvUjXtjz3krYraRtySiXdw"
虽然这看起来十分复杂,但是请放心!本指南将会对这些字段进行一一解释。
字段:collateralHash
, collateralIndex
, ipAndPort
collateralHash
:1000个XZC的交易id
collateralIndex
:该id内1000个XZC的索引(通常为0或1)
`ipAndPort``:托管Znode的VPS的IP地址和端口。(如95.210.72.33:8168)
如果你有旧版Znodes,这些信息都可以在znode.conf中获取。来看一下znode.conf中的示例条目
Legacy01 207.148.122.12:8168 7EDVXuXszTFLiUif538HhDVvpxhw7gYkGH1w2fkXgCXUW158Wiz 4950f88867b69760d3cd7c1f53531340f6723eb8f7d7f00730abfa12c5fe10e0 0
如上所示,我们把想要迁移的Znode标记为 Legacy01。
collateralHash
:4950f88867b69760d3cd7c1f53531340f6723eb8f7d7f00730abfa12c5fe10e0
collateralIndex
:0
ipAndPort
:207.148.122.12:8168
获取每个Znode条目的所有信息。
字段:ownerAddress,votingAddress
你需要为你拥有的每个Znode提供一个未使用的新地址。你必须拥有这个地址。
例如:如果你有五个Znodes,那你就需要五个新的ownerAddress。这些地址的账户不能有余额,也不能用于任何其他用途。
要生成新地址,可以前往“Help(帮助)”——“Debug window(调试窗口)”——“Console(控制台)”,然后键入“getnewaddress(获取新地址)”,或者前往“File(文件)”——“Receiving Addresses(接收地址)”,然后单击“New(新建)”。重复此操作,直到为每个Znode都创建好新地址。
你的ownerAddress也将被用于votingAddress(投票地址)字段,并将始终不变。
我们不建议将这些地址用于其他任何用途。请勿将此地址作为payoutAddress(支付地址)。
字段:feeSourceAddress
支付protx的交易费需要一个有账户余额的地址。此地址将被用于feeSourceAddress字段。
如果未指定地址,则默认使用支付地址。如果支付地址的余额不足以支付交易费用,那么Znode就会注册失败。
请确保你的钱包中有足够的zcoin支付交易费用,然后再前往“Help(帮助)”——“Debug window(调试窗口)”——“Console(控制台)”,并输入以下命令:
listaddressbalances 0.01
此命令将会列出所有余额超过0.01 XZC的地址。
你可以在此列表中选一个地址作为feeSourceAddress
。
确保使用的Zcoin地址有足够的余额支付交易费用。
字段:operatorPubKey
,operatorKey
如果你自己托管Znode,那么你就需要为每个Znode生成一个BLS私钥/公钥对。
这些密钥将用于Znode操作或用于更新Znode相关信息(比如更改VPS)。它们大致相当于旧Znode系统中的znodeprivkey。这些密钥无法控制资金,但可以控制Znode,这意味着这些密钥可停用或更改Znode IP。
如果你使用Znode托管服务提供商,则无需生成BLS密钥对。Znode托管服务提供商会向你提供他们的operatorPubKey,用于protx注册交易。因此此步骤可跳过。
如果你自己托管Znode,则可以前往“Help(帮助)”——“Debug window(调试窗口)”——“Console(控制台)”,输入bls generate命令来生成BLS密钥对。
例如:
bls generate
{
"secret": "3235bae58e1b46653ee6fd457018c3756797b3b2b5306734873b4a39d9cb8a5f",
"public": "8446344bbad6354b924e32b8432ceab32066c40524d95c52e28c1fe30990661ff72b707626339507a3ec43dc28b4e022"
}
public
后面的字符串就是你的operatorPubKey
。secret
后面的字符串就是你的operatorKey
。
operatorPubKey
用于protx注册交易。
operatorKey
用于VPS上Znode的zcoin.conf文件。你可以通过登录VPS,使用文本编辑器打开zcoin.conf,并插入新行znodeblsprivkey=operatorKey
来完成此操作。例如,
znodeblsprivkey=3235bae58e1b46653ee6fd457018c3756797b3b2b5306734873b4a39d9cb8a5f
请勿在转换期间删除VPS上zcoin.conf中的znodeprivkey
行。之后的更新版本将会解决此问题。
字段:operatorReward
这是支付给Znode托管提供商的部分Znode奖励,按百分比表示(0.00到100.00)。如果你自己托管Znode,就设置为0。如果你已通过外部支付或订阅方法向Znode托管提供商支付过了,那么他们很可能会要求你将其设置为0。
运营商需要使用protx update_service命令设置operatorPayoutAddress,以接收部分Znode奖励,否则奖励都将归Znode所有者所有。
设置完毕后,运营商的奖励百分比将无法更改,因此请务必核对好!
字段:payoutAddress
在旧版Znode系统中,Znode奖励始终支付到与抵押品相同的地址。而在新系统中,你可以指定任何地址。你甚至可以让多个Znode使用同一个地址(尽管这不利于隐私)。
任意选择钱包中的一个地址,或创建一个新地址作为payoutAddress。
请勿将你的ownerAddress / votingAddress用作payoutAddress。这些地址不可行。
完成以上步骤后,就可以准备进行protx注册交易,在Zcoin区块链上注册Znode!
要将Znode迁移至确定性Znode系统,使用以下命令:
protx register "collateralHash" collateralIndex "ipAndPort" "ownerAddress" "operatorPubKey" "votingAddress" "operatorReward" "payoutAddress" "feeSourceAddress"
以下为示例:
# znode.conf
Legacy01 207.148.122.12:8168 7EDVXuXszTFLiUif538HhDVvpxhw7gYkGH1w2fkXgCXUW158Wiz 4950f88867b69760d3cd7c1f53531340f6723eb8f7d7f00730abfa12c5fe10e0 0
我们可以使用以下命令将上述znode.conf中的自托管Znode迁移至零operatorReward、从payoutAddress收取交易费用的确定性Znode:
protx register "4950f88867b69760d3cd7c1f53531340f6723eb8f7d7f00730abfa12c5fe10e0" "0" "207.148.122.12:8168" "TRVDAxJwaZYFfmti4aTeKCByz1jbMq8Jy4" "995b3e1e2a65ce960a8cc7d305c5914b7f60e888c338c1f3317efbdcac58e82ecc110315ce03f49d9d387ff35c2796ad" "" "0" "TEZ8M8Fgp8h4HvUjXtjz3krYraRtySiXdw"
collateralHash: 4950f88867b69760d3cd7c1f53531340f6723eb8f7d7f00730abfa12c5fe10e0
collateralIndex: 0
ipAndPort: 207.148.122.12:8168
ownerAddress: TRVDAxJwaZYFfmti4aTeKCByz1jbMq8Jy4
votingAddress: "" (defaults to ownerAddress)
operatorReward: 0
payoutAddress: TEZ8M8Fgp8h4HvUjXtjz3krYraRtySiXdw
feeSourceAddress: (defaults to taking the fee from the payout address)
我们可以使用类似命令来注册由Znode提供商托管的Znode。ipAndPort字段保留为空,因为提供商将在其端执行另一个protx命令。operatorPubKey将由提供商提供。
protx register "67234c08bfa93b0317df14fa6d3269703bbbf1130382c6929ede2525c0d47f23" "0" "" "TTPMVZEpucRkc6bEuQAQenbeVnkA2zF8nY" "8ddd4aa99b6f766059c4653d3cee2a6a75b4888cb23e1cc34af0a16e479d5b16df695a2042478d155ac23aa9c9bc4bcd" "" "0" "TX7Wgd9b7TuHBnDS3j9isUKcmrANgL2qP2"
使用此命令在网络上注册Znode。你可以将IP和端口部分保留为空(“”),稍后再使用protx update_service命令对其进行更新。VotingAddress不用于Znodes,因此将其保留为空(“”):
protx register "collateralHash" collateralIndex "ipAndPort" "ownerAddress" "operatorPubKey" "votingAddress" operatorReward "payoutAddress" "feeSourceAddress"
使用此命令来更新你的IP地址或启动PoSe-banned(禁PoSe)的Znode:
protx update_service "proTxHash" "ipAndPort" "operatorKey" ("operatorPayoutAddress" "feeSourceAddress" )
使用此命令来更新operator public key或payout address。VotingAddress不用于Znodes,因此将其保留为空(“”):
protx update_registrar "proTxHash" "operatorPubKey" "votingAddress" "payoutAddress" ( "feeSourceAddress" )
使用此命令撤消Znode的operator key。这将使Znode的IP地址为空,并将Znode发送到PoSe-banned状态。Znode托管商可以使用此命令停止向Znode所有者提供服务:
protx revoke "proTxHash" "operatorKey" ( reason "feeSourceAddress")
如何更改Znode的IP地址?
使用protx update_service
命令。
我可以将支付地址设为我的抵押地址吗?
可以。
我的Znode处于PoSe-banned状态。我已经解决了Znode出现的问题,要如何重新启动它?
使用protx update_servic
e命令。
如果知道了operator private key,那么可以撤消另一个Znode吗?
可以。所以请保管好你的operator private key。
我可以在旧的失效节点上重新使用BLS密钥对吗?
不可以。你得生成新的密钥对。
下表可用于protx revoke命令中的reason字段。
原因数值 | 原因 |
---|---|
0 | 未指定 |
1 | 服务终止 |
2 | 密钥被盗用 |
3 | 密钥更改(未被盗用) |
- Home
- Information for exchanges
- Technical and Troubleshooting
- Deterministic Masternodes
- Exchanges and Partners
- Vulnerability bounty program