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

in HIVE CN 中文社区9 months ago

提到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目标账户,那么大概率这个账户是被黑客所拥有。


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

相关链接

Sort:  

@edicted, the same topic you wrote recently about - what a stunning coincidence!

Wow, this is really a coincidence.

报告O哥,学废了,真的废了😂

被黑客偷走,有点吓人

O神顶呱呱👍🏻👍🏻

要是有人学会了,他会把小号的HP倒到大号上。。。。
捂脸。。。

这要看怎么理解小号
只要不是立个不同的人设来骗点赞,我觉得问题不大

好教程,尽力消化。👍🏻

我好怕黑客来搞我 退退退🤺

学废了!

第一次听说有这功能,哈哈哈,不过,暂时决定在没手残之前,还是选择手动。😂😂,感谢O哥的分享。