Skip to content

将旧版Znodes迁移到新的确定性Znodes系统

justanwar edited this page Jun 9, 2020 · 4 revisions

将旧版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"

虽然这看起来十分复杂,但是请放心!本指南将会对这些字段进行一一解释。 步骤1:获取1000个XZC Znode抵押品的信息 字段: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条目的所有信息。 步骤2:为每个Znode生成未使用的新地址,作为ownerAddress 字段:ownerAddress,votingAddress 你需要为你拥有的每个Znode提供一个未使用的新地址。你必须拥有这个地址。 例如:如果你有五个Znodes,那你就需要五个新的ownerAddress。这些地址的账户不能有余额,也不能用于任何其他用途。 要生成新地址,可以前往“Help(帮助)”——“Debug window(调试窗口)”——“Console(控制台)”,然后键入“getnewaddress(获取新地址)”,或者前往“File(文件)”——“Receiving Addresses(接收地址)”,然后单击“New(新建)”。重复此操作,直到为每个Znode都创建好新地址。 你的ownerAddress也将被用于votingAddress(投票地址)字段,并将始终不变。 我们不建议将这些地址用于其他任何用途。请勿将此地址作为payoutAddress(支付地址)。 步骤3:指定用于支付protx交易费用的地址 字段:feeSourceAddress 支付protx的交易费需要一个有账户余额的地址。此地址将被用于feeSourceAddress字段。 如果未指定地址,则默认使用支付地址。如果支付地址的余额不足以支付交易费用,那么Znode就会注册失败。 请确保你的钱包中有足够的zcoin支付交易费用,然后再前往“Help(帮助)”——“Debug window(调试窗口)”——“Console(控制台)”,并输入以下命令: listaddressbalances 0.01 此命令将会列出所有余额超过0.01 XZC的地址。 你可以在此列表中选一个地址作为feeSourceAddress。 确保使用的Zcoin地址有足够的余额支付交易费用。 步骤4:为每个Znode生成BLS密钥对 字段: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,并插入新行znodeblskey = operatorKey来完成此操作。例如,znodeblskey = 3235bae58e1b46653ee6fd457018c3756797b3b2b5306734873b4a39d9cb8a5f 请勿在转换期间删除VPS上zcoin.conf中的znodeprivkey行。之后的更新版本将会解决此问题。 步骤5:指定Znode托管提供商的Znode奖励百分比(如果有托管的话)。 字段:operatorReward 这是支付给Znode托管提供商的部分Znode奖励,按百分比表示(0.00到100.00)。如果你自己托管Znode,就设置为0。如果你已通过外部支付或订阅方法向Znode托管提供商支付过了,那么他们很可能会要求你将其设置为0。 运营商需要使用protx update_service命令设置operatorPayoutAddress,以接收部分Znode奖励,否则奖励都将归Znode所有者所有。 设置完毕后,运营商的奖励百分比将无法更改,因此请务必核对好! 步骤6:指定Znode奖励的接收地址 字段:payoutAddress 在旧版Znode系统中,Znode奖励始终支付到与抵押品相同的地址。而在新系统中,你可以指定任何地址。你甚至可以让多个Znode使用同一个地址(尽管这不利于隐私)。 任意选择钱包中的一个地址,或创建一个新地址作为payoutAddress。 请勿将你的ownerAddress / votingAddress用作payoutAddress。这些地址不可行。 注册Znode 完成以上步骤后,就可以准备进行protx注册交易,在Zcoin区块链上注册Znode! 要将Znode迁移至确定性Znode系统,使用以下命令: protx register "collateralHash" collateralIndex "ipAndPort" "ownerAddress" "operatorPubKey" "votingAddress" "operatorReward" "payoutAddress" "feeSourceAddress" 以下为示例: 示例1:自托管Znode

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) 示例2:使用托管服务的Znode 我们可以使用类似命令来注册由Znode提供商托管的Znode。ipAndPort字段保留为空,因为提供商将在其端执行另一个protx命令。operatorPubKey将由提供商提供。 protx register "67234c08bfa93b0317df14fa6d3269703bbbf1130382c6929ede2525c0d47f23" "0" "" "TTPMVZEpucRkc6bEuQAQenbeVnkA2zF8nY" "8ddd4aa99b6f766059c4653d3cee2a6a75b4888cb23e1cc34af0a16e479d5b16df695a2042478d155ac23aa9c9bc4bcd" "" "0" "TX7Wgd9b7TuHBnDS3j9isUKcmrANgL2qP2" 常见的protx命令 使用此命令在网络上注册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_service命令。 如果知道了operator private key,那么可以撤消另一个Znode吗? 可以。所以请保管好你的operator private key。 我可以在旧的失效节点上重新使用BLS密钥对吗? 不可以。你得生成新的密钥对。 撤销原因表 下表可用于protx revoke命令中的reason字段。 原因数值 原因 0 未指定 1 服务终止 2 密钥被盗用 3 密钥更改(未被盗用)

Clone this wiki locally