EOS账号,就像是银行账户名,也像互联网的域名,显然没有人希望自己的银行账户名和域名看起来是一堆乱码。EOS主网上线后,一票极品账号已经被注册,估价千万的账号到底是有价无市还是有市无价,EOS开启账号交易之时自有定论。如果看完本文的朋友,能先人一步富贵十年,也不枉程序员一片心意。为什么我们如此无私?因为我们是雷锋。当然,我们也自己注册了一些些。
全网还没有开放简易的注册入口的时,一些高价值账号已经悄然被注册,例如:
1、李笑来领衔的硬币资本INblockchain被注册
2、和公益筹款有关的qingsongchou(轻松筹)被注册;
3、和钱包支付有关的bitpaywallet被注册
4、和交易所相关的huobicapital被注册
5、常用词语iloveyou1234被注册
6、主链名字nabuleschain被注册
7、和BAT有关的alipaywallet,wechatwallet被注册
8、和高校有关的qinghuadaxue被注册
区块链时代的第一波域名投资,注册一个账号的成本大约是4块钱(0.046EOS/个,这是6月11日凌晨2点的价格),撸还是不撸,It is a problem~
现在,block.one尚未放出官方的注册地址,看到此文章的你,不需要有任何的质疑,你的确是遇到了全网第一波科普和教程。本文将手把手教你,在这个千钧一发之际,先人一步抢注自己心仪或者想要投资和使用的EOS账号。
首先要知道,EOS官方为了防止大家恶意抢注,第一期对可注册账号名设定了若干规则:
- 注册名字必须12位,包含字符“.12345abcdefghijklmnopqrstuvwxyz”,短于12位的只能通过特殊方式分配。
- 包含“.”的帐号必须有“.”之前帐号的权限。
- 短于 12 位的无法直接注册,猜测未来将会通过 bid (竞价)机制发行。
选好自己想要的账号,现在就可以抢注账号了。这里可以查询账号是否已经被抢注:http://www.dappworld.com/api/v1/eos/account
考虑到大家对技术的掌握程度不同,我们这里针对技术小白和喜欢动手的技术同学分别提供了不同的注册办法:
1、技术小白同学们
本来我们写了一个简单教程,后来发现估计还是各种疑问,索性祭出运营妹子的微信:dappworld001,加她去寻求1对1私密服务~注册一个账号大约要花费人民币3.86元(0.046EOS),加小编妹子微信之后,自己看着打赏即可。小编妹子尽量帮大家处理,如果人数太多,妹子优先帮助打赏多的人注册,你会介意吗?23333
注册需要你提供EOS钱包的公钥,注册之后,账户的归属权属于你本人,你可以在EOS区块链浏览器查询归属(https://eospark.com 输入自己的公钥即可),如果上面说的你还是没看懂,也没关系,运营妹子写了一个小白教程和FAQ等着你。
至于什么样的账号是好账号,公司的技术男认为wallet结尾的好,毕竟这个账户是用于接收转账的,im和iam开头的也蛮好, emmm
2、喜欢自己撸的技术同学们请看下文
长话短说,注册账户需要一个正确映射的 EOS 帐号。成功映射后你应该会有一个 EOS 公钥和一个 5 开头的私钥,注册帐号过程中需要由这个帐号提供 RAM 费用(即在链上保存账户的费用)。要求余额至少有 0.05 EOS,大约是不到 3Kbytes。
接下来,我们直接通过 EOS 的命令行调用 API。
我们需要 EOS 命令行工具 cleos, 钱包服务 keosd,建议使用 Docker 方式执行。安装 Docker 请参考各种官方教程。
首先拉最新 Docker 镜像
$ docker pull eosio/eos:latest
然后二话不说直接进 docker 里肝命令
# docker run --rm -it eosio/eos:latest /bin/bash
容器里的工具集在以下位置
# cd /opt/eosio
我们自己没有 EOS 节点,所以需要调用公共 API。这里选择 EOSwz(是的,江南皮革厂)
# ./bin/cleos -u http://mainnet.eoswz.com get info
{
"server_version": "db570801",
"chain_id": "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906",
"head_block_num": 42734,
"last_irreversible_block_num": 42733,
"last_irreversible_block_id": "0000a6ed6a67e346aee4f8e428f73d88f2fe43aeebf898bb8be0bcf27fe4862c",
"head_block_id": "0000a6ee84a39fd115297978852eb53b15f57a043058d84e40557594ec351c02",
"head_block_time": "2018-06-10T16:54:16",
"head_block_producer": "genesisblock",
"virtual_block_cpu_limit": 200000000,
"virtual_block_net_limit": 1048576000,
"block_cpu_limit": 199900,
"block_net_limit": 1048576
}
确认 chain_id 是 aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906 ,这是目前 EOS 主链的 id.
确认OK,创建一个钱包。这里注意,执行 docker image 的时候上面加了 --rm 参数,退出即销毁,需要随时copy屏幕上的输出保存起来,当然你也可以挂载 volume 来备份容器的钱包目录。
# ./bin/cleos wallet create
"/opt/eosio/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.
"PW5J2nVSHsXCqw22cyXjRUsgnjeMma59HWjwV3QxRSvtsdUptPbwJ"
可以看到,本地的 keosd 钱包服务被自动启动。
这里的 PW 开头的字符串就是你的钱包密码,*******一定保存起来*******,操作超时的时候需要用它来解锁钱包(命令是 cleos wallet unlock)
找到你当年主网映射拿到的私钥,格式是 5*********qX9Bnc2********TPinpFf6 (5开头的一串 base58 字符串)
然后导入私钥到钱包:
# ./bin/cleos wallet import 5*************qX9Bnc2**********TPinpFf6
imported private key for: EOS7*******kAKc6*****biW****gLUH****SL****o98 #隐藏掉我的地址
可以看到直接显示了你的 EOS 公钥,那么你的主网映射的 EOS 帐号是多少呢(自动生成的,以后有机会改)
# ./bin/cleos -u http://mainnet.eoswz.com get accounts EOS7*******kAKc6*****biW****gLUH****SL****o98
{
"account_names": [
"vfrwffsesdfk"
]
}
这里帐号我随便写的,举例。
可以看到,主网映射后,其实自动给每个账户生成了一个帐号名的。通过这个帐号名,我们可以拿来支付新帐号的创建费。
查询下余额看看
# ./bin/cleos -u http://mainnet.eoswz.com get currency balance eosio.token vfrwffsesdfk EOS
2.1411 EOS
OK,余额虽然少,足够用。
创建一个新私钥对:*******一定保存好这里的私钥*******
# ./bin/cleos create key
Private key: 5KNKQm8T5GvxLQfL8ySpMdQqFwjY6ZcCgB7ggwVGC3BatjPak9M
Public key: EOS59vJPCZ4Qv1fVCDeCckSb2xnZmNkbdppdk3QVRnsxzX5bydBuM
导入到钱包
# ./bin/cleos wallet import 5KNKQm8T5GvxLQfL8ySpMdQqFwjY6ZcCgB7ggwVGC3BatjPak9M
imported private key for: EOS59vJPCZ4Qv1fVCDeCckSb2xnZmNkbdppdk3QVRnsxzX5bydBuM
创建账户,并支付创建所用的 ram 费, 用这个新的 EOS59 开头的 key 创建(以后这就是我们的新账户了)这里新建的账户叫 xx34xx2xx5xx, 符合 [a-z],[1-5], 12位字符的命名规范。(最后的参数是 OwnerKey, 公钥地址,也可以增加一个参数叫 ActiveKey,请自行参阅相关资料)
# ./bin/cleos -u http://mainnet.eoswz.com system newaccount --stake-net '0.0 EOS' --stake-cpu '0.0 EOS' --buy-ram-kbytes 3 vfrwffsesdfk xx34xx2xx5xx EOS59vJPCZ4Qv1fVCDeCckSb2xnZmNkbdppdk3QVRnsxzX5bydBuM
随后会提示交易执行的情况和细节,偶尔也只会提示被发送到了网络,结果未知:
# eosio <= eosio::newaccount {"creator":"vfrwffsesdfk","name":"xx34xx2xx5xx ","owner":{"threshold":1,"keys":[{"key":"EOS59vJPCZ......
# eosio <= eosio::buyrambytes {"payer":"vfrwffsesdfk","receiver":"xx34xx2xx5xx ","bytes":3072}
# eosio.token <= eosio.token::transfer {"from":"vfrwffsesdfk","to":"eosio.ram","quantity":"0.0462 EOS","memo":"buy ram"}
# vfrwffsesdfk <= eosio.token::transfer {"from":"vfrwffsesdfk","to":"eosio.ram","quantity":"0.0462 EOS","memo":"buy ram"}
# eosio.ram <= eosio.token::transfer {"from":"vfrwffsesdfk","to":"eosio.ram","quantity":"0.0462 EOS","memo":"buy ram"}
# eosio.token <= eosio.token::transfer {"from":"vfrwffsesdfk","to":"eosio.ramfee","quantity":"0.0002 EOS","memo":"ram fee"}
# vfrwffsesdfk <= eosio.token::transfer {"from":"vfrwffsesdfk","to":"eosio.ramfee","quantity":"0.0002 EOS","memo":"ram fee"}
# eosio.ramfee <= eosio.token::transfer {"from":"vfrwffsesdfk","to":"eosio.ramfee","quantity":"0.0002 EOS","memo":"ram fee"}
可以看到购买 ram 的细节。最终支付了 0.0462 个 EOS
随后确认下我们新建的账户
# ./bin/cleos -u http://mainnet.eoswz.com get account xx34xx2xx5xx
permissions:
owner 1: 1 EOS59vJPCZ4Qv1fVCDeCckSb2xnZmNkbdppdk3QVRnsxzX5bydBuM
active 1: 1 EOS59vJPCZ4Qv1fVCDeCckSb2xnZmNkbdppdk3QVRnsxzX5bydBuM
memory:
quota: 2.979 Kb used: 2.926 Kb
net bandwidth:
delegated: 0.0000 EOS (total staked delegated to account from others)
used: 0 bytes
available: 0 bytes
limit: 0 bytes
cpu bandwidth:
delegated: 0.0000 EOS (total staked delegated to account from others)
used: 0 us
available: 0 us
limit: 0 us
开心,账户有了,就叫 xx34xx2xx5xx 。
以后想访问,就用之前记录的create key 时候的私钥。
或者更推荐的,在docker 容器里的 /root/eosio-wallet 里default.wallet 文件加上一开始 create wallet 的密码。
注:
本文涉及到的地址均非真实地址,只起演示作用。
本文生成的公钥私钥对相当于已公开,请勿使用。
本文调用相关命令的时候只在必要时候使用 -u 参数调用 API。