一、安装命令行钱包
1、下载 EOS 源代码
如果没有安装 git , 请先下载安装 git , 网址: https://git-scm.com
-
下载 EOS 源码:
git clone https://github.com/EOSIO/eos --recursive
2、编译安装
- 编译:
cd eos
./eosio_build.sh
- 安装
cd build
sudo make install</pre>
二、使用钱包
经过编译安装后,就可以使用钱包了。
1、联接主网测试
使用钱包并不需要在本地运行节点,我们可以在 https://eospark.com 这个网站上查询到所有的超级节点列表,在节点列表名称上点击,能够显示节点的一些细节情况:
我们选择使用佳能节点
cleos -u https://mainnet.eoscannon.io get info
{"server_version": "db031363","chain_id": "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906","head_block_num": 2010556,"last_irreversible_block_num": 2010228,"last_irreversible_block_id": "001eac74165def938d6da71a4806bf564732283edadffdcf99bfb9710b1e0233","head_block_id": "001eadbc12fe5762a192887d8495aa18ebadba94cd1d9165cfdc7a2a26632719","head_block_time": "2018-06-22T07:26:49.500","head_block_producer": "bitfinexeos1","virtual_block_cpu_limit": 200000000,"virtual_block_net_limit": 1048576000,"block_cpu_limit": 197661,"block_net_limit": 1048192}
确保为主网:chain_id=aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906
2、简化命令行使用
我们可以在 .bash_profile 文件中加入以下一行:
alias eos='cleos -u https://mainnet.eoscannon.io'
这样我们输入 eos
就是输入了 cleos -u https://mainnet.eoscannon.io
,以后就不用每次都要加入要连接的节点。
3、准备使用钱包
- 如果以前测试运行过节点,使用钱包时有可能会出错,这时可以删除以下目录
Mac OS: ~/Library/Application Support/eosio/nodeos/data
Linux: ~/.local/share/eosio/nodeos/data
- 如果以前用过 cleos 建立过钱包文件,可以删除钱包文件,钱包文件在用户目录
~/
下。
rm -rf ~/eosio-wallet
4、新建钱包
因为新建钱包,导入私钥过程不需要联网,我的做法是断网、重启。在不联网的情况下操作。
- 新建钱包
cleos wallet create
"/usr/local/bin/keosd" launched
Creating wallet: default
Save password **to** use in the future **to** unlock this wallet.
Without password imported keys will not be retrievable."PW5JVFbLPJJ7VN9ukS2Zjjuq8....hCiUCM5CRXydZaPtjsbGy"
- 如果使用
cleos wallet create -n 钱包名
,可以自定义钱包的名字,我们可以使用 cleos 建立无数个钱包。当没有定义名字时,使用default
作为钱包名。
注意:建立钱包时,会给你一个以后用来打开钱包的密码,密码很长,不能自定义,如果保存在电脑里,安全会很有问题,但如果不保存在电脑里,就不能复制粘贴,估计没人愿意一个个把密码敲入吧。
不知道其它人是如何处理这个事情的,我是把它保存在一个文本中,然后加密后放在 u 盘,使用时,断网,打开加密的文件,然后在断网的情况下解锁钱包后。再连网使用。
- 如果在新建钱包时出现如下问题:
"/usr/local/bin/keosd" launched
Unable to connect to keosd, if keosd is running please kill the process and try again.
这个是 EOS 的一个BUG**,**可以先删除 keosd 进程:`killall keosd`**,**然后加入 `--wallet-url` 参数来解决:
cleos --wallet-url http://127.0.0.1:8900 wallet create
- 导入私钥
cleos wallet import <你的私钥>
- 可以多建几个私钥备用
使用 cleos create key
生成私钥,然后用cleos wallet import <你的私钥>
导入钱包,备用。
5、最后备份钱包文件
钱包列表:cleos wallet list
私钥列表:cleos wallet keys
复制用户目录下的 eosio-wallet 到 U 盘。将加密过的密码文件也放入 U 盘保存。
6、开始使用钱包
- 断网,重启
打开钱包:
cleos wallet open
插入 u 盘解密文件后输入钱包密码。
解锁钱包:
cd eos
./eosio_build.sh
- 好了,接下来我们就可以联网,使用钱包进行转帐等操作。
1、查询主网自动分配的账户名
cleos get accounts <你的公钥>
2、注册新账户,账户名必须12位字符(可用字符:12345abcdefghijklmnopqrstuvwxyz)
eos system newaccount --stake-net '0.001 EOS' --stake-cpu '0.02 EOS' --buy-ram-kbytes 3 <自动分配的账户名> <新注册账户名> <你的公钥>
3、查看账户信息
- 查看账户概要信息(可用资源、投票等)
cd eos .
./eosio_build.sh
1、查看账户抵押信息
cd eos
./eosio_build.sh
2、 看账户抵押信息
cd eos
./eosio_build.sh
3、查看账户余额
cd eos
./eosio_build.sh
4、EOS转账
eos transfer <转出账户名> <转入账户名> '0.0001 EOS' 'memo'
5、关闭钱包
eos wallet lock
6、竞拍短名
用于少于12字符的短账户名,每24小时只成交一个。
- 查询短名出价情况
eos system bidnameinfo <短名>
- 参与竞拍
eos system bidname <本人账户名> <短名> '0.0001 EOS'
7、投票
- 查看账户抵押信息
eos system listbw <本人账户名>
- 可追加抵押增加票数(抵押EOS可分别获得相应网络、CPU资源,票数为两项之和)
eos system delegatebw <本人账户名> <本人账户名> '0.001 EOS' '0.02 EOS'
- 查看节点清单
eos system listproducers
- 投票 (可以重新投票,哈哈,终于投了几个自己喜欢的节点)
eos system voteproducer prods <本人账户名> <节点账户名> <节点账户名>
- 查看账户及投票信息
eos get account <账户名>
- 撤销抵押(同时撤销相应的票数。三天后到账)
eos system undelegatebw <本人账户名> <本人账户名> '0.001 EOS' '0.02 EOS'
5分钟学会注册EOS主网账户、投票和发币
第一步: 安装docker
https://www.docker.com/community-edition
install docker for CentOS. (其他操作系统看上面链接)
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
sudo service docker start
第二步:部署EOS钱包服务
- 下载EOS官方镜像
docker pull eosio/eos
2. 创建钱包目录,后续生成的钱包文件均保存在该目录下
mkdir -p /data/eosio/eosio-wallet
3. 创建钱包服务
如果曾经创建过keosd容器需要先删除
docker stop keosd
docker rm keosd
创建keosd容器启动服务
docker run -d --restart=unless-stopped --name keosd \
-v /data/eosio/eosio-wallet:/opt/eosio/bin/data-dir \
-v /data/eosio/eosio-wallet:/root/eosio-wallet \
-t eosio/eos /opt/eosio/bin/keosd \
--wallet-dir /opt/eosio/bin/data-dir \
--http-server-address=127.0.0.1:8900
# 查看日志
docker logs keosd
第三步:创建本地钱包并导入私钥
1. 创建EOS操作命令cleos别名(请选择可信的正式节点接入地址)
alias cleos='docker exec -i keosd /opt/eosio/bin/cleos --wallet-url http://127.0.0.1:8900 -u http://mainnet.eoscalgary.io '
# 查看主网信息
cleos get info
# 确保为主网:chain_id=aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906
eospark.com收集了各节点接入地址端口。以下地址供参考验证:
http://mainnet.eoscanada.com
http://mainnet.eoscalgary.io
http://mainnet.eoscannon.io
http://mainnet.genereos.io
2. 创建钱包,记录钱包密码以备将来使用(钱包存在本地/data/eosio/eosio-wallet目录下)
cleos wallet create -n my
钱包一段时间不用会自动锁定,再次使用需要用钱包密码解锁
cleos wallet unlock -n my
3. 导入私钥(私钥保存在钱包内,用于对交易签名,不会向外泄露)
cleos wallet import -n my <你的私钥>
4. 必要时可创建新的密钥对(可用于新建账号或变更权限,记得妥善抄写保存私钥)
cleos create key
# 确保密钥抄写无误,对照抄写的密钥进行导入,切勿复制粘贴
cleos wallet import -n my <新私钥>
第四步:注册EOS账户名
- 查询主网自动分配的账户名
cleos get accounts <你的公钥>
2. 注册新账户,账户名必须12位字符(可用字符:12345abcdefghijklmnopqrstuvwxyz)
# 抵押0.001EOS用于网络,0.02EOS用于CPU,购买3k内存(约0.0465EOS)可满足新账户转账最低资源需求
cleos system newaccount --stake-net '0.001 EOS' --stake-cpu '0.02 EOS' --buy-ram-kbytes 3 \
<自动分配的账户名> <新注册账户名> <你的公钥>
3. 查看账户信息
# 查看账户概要信息(可用资源、投票等)
cleos get account <账户名>
cleos get table eosio <账户名> userres
# 查看账户抵押信息
cleos system listbw <账户名>
cleos get table eosio <账户名> delband
# 查看账户余额
cleos get currency balance eosio.token <账户名>
cleos get table eosio.token <账户名> accounts
4. EOS转账
cleos transfer <转出账户名> <转入账户名> '0.0001 EOS' 'memo'
5. 竞拍短名(少于12字符的短账户名需竞拍,每24小时只成交一个。目前只能出价,主网激活14天后才正式交易)
# 查询短名出价情况
cleos system bidnameinfo <短名>
# 参与竞拍
cleos system bidname <本人账户名> <短名> '0.0001 EOS'
- 账户转让(变更账户active和owner)
# 变更账户active权限为对方公钥
cleos set account permission <转让账户名> active '{"threshold":1,"keys":[{"key":"<对方公钥>","weight":1}]}' owner
# 或变更账户active权限为对方账户名(active权限)
cleos set account permission <转让账户名> active '{"threshold":1,"keys":[],"accounts":[{"permission":{"actor":"<对方账户名>","permission":"active"},"weight":1}]}' owner
# 变更操作消耗网络和CPU资源,如提示不足需追加:
cleos system delegatebw <本人账户名> <转让账户名> '0.001 EOS' '0.02 EOS'
变更active权限后对方已经可以操作,可以通过小额转账进行验证
cleos transfer <本人账户名> <转让账户名> '0.0001 EOS' 'memo'
# 通知对方做以下转出操作,确保对方密钥无误
cleos transfer <转让账户名> <本人账户名> '0.0001 EOS' 'memo'
确认对方可以转出后再执行下一步变更owner,以免密钥错误账户永久丢失
# 变更账户owner为对方公钥
cleos set account permission <转让账户名> owner '{"threshold":1,"keys":[{"key":"<对方公钥>","weight":1}]}' -p <转让账户名>@owner
# 或变更账户owner为对方账户名(owner权限)
cleos set account permission <转让账户名> owner '{"threshold":1,accounts":[{"permission":{"actor":"<对方账户名> ","permission":"owner"},"weight":1}]}' -p <转让账户名>@owner
第五步:投票
- 查看账户抵押信息
cleos system listbw <本人账户名>
2. 可追加抵押增加票数(抵押EOS可分别获得相应网络、CPU资源,票数为两项之和)
cleos system delegatebw <本人账户名> <本人账户名> '0.001 EOS' '0.02 EOS'
3. 查看节点清单
cleos system listproducers
4. 投票 (可重新投票。散户投票策略:只投21名之后的节点。锦上添花不如雪中送炭)
cleos system voteproducer prods <本人账户名> <节点账户名> <节点账户名> ……
5. 查看账户及投票信息
cleos get account <账户名>
6. 赎回抵押(同时撤销相应的票数。三天后到账)
cleos system undelegatebw <本人账户名> <本人账户名> '0.001 EOS' '0.02 EOS'
7. 领取退款(三天后执行退款操作将赎回款转入账户余额)
cleos push action eosio refund '["<本人账户名>"]' -p <本人账户名>
第六步:发币!
- 注册代币发行账户
cleos system newaccount --stake-net '0.1 EOS' --stake-cpu '1 EOS' --buy-ram-kbytes 200 \
<本人账户名> <代币发行账户名> <代币发行账户公钥>
发行代币需要一定系统资源,如不够可追加:
# 抵押EOS追加网络和CPU资源
cleos system delegatebw <本人账户名> <代币发行账户名> '0.1 EOS' '1 EOS'
# 消耗EOS购买内存资源
cleos system buyram <本人账户名> <代币发行账户名> '1 EOS'
2. 部署代币合约
cleos set contract <代币发行账户名> contracts/eosio.token -p <代币发行账户名>
3. 创建代币,指定发行人、最大发行量和代币符号
cleos push action <代币发行账户名> create \
'{"issuer":"<代币发行账户名>", "maximum_supply":"10000000000.0000 <代币符号>"}' \
-p <代币发行账户名>
# 查看代币发行概况
cleos get currency stats <代币发行账户名> <代币符号>
4. 发行代币(先给自己发10亿……)
cleos push action <代币发行账户名> issue \
'[ "<代币接收账户名>", "1000000000.0000 <代币符号>", "memo" ]' \
-p <代币发行账户名>
5. 查看代币余额
cleos get currency balance <代币发行账户名> <代币接收账户名>
6. 代币转账
cleos push action <代币发行账户名> transfer \
'[ "<转出账户名>", "<转入账户名>", "10.0000 <代币符号>", "memo" ]' \
-p <转出账户名>
最后:清理
操作完成后如不再使用,可停止钱包服务并删除钱包文件确保安全
docker stop keosd
docker rm keosd
rm /data/eosio/eosio-wallet/my.wallet