部署eosio.system智能合约前的EOS网络(本地私有网络),使用create account命令创建账号

cleos create account eosio itleaks EOS_PUBLIC_KEY

部署之后的EOS网络(主网或者Jungle等测试网络),使用system newaccount创建账号

我前面的文章也提到过,EOS主网不是唯一的,EMLG, EOSGO, IMEOS, EOSForce\(EOS原力\)几大社区都在负责主网启动,这几个都是主网的有力竞争者。其中EMLG你可以认为是具备最大共识的社区,且EMLG已经声明它只支持EOS这一唯一主网,就是我们今天谈的这个主网,所以这个主网最接近那个真正的“主网”。好了,接下来就是实践了。

编译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三个程序。

连接主网

连接主网有两种方式:

1.配置genesis及config文件

mkdir /opt/EOSmainNet

cd /opt/EOSmainNet

git clonehttps://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:

owner1:1 EOS1111111111111111111111111111111114T1Anm

active1:1 EOS1111111111111111111111111111111114T1Anm

memory:

quota:unlimitedused: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的功能,小于12位的名字即需要竞标注册。

$./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 creatornameownerKey activeKey-p creator

上面彩色字体部分都是需要按照你们自己的信息修改的,所以在执行上面命令前,需要做好以下几件事

1)creator信息获取:

creator是一个已经存在的账号。如果你拥有的EOS代币曾经通过第三方钱包做过映射,这样系统会自动帮你生成一个12个字符的随机账号名,然后你就可以用这个账号创建其他账号了。大家可以在这里根据EOS映射公钥查询账号名:

https://toolkit.genereos.io/tools

如果你的EOS币是在交易所的,那么遗憾的告诉你,你没有账号,只能找其他人帮你创建,目前蛮多平台支持账号创建的

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 importcreator_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

results matching ""

    No results matching ""