我前面的文章也提到过,EOS主网不是唯一的,EMLG, EOSGO, IMEOS, EOSForce(EOS原力)几大社区都在负责主网启动,这几个都是主网的有力竞争者。其中EMLG你可以认为是具备最大共识的社区,且EMLG已经声明它只支持EOS这一唯一主网,就是我们今天谈的这个主网,所以这个主网最接近那个真正的“主网”。好了,接下来就是实践了。
第一次注册账号
可以在这里注册:https://eosfavor.com/newaccount
用已有账号注册新账号
编译EOS源码
mkdir /home/eos-sources
cd /home/eos-sources
git clone https://github.com/EOS-Mainnet/eos.git --recursive
cd eos
git checkout mainnet-1.0.5 (最新的更新)
git submodule update --init --recursive
./eosio_build.sh
编译EOS源码是为了得到cleos, keosd, nodeos三个程序。
连接主网
连接主网有两种方式:
- 配置本地为非生产者主网节点
参考https://github.com/CryptoLions/EOS-MainNet这个即可完成,我这里只说关键的点。
1. 配置genesis及config文件
mkdir /opt/EOSmainNet
cd /opt/EOSmainNet
git clone https://github.com/CryptoLions/EOS-MainNet.git ./
下载EOSmainNet后, EOSmainNet就有了genesis.json文件和config.ini两个文件。
我们搭建的这个网络之所以是“主网”而不是自己的私有网就是因为这两个核心文件
-
genesis文件包含了创世块的内容
这个创世块和所有主网的节点的创世块是一样的,所以我们在搭建主网环境
- config.ini包含了主网服务器节点的信息(ip:port),比如
p2p-peer-address = peering.mainnet.eoscanada.com:9876
p2p-peer-address = peering1.mainnet.eosasia.one:80
p2p-peer-address = peering2.mainnet.eosasia.one:80
我们指定了主网其他服务器节点的ip,端口,所以我们能从其他节点同步主网区块信息
下载下来的config.ini这个配置是不能作为block producer的。其实目前主网,一般人也做不了block producer,你根本拉不到那么多选票,因此只需同步区块数据。
唯一需要修改的是p2p-server-address这一个地方
- p2p-server-address = !!YOUR_ENDPOINT_IP_ADDRESS!!:9876
+ p2p-server-address = 0.0.0.0:9876
2. 运行
./start.sh --delete-all-blocks --genesis-json genesis.json
必须指定genesis-json文件,启动后就会在stderr.txt文件里看到如下log,代表启动成功了,并在同步数据
- 直接连接远端nodeos节点
远端nodes节点的信息可以一个一个测试上面的config.ini文件里的p2p-peer-address,测试后我使用130.211.59.178这个节点即可连接到主网
$cleos -u http://106.10.42.238:8888 get account genesisblock
permissions:
owner 1: 1 EOS1111111111111111111111111111111114T1Anm
active 1: 1 EOS1111111111111111111111111111111114T1Anm
memory:
quota: unlimited used: 2.66 Kb
为了方便起见,可以创建cleos.sh脚本,将本地钱包服务配置为130.211.59.178:8888, 这样命令行能更简单,且和上一方法的使用方式一模一样。
#!/bin/bash
NODEHOST="130.211.59.178"
NODEPORT="8888"
NODEOSBINDIR="/home/eos-source/build/programs"
$NODEOSBINDIR/cleos/cleos -u http://$NODEHOST:$NODEPORT "$@"
注意上面的/home/eos-source需换成你实际的源码目录
注册账号
我们知道EOS的账号是字符组成的名字,而不是以太坊中的地址,因而这个名字就有好坏之分了,故很多朋友问我EOS账号怎么注册好尽快抢个好名字。其实,为了防止大家抢注名字,系统已经提出了bid的功能,即需要竞标注册。
$./cleos.sh system bidnameinfo alibaba
bidname: alibaba
highest bidder: gy2dmmzwg4ge
highest bid: 30000
last bid time: 2018-06-10T17:12:53.500
看到没,alibaba这个好名字已经竞标到3000了。(目前竞标的都是小于12个字符的名字)
竞标的命令如下:
cleos system bidname [OPTIONS] bidder newname bid
好了, 我们回到注册本身,注册命令如下:
$./cleos.sh system newaccount --stake-net "0.1000 EOS" --stake-cpu "0.1000 EOS" --buy-ram-kbytes 8 creator name ownerKey activeKey -p creator
上面彩色字体部分都是需要按照你们自己的信息修改的,所以在执行上面命令前,需要做好以下几件事
1)creator信息获取:
creator是一个已经存在的账号。如果你拥有的EOS代币曾经通过第三方钱包做过映射,这样系统会自动帮你生成一个12个字符的随机账号名,然后你就可以用这个账号创建其他账号了。如果你的EOS币是在交易所的,那么遗憾的告诉你,你没有账号。大家可以在这里根据EOS映射公钥查询账号名:
https://toolkit.genereos.io/tools
2)name:
就是你要创建的账号的名字,必须是12个字符,字符只能是".12345abcdefghijklmnopqrstuvwxyz"。
3)ownerKey,activeKey生成:
ownerKey和activeKey可以设置为一样,为一个具体的公钥,公钥对应的私钥是用来管理新账号的,所以要保管好私钥。
公私钥生成命令如下:
$ ./cleos.sh create key
Private key: xxxxxxxxxxxxxx7KsHLG6QJXe6ZqCzMC2
Public key: EOS8F8LdrWqfHDTscg7PvWxYTeBVYfgAkcU211pk2MEYFbmHTuBst
然后,上面的命令中的ownerKey, activeKey都填上面输出的Public key值,我这里是EOS8F8LdrWqfHDTscg7PvWxYTeBVYfgAkcU211pk2MEYFbmHTuBst,
4)-p creator:
creator权限声明,光声明这个没有用,必须要导入creator账号的私钥,具体命令如下
//创建钱包
$ ./cleos.sh wallet create -n exp
//导入私钥
$ ./cleos.sh wallet import creator_privateKey -n exp
上述信息及准备工作完成后,我真正执行如下命令即可完成了账号tokenitleaks的创建。
$./cleos.sh system newaccount --stake-net "0.1000 EOS" --stake-cpu "0.1000 EOS" --buy-ram-kbytes 8 itleakstoken tokenitleaks EOS8F8LdrWqfHDTscg7PvWxYTeBVYfgAkcU211pk2MEYFbmHTuBst EOS8F8LdrWqfHDTscg7PvWxYTeBVYfgAkcU211pk2MEYFbmHTuBst -p itleakstoken
|**************************************************
* 本文来自CSDN博主"爱踢门",喜欢请点关注
* 转载请标明出处:http://blog.csdn.net/itleaks
***************************************************|
如果你对EOS,ETH技术及开发感兴趣,请入QQ群讨论: 829789117
如需实时查看最新文章,请关注公众号"区块链斜杠青年",一起探索区块链未来