1、运行Docker,连接EOS主网
跟抢注EOS账号名的前期准备工作差不多,需要先安装Docker和EOS。具体操作和可能会遇到的一些坑就不一一赘述了
对于已经利用Cleos抢注EOS账号名,可以直接往下看。(天晓用的是Ubuntu,需要先打开终端。CentOS之类的Linux系统,使用的命令也差不多。)
先运行Docker:
sudo service docker start
如果之前抢注EOS账号名时创建过keosd,那么这次需要先删除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
创建EOS的命令行工具cleos,并链接到EOS主网。昨天有小伙伴“WaYung”留言“http://mainnet.genereos.io”的连接速度比较快。
alias cleos='docker exec -i keosd /opt/eosio/bin/cleos --wallet-url http://127.0.0.1:8900 -u http://mainnet.genereos.io '
这个链接是来自澳大利亚超级节点候选者GenerEOS提供的,比较可信的。不过,不管是来自哪的链接,都必须用以下命令查看主网信息再确认一次。
cleos get info
仔细确认chain_id是否完全符合aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906,这才可以确认连接的EOS主网。
2、解锁钱包,准备好资源
因为本地钱包一段时间不使用,会自动锁定,所以要先输入以下命令
cleos wallet unlock -n <本地钱包名>
接着用钱包密码解锁,这样你才能在EOS主网上对本人账户进行各种操作。
然后,注册代币发行账户
cleos system newaccount --stake-net '0.1 EOS' --stake-cpu '0.1 EOS' --buy-ram-kbytes 200 \
<本人账户名> <代币发行账户名> <代币发行账户公钥>
这一步不是必须的,可以直接使用你昨天抢注的账号,比如天晓用的就是“xiaoxiaoxiao”。按以上命令重新注册新账号,有个好处就是帮你配好发币所需的资源了。如果系统提示资源不够,可以通过以下命令,抵押EOS,追加网络和CPU资源。
cleos system delegatebw <本人账户名> <代币发行账户名> '0.1 EOS' '1 EOS'
购买内存资源
cleos system buyram <本人账户名> <代币发行账户名> '1 EOS'
接着因为要在EOS主网上对“代币发行账户”进行操作,所以要创建一个本地钱包和保存密码,并导入“代币发行账户”对应的私钥。
cleos wallet create -n <新的本地钱包>
cleos wallet import -n <新的本地钱包> <代币发行账户对应的私钥>
3、万事具备,开始发币
现在可以开始最重要的步骤,部署代币合约。
cleos set contract <代币发行账户名> contracts/eosio.token -p <代币发行账户名>
“contracts/eosio.token”是系统自带的代币合约,可以不用自己通过C++编写,很方便。这一步,只要你的RAM资源足够,一般都没问题。不够的话,请看前面购买内存资源的命令。
然后创建代币,指定发行人、最大发行量和代币名称。
cleos push action <代币发行账户名> create \
'{"issuer":"<代币发行账户名>", "maximum_supply":"100000000000.0000 <代币名称>"}' \
-p <代币发行账户名>
天晓在这一步犯了一个错误,代币名称随便用了“kkk”。其实在EOS上,代币名称必须是大写的。
接下来,就可以发行代币了。
cleos push action <代币发行账户名> issue \
'[ "<代币接收账户名>", "100000000.0000 <代币符号>", "memo" ]' \
-p <代币发行账户名>
那怎么看代币有没发到账号上?可以用以下指令
cleos get currency balance <代币发行账户名> <代币接收账户名>
如果你想把代币转给其他账户,那么采用以下命令
cleos push action <代币发行账户名> transfer \
'[ "<转出账户名>", "<转入账户名>", "10000 <代币符号>", "memo" ]' \
-p <转出账户名>
上面的“代币转账”命令,跟之前的“发行代币”比较类似,区别在于代币的转出方跟代币发行账户是不是同一个。
这么个流程下来,空气币“XXX”正式诞生,非常简单。一开始没注意,就是随手写了个代币名称,后来才发现“XXX”不太雅……不介意的,评论留下EOS账号名的,天晓赠送10万空气币“XXX”到你账户,哈哈。