1,摘要

【本文目标】
通过本文学习,程序员可以在EOS本地环境完成主网心意的12位EOS账号注册。
不愿意折腾的其他人员可参考文档《第2课 不懂技术,如何抢注热门EOS账号?》完成账号注册。

【前置条件】
1)已完成了EOS编译,编译测试成功。未完成的可参考《第4课 如何在UBUNTU虚拟机上编译EOS完成环境搭建?》完成相关配置。

【技术收获】
1) 命令行操作实践完成主网的12位账号注册;

2. 实践操作

为了体验更佳,我们举个场景吧。戈壁创投的徐晨总找到辉哥,希望能帮他注册个他们公司同名的EOS账号(例如:gobipartners),便于后续做区块链投资使用。

2.1 创建新的密钥对,配置钱包

【小提醒】让别人创建EOS账号,密钥对的私钥最好由账号拥有者自行获取,不要让帮忙者自己创建,否则这个账号的安全性存在风险。但是反向考虑,如果能自己创建EOS密钥对,这样的朋友估计也知道怎么创建账号了,那可能就不存在请求帮忙的事情了。
辉哥此处假设跟徐总非常熟悉,也采用命令行方式产生密钥对给徐总用。

1)创建本地钱包
在本地创建一个default钱包,用于给徐总存放账号的,如果钱包已创建,则忽略本步。

cleos wallet create

输出结果:

duncanwang@duncanwang:~$ cleos wallet create
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5K6PTcK1nfr6RT9KfcMtzZDcrM7ZqvtBnAnPyYcigH5HR15roDL"

2)创建新账号所需的密钥对

cleos create key

输出结果:(私钥的部分关键字已隐藏)

duncanwang@duncanwang:~$ cleos create key
Private key: 5JkT6Dd9G1**dfajJ8SQpgYzScDBaV***ZFkMG8siw***z9Mf8v
Public key: EOS8gaYL4uHyAiZjviwNJ8CdY31xikYtQfexyUfkNUnDqhNpnYXQR

3) 新的私钥导入default钱包

cleos wallet import <your_private_key>

输出结果:

duncanwang@duncanwang:~$ cleos wallet import 5JkT6Dd9G1**dfajJ8SQpgYzScDBaV***ZFkMG8siw***z9Mf8v
imported private key for: EOS8gaYL4uHyAiZjviwNJ8CdY31xikYtQfexyUfkNUnDqhNpnYXQR

2.2 查找主网NODEOS地址

主网的p2p节点地址可以到 EOS Seed List网址查找。找到一个合适的节点后,可以用命令行查看信息。以佳能节点为例,命令如下:

cleos -u https://node1.eoscannon.io get info

输出结果如下:

duncanwang@duncanwang:~$ cleos -u https://node1.eoscannon.io get info
{"server_version": "6ee30205","chain_id": "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906","head_block_num": 5448946,"last_irreversible_block_num": 5448615,"last_irreversible_block_id": "005323a7c602e9a643226f6e00b3709858c9f42f05c7381b457e0f38c2ef2d74","head_block_id": "005324f2e20f241d036b46560812fcc1dc6e5dfe6644351a6c3ab699f27b0e3f","head_block_time": "2018-07-12T06:10:33.000","head_block_producer": "argentinaeos","virtual_block_cpu_limit": 200000000,"virtual_block_net_limit": 1048576000,"block_cpu_limit": 192923,"block_net_limit": 1046944
}

说明下,“chain_id”这个字段,它是主链ID,可以到 eos.host 查看,目前的chain_id是
aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906,一致的。

【说明】用命令行的方式也可以找到所有节点的列表。命令如下:

cleos -u https://node1.eoscannon.io system listproducers -l 1000

2.3 注册EOS新账号

1) 确认创建父账号的资源是否充足
辉哥为徐晨创建帐号,意味着辉哥把自己的一部分计算资源分配给了徐晨,所以需要消耗EOS。
注意:所有账号名必须为12个字符,包括a-z以及1-5,不含0。
小于12位的EOS账号是需要拍卖的,参考文档《第3课 惊天秘诀,2位账号如JD只要0.5个EOS就可注册?!》。

cleos -u https://node1.eoscannon.io get account wangdenghui1

输出结果:

duncanwang@duncanwang:~$ cleos -u https://node1.eoscannon.io get account wangdenghui1
permissions: owner     1:    1 EOS7Rq86JcZLgPXwZKRGPYUnLayBy7NcBV7FBE7gSNCW3HmGApK9Vactive     1:    1 EOS7Rq86JcZLgPXwZKRGPYUnLayBy7NcBV7FBE7gSNCW3HmGApK9V
memory: quota:     24.96 KiB    used:     4.021 KiB  net bandwidth: delegated:       0.0501 EOS           (total staked delegated to account from others)used:               519 bytesavailable:        26.13 KiB  limit:            26.64 KiB  cpu bandwidth:delegated:       0.3001 EOS           (total staked delegated to account from others)used:             10.15 ms   available:        20.96 ms   limit:            31.11 ms   producers:     <not voted>

按照经验,创建一个EOS新账号需要消耗的资源如下,目前辉哥账号的资源还满足创建要求。
NET Stake (in EOS): 0.05
CPU Stake (in EOS): 0.1
RAM (in kbytes):8

** 2) 查询账号是否存在**

cleos -u https://node1.eoscannon.io get account gobipartners

输出结果(账号不存在):

duncanwang@duncanwang:~$ cleos -u https://node1.eoscannon.io get account gobipartners
892747ms thread-0   main.cpp:2712                 main                 ] Failed with error: unspecified (0)

3)导入wangdenghui1的私钥到duncanwang钱包
部分私钥内容已隐藏。

cleos wallet import <私钥> -n duncanwang

duncanwang@duncanwang:~$ cleos wallet import 5KH***Mev**JtQW***iXLfVvUFx***D8iL7H***8wAa***YZR54 -n duncanwang
imported private key for: EOS7Rq86JcZLgPXwZKRGPYUnLayBy7NcBV7FBE7gSNCW3HmGApK9V

4)注册EOS新账户名
调用eosio.system合约的newaccount Action,命令如下:

cleos -u https://node1.eoscannon.io system newaccount -x 1000 --stake-net ‘0.0010 EOS’ --stake-cpu ‘0.0010 EOS’ --buy-ram-kbytes 8 <映射分配的account_name> <要申请的新账号名> <EOS公钥>

【参数的含义】
**-x 1000:**1000s内最长反馈时间;
**–stake-net:**使用带宽抵押的EOS;
**–stake-cpu:**使用CPU抵押的EOS;
**–buy-ram-kbytes:**购买的内存(最低8KB);
**<映射分配的account_name>:**即第3步记下来的12个字符的账户名;
**<要申请的新账号名>:**同样是12个字符,只能使用小写字母a-z,和数字1-5;
<EOS公钥>
【经验】
NET Stake (in EOS): 0.05
CPU Stake (in EOS): 0.1
RAM (in kbytes):8

cleos -u https://node1.eoscannon.io system newaccount -x 1000 --stake-net “0.1 EOS” --stake-cpu “0.1 EOS” --buy-ram-kbytes 8 wangdenghui1 gobipartners EOS8gaYL4uHyAiZjviwNJ8CdY31xikYtQfexyUfkNUnDqhNpnYXQR EOS8gaYL4uHyAiZjviwNJ8CdY31xikYtQfexyUfkNUnDqhNpnYXQR

输出结果(创建成功):

duncanwang@duncanwang:~$ cleos -u https://node1.eoscannon.io system newaccount -x 1000 --stake-net "0.1 EOS" --stake-cpu "0.1 EOS" --buy-ram-kbytes 8 wangdenghui1 gobipartners EOS8gaYL4uHyAiZjviwNJ8CdY31xikYtQfexyUfkNUnDqhNpnYXQR EOS8gaYL4uHyAiZjviwNJ8CdY31xikYtQfexyUfkNUnDqhNpnYXQR
1229333ms thread-0   main.cpp:429                  create_action        ] result: {"binargs":"109c6e6caac4a6e180af9af99aea0e6500200000"} arg: {"code":"eosio","action":"buyrambytes","args":{"payer":"wangdenghui1","receiver":"gobipartners","bytes":8192}}
1229958ms thread-0   main.cpp:429                  create_action        ] result: {"binargs":"109c6e6caac4a6e180af9af99aea0e65e80300000000000004454f5300000000e80300000000000004454f530000000000"} arg: {"code":"eosio","action":"delegatebw","args":{"from":"wangdenghui1","receiver":"gobipartners","stake_net_quantity":"0.1000 EOS","stake_cpu_quantity":"0.1000 EOS","transfer":false}}
executed transaction: d0c3543b6db8787a151a748ab73d0dec9210442cf7022a442c42fa9fe2a27f3c  336 bytes  5477 us
#         eosio <= eosio::newaccount            {"creator":"wangdenghui1","name":"gobipartners","owner":{"threshold":1,"keys":[{"key":"EOS8gaYL4uHyA...
#         eosio <= eosio::buyrambytes           {"payer":"wangdenghui1","receiver":"gobipartners","bytes":8192}
#   eosio.token <= eosio.token::transfer        {"from":"wangdenghui1","to":"eosio.ram","quantity":"2.9714 EOS","memo":"buy ram"}
#  wangdenghui1 <= eosio.token::transfer        {"from":"wangdenghui1","to":"eosio.ram","quantity":"2.9714 EOS","memo":"buy ram"}
#     eosio.ram <= eosio.token::transfer        {"from":"wangdenghui1","to":"eosio.ram","quantity":"2.9714 EOS","memo":"buy ram"}
#   eosio.token <= eosio.token::transfer        {"from":"wangdenghui1","to":"eosio.ramfee","quantity":"0.0150 EOS","memo":"ram fee"}
#  wangdenghui1 <= eosio.token::transfer        {"from":"wangdenghui1","to":"eosio.ramfee","quantity":"0.0150 EOS","memo":"ram fee"}
#  eosio.ramfee <= eosio.token::transfer        {"from":"wangdenghui1","to":"eosio.ramfee","quantity":"0.0150 EOS","memo":"ram fee"}
#         eosio <= eosio::delegatebw            {"from":"wangdenghui1","receiver":"gobipartners","stake_net_quantity":"0.1000 EOS","stake_cpu_quanti...
#   eosio.token <= eosio.token::transfer        {"from":"wangdenghui1","to":"eosio.stake","quantity":"0.2000 EOS","memo":"stake bandwidth"}
#  wangdenghui1 <= eosio.token::transfer        {"from":"wangdenghui1","to":"eosio.stake","quantity":"0.2000 EOS","memo":"stake bandwidth"}
#   eosio.stake <= eosio.token::transfer        {"from":"wangdenghui1","to":"eosio.stake","quantity":"0.2000 EOS","memo":"stake bandwidth"}
warning: transaction executed locally, but may not be confirmed by the network yet

5)查询新创建的账号是否存在
1] 命令行查询方式

cleos -u https://node1.eoscannon.io get account gobipartners

输出结果,显示该账号存在:

duncanwang@duncanwang:~$ cleos -u https://node1.eoscannon.io get account gobipartners
permissions: owner     1:    1 EOS8gaYL4uHyAiZjviwNJ8CdY31xikYtQfexyUfkNUnDqhNpnYXQRactive     1:    1 EOS8gaYL4uHyAiZjviwNJ8CdY31xikYtQfexyUfkNUnDqhNpnYXQR
memory: quota:     7.959 KiB    used:     2.926 KiB  net bandwidth: delegated:       0.1000 EOS           (total staked delegated to account from others)used:                 0 bytesavailable:        53.17 KiB  limit:            53.17 KiB  cpu bandwidth:delegated:       0.1000 EOS           (total staked delegated to account from others)used:                 0 us   available:        10.37 ms   limit:            10.37 ms

2] 网页查询方式
在https://eosflare.io输入信息,查询该账号确认已存在。

6)创建账号的命令参考
创建系统账号的命令的帮助说明如下,供参考。

duncanwang@duncanwang:~$ cleos system newaccount -h
Create an account, buy ram, stake for bandwidth for the account
Usage: cleos system newaccount [OPTIONS] creator name OwnerKey [ActiveKey]Positionals:creator TEXT                The name of the account creating the new account (required)name TEXT                   The name of the new account (required)OwnerKey TEXT               The owner public key for the new account (required)ActiveKey TEXT              The active public key for the new accountOptions:-h,--help                   Print this help message and exit--stake-net TEXT            The amount of EOS delegated for net bandwidth (required)--stake-cpu TEXT            The amount of EOS delegated for CPU bandwidth (required)--buy-ram-kbytes UINT       The amount of RAM bytes to purchase for the new account in kibibytes (KiB), default is 8 KiB--buy-ram TEXT              The amount of RAM bytes to purchase for the new account in EOS--transfer                  Transfer voting power and right to unstake EOS to receiver-x,--expiration             set the time in seconds before a transaction expires, defaults to 30s-f,--force-unique           force the transaction to be unique. this will consume extra bandwidth and remove any protections against accidently issuing the same transaction multiple times-s,--skip-sign              Specify if unlocked wallet keys should be used to sign transaction-j,--json                   print result as json-d,--dont-broadcast         don't broadcast transaction to the network (just print to stdout)-r,--ref-block TEXT         set the reference block num or block id used for TAPOS (Transaction as Proof-of-Stake)-p,--permission TEXT ...    An account and permission level to authorize, as in 'account@permission'--max-cpu-usage-ms UINT     set an upper limit on the milliseconds of cpu usage budget, for the execution of the transaction (defaults to 0 which means no limit)--max-net-usage UINT        set an upper limit on the net usage budget, in bytes, for the transaction (defaults to 0 which means no limit)

4,参考

1) 【系列】EOS智能合约开发41 - 如何连接到EOS主网 & 注册EOS账号?
2) 创建EOS主网账户[古千峰]

本故事纯属虚构,辉哥还没有跟徐晨总建立联系。但是戈壁创投的EOS帐号已注册好了,如有需要可转让给徐总。

第8课 如何使用开发环境命令行注册EOS靓号?相关推荐

  1. 区块链100讲:如何使用开发环境命令行注册EOS靓号及变更EOS账号的active key和owner key?

    1 摘要 [本文目标] 通过本文学习,程序员可以在EOS本地环境完成主网心意的12位EOS账号注册,并且可以通过EOS本地环境完成EOS注册账号的active key和owner key的变更. 在E ...

  2. 第2课 - 搭建Lua开发环境

    第2课 - 搭建Lua开发环境 1. Lua 的优点 (1)Lua 使用标准的 ANSI C 进行开发,可以无缝集成到宿主程序,且几乎支持所有平台. (2)Lua 是开源且免费的软件,以源码的方式直接 ...

  3. python 论坛搭建_Python第一课 - python的开发环境的搭建

    Python第一课 - python的开发环境的搭建 一.下载安装Python的安装包 打开官网 https://www.python.org/downloads/windows/ 下载中心 [标记为 ...

  4. kotlin编译失败_Kotlin使用GraalVM开发原生命令行应用

    背景 之前用kotlin开发过一款根据建表DDL语句生成plantuml ER图的应用.被问如何使用,答曰"给你一个jar包,然后执行java -jar ddl2plantuml.jar . ...

  5. 操作系统课设之简单 shell 命令行解释器的设计与实现

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  6. 使用Dart/Flutter语言开发的命令行文字RPG类型小游戏

    使用Dart/Flutter语言开发的命令行文字RPG类型小游戏 项目源码:https://gitee.com/FantasyWind/word_game 介绍 项目背景 本项目为使用Dart/Flu ...

  7. MacOS开发-用命令行压缩文件

    MacOS开发-用命令行压缩文件 在Mac OS X中,你可以通过右键上下文菜单中的"压缩xxx"选项制作压缩文件,但是,该方式创建的压缩文件和通过命令行zip创建的压缩文件不同. ...

  8. vue开发环境修改本地启动的端口号和开启https

    categories: [前端,vue] thumbnail: /images/fe/leetcode.jpg toc: true vue开发环境修改本地启动的端口号 当我们使用脚手架搭建项目时,re ...

  9. 服务计算 - 3 Golang开发Linux命令行实用程序 - selpg

    文章目录 Golang开发Linux命令行实用程序 - selpg 1. 介绍 2. 设计与实现 2.1 设计思路 2.2 功能模块划分与实现 3. 参考文献 Golang开发Linux命令行实用程序 ...

最新文章

  1. SQL语句中拆分字段
  2. php excel 组件,Yii Framework框架使用PHPExcel组件的方法示例
  3. 动力专业节假日保障预案
  4. 修改服务器404页面,服务器上的404页面做了有什么好处?
  5. PHP中call user func()和call_user_func_array()调用自定义函数小结
  6. 考虑玩家移动速度的射击
  7. 百度CDN与360CDN简单评测,果断选择百度CDN
  8. 大datatable 内存一直涨_听说你的爬虫一直在整站里循环绕圈圈爬取重复的数据?...
  9. django multidb --- router
  10. 编译LTIB遇到的问题解决办法
  11. Fiddler使用教程
  12. ISO27001LA国际信息安全管理主任审核员(IRCA)认证
  13. dw添加下拉菜单_Dreamweaver怎么创建下拉菜单
  14. ISILON OneFS CLI界面网络配置
  15. MongoDB 数据库基本操作
  16. ceph16 rbd加密
  17. NEO智能合约开发(二)再续不可能的任务
  18. ftp 21端口被占用解决办法
  19. 二体问题之6:轨道根数及其转化
  20. tiktok 手机验证_TikTok经过验证的硅谷正在创新

热门文章

  1. BOOST库使用方法(有手就行)
  2. copy文件的Linux程序代码,Linux下C语言实现CopyFile
  3. mysql课设体会500字_MYSQL数据库课程设计 精品
  4. systemctl enable 配置开机自启动
  5. msq(2)jdbc
  6. 【Distributed】分布式Ceph存储系统之相关应用
  7. 站长怎样利用好腾讯产品做网站推广
  8. 年薪50万-200万招人!
  9. 也说白鹿原--白家发家史
  10. MATLAB 笛卡尔坐标系制图