有朋友问我,在HIVE上,怎么操作最安全?其实我们平时发文、点赞等都用的是POSTING KEY(发文私钥),尽管这个也很重要,但是泄露后我们可以修改掉。
(图源 :pixabay)
但是如果涉及转账、投见证人票或者涉及HBD的存款、取款等,则需要用到ACTIVE KEY(活跃私钥/资金私钥),这个一旦泄露,你账户里的活期资产可能会瞬间被人转走,那就欲哭无泪啦。
我想了一下他的问题,其实要说安全,肯定是自己写钱包最安全(但是万一写不好有漏洞可能反而会比较悲催),另外,自己写钱包还是必要有难度的。所以我觉得相对而言,命令行钱包(cli_wallet)还是个非常不错的选项的。
命令行钱包是官方与hived一起以源码形式发布的,大家都可以看到代码中进行了哪些操作,有没有恶意代码;另外,大家可以自行从源码编译,这样安全性便得到极大的保证。
这篇文章我们假设已经编译好了命令行钱包,从头开始给大家介绍如何使用。
连接到节点
使用命令行钱包之前,需要先连接到hive的节点上,我们这里连接的是本地节点,如果你没有一个本地节点,那么连接远程的公共节点也可以:
cli_wallet -s ws://127.0.0.1:8091
设置钱包密码
初次使用命令行钱包,它会提示我们初始化一个新钱包并设置密码:
我们按提示为钱包设置密码:
set_password passwd
其中passwd是你为钱包选择的密码,注意不要用常见的词汇,也不要用太简单或者易猜测的密码。
导入私钥
在使用钱包进行操作(查询类的操作除外)之前,需要导入相应的私钥。如果我们只是用来发帖、点赞,那么导入POSTING KEY;如果要进行转账、投见证人票、HBD存取款等,那么要导入ACTIVE KEY;如果转账要加上加密的MEMO,那么要导入MEMO KEY。
导入私钥之前,我们首先解锁钱包,在locked >>>提示符后边输入:
unlock passwd
其中passwd是你为钱包设定的密码,解锁成功后,提示符会变成unlocked >>>,然后就可以导入私钥了。
使用如下语句导入私钥:
import_key xxxx
我们通过上述方法导入相应账户的POSTING KEY、ACTIVE KEY以及MEMO KEY。
投票操作
命令行钱包支持N多操作,我们也可以用help指令查看,因为支持的操作列表太长,我就不截屏啦。
condenser_api::legacy_signed_transaction vote(const string & voter, const string & author, const string & permlink, int16_t weight, bool broadcast)
其中投票操作的提示信息如上,分别是:投票者、作者、文章permlink、投票权重、是否广播。
以这篇文章为例:@oflyhigh.test/6nvvoa,点赞1%,那么相应的投票指令应为:
vote oflyhigh oflyhigh.test oflyhigh.test 1 false
其中false表示先不广播,在对命令行钱包操作不熟悉的时候,可以使用false来对操作进行测试,等熟悉后,改成true将操作广播到网络上。
上述指令发送后,会出类似如下的提示信息,说明指令啥的都没错。注意的是,操作中,用10000及以内的整数表示百分比(weight),所以1%就是100:
将上述指令中的false改成true,并提交。通过hiveblocks.com可以查看到投票成功:
转账操作
转账操作同投票操作没啥本质区别,有两点需要注意的地方,一是转账操作需要ACTIVE KEY;二是,如果需要加密的memo则需要MEMO KEY。
转账操作的帮助信息如下:
condenser_api::legacy_signed_transaction transfer(const string & from, const string & to, const condenser_api::legacy_asset & amount, const string & memo, bool broadcast)
我们分别来发起两条转账信息,一条非加密MEMO:
transfer oflyhigh oflyhigh.test "0.001 HBD" "此处是memo" true
在hiveblocks.com可以查看到相应的转账信息以及对应的MEMO:
另外一条是加密MEMO:
transfer oflyhigh oflyhigh.test "0.001 HBD" "#此处是加密memo" true
注意,这里以#开头,表示这条信息需要加密,在hiveblocks.com可以查看到相应的转账信息以及对应的MEMO,可是MEMO部分是一堆加密后的信息:
使用wallet.hive.blog登录后,可以查看到以上两条相对应的转账信息:
投见证人票
投见证人票的相关帮助信息如下:
condenser_api::legacy_signed_transaction vote_for_witness(const string & account_to_vote_with, const string & witness_to_vote_for, bool approve, bool broadcast)
如果你不知道该投谁或者已经投了谁,那么可以来这里查看相关信息:
举例说,如果你还没有投我见证人票,那么可以使用如下指令投票给我哦😀:
vote_for_witness yourid oflyhigh true true
其中yourid代表你在HIVE的ID, oflyhigh表示你要支持的见证人,第一个true表示投赞成票(换成false表示投反对票,亦即撤票)。
你要不要来试试呢?当然了,如果你已经投过我,就不要再试了,不然万一操作错了,给我撤票,我就会很伤心的哦。
(图源 :pixabay)
好了,今天就暂时介绍这些,命令行钱包操作,是不是也很简单啊?