测试网络 EOS 测试链加入流程 (代码版本与主网同步)

caokun_8341 · 2018年06月29日 · 最后由 lyh12345 回复于 2018年06月30日 · 1015 次阅读

准备:

一、生成一个密钥对,私钥一定保存好,不要泄露,公钥和你的账户名称发到这个邮箱:caokun_8341@sina.com
1、使用cleos create key命令生成
2、到这个网址生成 https://eostea.github.io/eos-generate-key/
3、本人收到邮件后第一时间,创建账户,并给账户转入:100000 EOS token,供测试使用。

二、加入测试网的两种方式:
1、不用部署同步节点,也不用同步数据,但需要编译cleos命令客户端,直接使用:cleos -u http://101.124.2.210:8888 get info (举例) 操作自己的账户,进行创建下一级账户,转账,注册矿工,抵押,投票,撤销等操作,也可以部署和测试智能合约。另外还有一个测试服务器:101.124.3.61:8888,两个服务器上,分别有10个和11个矿工在出块中,可以 cleos -u http://101.124.2.210:8888 system listproducers 或 :cleos -u http://101.124.3.61:8888 system listproducers 查看矿工信息。

2、编译EOS主网最新版本代码,编译过程参考:https://blog.csdn.net/caokun_8341/article/details/80713851
注意编译的代码要是最新版本:mainnet-1.0.6
必须使用下面的genesis.json文件启动ndoes:nodeos --genesis-json 后面跟genesis.json的路径和文件名称

{
  "initial_timestamp": "2018-06-08T08:08:08.888",
  "initial_key": "EOS6An9TxNk3mqKnRX9y92UJbWXEPSUxLD2PEtD9eTZfuBeHxBDpD",
  "initial_configuration": {
    "max_block_net_usage": 1048576,
    "target_block_net_usage_pct": 1000,
    "max_transaction_net_usage": 524288,
    "base_per_transaction_net_usage": 12,
    "net_usage_leeway": 500,
    "context_free_discount_net_usage_num": 20,
    "context_free_discount_net_usage_den": 100,
    "max_block_cpu_usage": 200000,
    "target_block_cpu_usage_pct": 1000,
    "max_transaction_cpu_usage": 150000,
    "min_transaction_cpu_usage": 100,
    "max_transaction_lifetime": 3600,
    "deferred_trx_expiration_window": 600,
    "max_transaction_delay": 3888000,
    "max_inline_action_size": 4096,
    "max_inline_action_depth": 4,
    "max_authority_depth": 6
  }
}

确保 chain_id = 00d48a14e7f551db85db479381694c117d33690ae0c66af48b776971c9d565aa
启动后可通过 cleos get info 命令查看

另外config.ini文件参考:可连接 101.124.13.183同步数据,在进行cleos 命令操作,创建账户,转账,抵押,注册矿工,投票,撤销等等。
如果想做出块节点,可以修改config.ini文件中的密钥对,改成你的producer 账户,如果只做同步节点,可以直接使用这个config.ini文件或密钥那一块删掉也可以。


block-log-dir = blocks
readonly = 0
send-whole-blocks = true
enable-stale-production = true
http-server-address = 127.0.0.1:8888
p2p-listen-endpoint = 0.0.0.0:9876
p2p-server-address = localhost:9876
p2p-peer-address = 101.124.2.210:9876
p2p-peer-address = 101.124.3.61:9876
allowed-connection = any
required-participation = 33

# key for producer1 
producer-name = producer1
signature-provider = EOS6a5pr4DS4CksCQSHqTdKMPbAdCyrE4b7QExDwTuCxH1vbkYMqG=KEY:5JZ5Wwb8uQbi3A7DmMsD2zevcKCYw1pxmitij1x4xCjU8gv7ucj

# plugins
#plugin = eosio::producer_plugin
plugin = eosio::chain_api_plugin
#plugin = eosio::account_history_api_plugin
plugin = eosio::wallet_plugin
plugin = eosio::wallet_api_plugin
plugin = eosio::http_plugin
plugin = eosio::net_plugin
plugin = eosio::net_api_plugin

三、常用操作说明
以下的操作示例如果远程执行:在cleos 后加上 -u http://101.124.2.210:8888 即可

1、创建钱包
创建默认钱包:filename = default.wallet
cleos wallet create
创建名称为xxxx的钱包

cleos wallet create -n xxxx

2、解锁钱包

cleos wallet unlock
cleos wallet unlock -n xxxx --passward waletpin_text

3、创建账户
使用 kevinkuntest账户创建kevinkuntes1账户,前提,kevinkuntest私钥导入钱包,有足够的EOS

cleos system newaccount --transfer --stake-net "100.0000 EOS" --stake-cpu "100.0000 EOS" --buy-ram "100.0000 EOS" kevinkuntest kevinkuntes1 EOS797NSewgrqDfxDKuh3aYa3G3p5BTeN2T5FdveTNMuj7bpsBVGN

4、导入秘钥对到钱包

cleos wallet import xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(privatekey-text)
cleos wallet import -n mywalletname xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(privatekey-text)

5、转账EOS token

cleos transfer kevinkuntest kevinkuntes1 "100.0000 EOS"

6、账户查询

cleos get account kevinkuntest
cleos get account kevinkuntes1

7、查询账户余额

cleos get currency balance eosio.token kevinkuntest
cleos get currency balance eosio.token kevinkuntes1

8、创建自己的token : 需要eosio合约账户的私钥或授权

cleos push action eosio.token create '["kevinkuntest", "1000000000.0000 KUN"]' -p eosio.token

9、发行代币:

cleos push action eosio.token issue '["kevinkuntest", "1000000000.0000 KUN", "memo"]' -p kevinkuntest

10、查询所有代币的余额:

cleos get currency balance eosio.token kevinkuntest

11、为创建一个权限transferpower

cleos set account permission kevinkuntest transferpower '{"threshold": 1, "keys":[{"key":"EOS5wquAffiaMMQsXyibBGXpB7WWhZYFtwmSUGZcfkFE49pjsB28C","weight":1}],"accounts":[],"waits":[]}' active

12、将权限transferpower 和 转账动作transfer绑定

cleos set action permission kevinkuntest eosio.token transfer transferpower

13、可以使用transferpower权限转账

cleos push action eosio.token transfer '["kevinkuntest","kevinkuntes1","100.0000 KUN","transfer"]' -p kevinkuntest@transferpower

14、注册成为矿工

cleos system regproducer p1.cao EOS8jBSXoX4B4eEkdTE2R1srnAxXWsVp3Qr4ADHXwhZP8hJcg4HeT

15、查看所有producers列表

cleos system listproducers

16、抵押token

cleos system delegatebw kevinkuntest kevinkuntest '10000 EOS' '10000 EOS'

17、投票

cleos system voteproducer prods kevinkuntest cao

18、取消矿工注册

cleos system unregprod p1.cao -p p1.cao

19、查看抵押

cleos system listbw kevinkuntest

19、解除抵押

cleos system undelegatebw kevinkuntest kevinkuntest "10000 EOS" "10000 EOS" -p kevinkuntest

20、买内存 (100EOS)

cleos system buyram caokunkevin1 caokunkevin1 "100.0000 EOS" -p caokunkevin1

21、卖内存(1M)

cleos system sellram caokunkevin1 1048576

22、矿工索取奖励

cleos system claimrewards bp.a

四、经过实验得到的一些结论:
1、如果矿工注销以后,以前出块的奖励将会索取(claimrewards) 失败。

2、如果矿工的身份还在,没有注销,即使当前不在出块了,索取奖励(claimrewards)还是可以成功的。

3、买内存以EOS计,卖内存以字节计,1024*1024 = 1M内存

4、抵押cpu 和 net资源有两种方式,一种是自己给自己(同一账户)抵押,记在staked下,一种是别的账户给本账户抵押,记在delegated下。

一种是在创建账户的时候抵押,一种是使用delegatebw 抵押。

5、另外发现了mainnet-1.0.7好像有BUG,更新nodeos程序后,发现eosio账户不能往外转账了,cleos get account eosio,看到的eosio的内存和cpu,net居然都用完了,抵押为0,然后用我自己的账户cao为eosio 买了内存,并抵押了cpu和net,依然不能转账,报错如下:
cleos transfer eosio cao "100000.0000 EOS"
Error 3060001: Permission Query Exception
Most likely, the given account/ permission doesn't exist in the blockchain.

共收到 2 条回复

私钥,导入不了,提示错误!

映射的时候可以用,现在不能用了?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册