oflyhigh avatar

每天进步一点点:再聊Power Down Route/Withdraw route

oflyhigh

Published: 04 Mar 2024 › Updated: 04 Mar 2024每天进步一点点:再聊Power Down Route/Withdraw route

每天进步一点点:再聊Power Down Route/Withdraw route

提到Power Down,小伙伴们可能都不陌生,不就是撤回股份(withdraw_vesting)嘛,最终的结果是将锁仓的HP变成流动性HIVE。但是说到Power Down Route,可能新来的小伙伴就一头雾水了。

image.png
(图源 :pixabay)

好吧,其实单纯就CN而言,几乎没有几个新来的小伙伴了,都是些老油条,但是老油条们对Power Down Route可能也不太了解。

就连我这个超老的油条,都把相关内容忘得差不多一干二净了,所以决定重新学习一下,温故而知新嘛。

介绍

Power Down Route(也叫Withdraw route), 翻译成Power Down 路线,顾名思义,就是通过这个功能你可以将你的HIVE POWER直接Power Down到其它账户,而且可以选择Power Down到其它账户后是否直接Power UP成HP。

(注:现在代码以及API上都叫Withdraw route,但是我觉得这个名字容易产生歧义,毕竟这个route只针对power down的,所以还是Power Down Route/更贴切,或者叫全称withdraw vesting route

举个例子,假设你有多个账户并且都持有一些股份(HP),现在你想把HP都归结到一个账户中,那么需要如何操作呢?

  • 在多个账户发起Power Down
  • 每周Power Down到账后选择Power UP到指定账户中

这里有两个问题:

第一,就是我们每周都要检查一下Power Down回来的Hive,虽然我们可以等13周后都Power Down完毕一起处理,但是那样相当于之前Power Down出来的HIVE白白地闲置了好几周。

第二问题就是除了Power Down操作,我们还要进行多次Power UP操作。

这只是一次 Power Down,如果你计划多次Power DOWN,那么上述流程无疑很是繁琐,白白增加了很多操作,浪费时间精力。

就算我们Power Down后不Power UP到其它账户,而只是转账到其它账户,那么同样也多浪费好多转账操作。

那么有没有什么办法,一劳永逸地解决Power Down后转账到其它账户或Power Down后Power UP到其它账户的问题呢?聪明读者看到这里想必已经知道答案了,那就是设置Power Down route(Withdraw route) 。

一旦对某个账户设置了Power Down route(Withdraw route) ,那么对这个账户Power Down操作,到账的HIVE会根据设定的比例自动到达指定账户,如果我们还设置了(auto_vest),那么就会自动Power UP到指定账户,省却了大量的手工操作。

设置

我们可以通过cli_wallet为指定账户设置Power Down route(Withdraw route),语法如下:

set_withdraw_vesting_route(string, string, uint16_t, bool, bool)

对应参数分别是:待设置账户,指定账户,比例,是否自动Power UP,是否广播

实例:

set_withdraw_vesting_route oflyhigh.test oflyhigh 5000 true true

成功执行上述操作后,我们会在区块链浏览器上查询到如下信息:
image.png

其中数值5000,代表 oflyhigh.test Power Down 50%的份额到达指定账户(oflyhigh)。我们可以通过设置比例以及目标账户,将Power Down份额分给不同的目标账户。(可以设置N个Routes,并对其分配不同比例,总量不超过100%

比如将剩余的50%份额分给oflyhigh.demo

set_withdraw_vesting_route oflyhigh.test oflyhigh.demo 5000 true true

取消Power Down route(Withdraw route)也很简单,仅需将对应的比例设置为0,就会取消啦,比如:

set_withdraw_vesting_route oflyhigh.test oflyhigh.demo 0 true true

查询

目前区块链仅能查询是否设置了Power Down route(Withdraw route) 以及设置了几组,但是不支持查询具体情况,比如我的测试账户:
image.png

所以查询时我们需要借助于condenser_api.get_withdraw_routes这个API。

相关参数以及示例如下:
image.png

以我的测试账户为例,查询一下“outgoing”的Power Down route(Withdraw route):

curl -s --data '{"jsonrpc": "2.0", "method": "condenser_api.get_withdraw_routes", "params": ["oflyhigh.test", "outgoing"], "id": 1}' https://api.hive.blog

将会返回如下结果:
image.png
可见我的设置是成功而且合理的。

API用起来很不方便,而且因为伟大的墙,很多节点还用不了,真是愁人。

早些时候我还在微信公众号中集成过这个查询功能:
image.png

可惜HIVE分叉后微信公众号一直没有维护,或许是时候重新启动微信公众号的相关功能了。唉,感觉要干的事情太多了,自己又极度拖延,好焦虑。

额外话

虽然Power Down Route/Withdraw route是一个非常方便且有用的功能,但也是因为如此,这个功能常常被黑客利用,黑客盗取账户后第一时间就是修改私钥、转光余额以及设置Power Down Route且执行Power Down,然后你的钱就都到别人那里去啦。

所以检查是否被人设置了Power Down Route也是判断账户是否被盗的依据之一。同理,一个账户被设置为N多账户的Power Down Route目标账户,那么大概率这个账户是被黑客所拥有。


好了,今天就学习到这里,你学废了嘛?

相关链接

Leave 每天进步一点点:再聊Power Down Route/Withdraw route to:

Written by

Programmer, Maker, Freelancer, Witness. Make friends, Make money, Make life better!

Read more #cn posts


Best Posts From oflyhigh

We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From oflyhigh