EOS Docker环境搭建
安装Docker
为了搭建开发环境,需要在本机上安装Docker容器。 如果您尚未安装Docker,请参考Docker文档安装: https://docs.docker.com/install/
eosio开发镜像
抓取eosio镜像
docker pull eosio/eos-dev
启动 eosio Docker
sudo docker run --rm --name eosio -d -p 8888:8888 -p 9876:9876 -v /tmp/work:/work -v /tmp/eosio/data:/mnt/dev/data -v /tmp/eosio/config:/mnt/dev/config eosio/eos-dev /bin/bash -c "nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::wallet_plugin --plugin eosio::producer_plugin --plugin eosio::history_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --plugin eosio::http_plugin -d /mnt/dev/data --config-dir /mnt/dev/config --http-server-address=0.0.0.0:8888 --access-control-allow-origin=* --contracts-console"
以上命令中通过nodeos在容器中启动了eosio链,并包括了多个plugin插件,同时将eosio主端口设为8888:
nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::wallet_plugin --plugin eosio::producer_plugin --plugin eosio::history_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --plugin eosio::http_plugin -d /mnt/dev/data --config-dir /mnt/dev/config --http-server-address=0.0.0.0:8888 --access-control-allow-origin=* --contracts-console
检查 eosio 是否启动
sudo docker logs --tail 10 eosio
正常的话,应该看到以下内容,说明已经开始出块:
1929001ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366974ce4e2a... #13929 @ 2018-05-23T16:32:09.000 signed by eosio [trxs: 0, lib: 13928, confirmed: 0]1929502ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366aea085023... #13930 @ 2018-05-23T16:32:09.500 signed by eosio [trxs: 0, lib: 13929, confirmed: 0]1930002ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366b7f074fdd... #13931 @ 2018-05-23T16:32:10.000 signed by eosio [trxs: 0, lib: 13930, confirmed: 0]1930501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366cd8222adb... #13932 @ 2018-05-23T16:32:10.500 signed by eosio [trxs: 0, lib: 13931, confirmed: 0]1931002ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366d5c1ec38d... #13933 @ 2018-05-23T16:32:11.000 signed by eosio [trxs: 0, lib: 13932, confirmed: 0]1931501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366e45c1f235... #13934 @ 2018-05-23T16:32:11.500 signed by eosio [trxs: 0, lib: 13933, confirmed: 0]1932001ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000366f98adb324... #13935 @ 2018-05-23T16:32:12.000 signed by eosio [trxs: 0, lib: 13934, confirmed: 0]1932501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 00003670a0f01daa... #13936 @ 2018-05-23T16:32:12.500 signed by eosio [trxs: 0, lib: 13935, confirmed: 0]1933001ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 00003671e8b36e1e... #13937 @ 2018-05-23T16:32:13.000 signed by eosio [trxs: 0, lib: 13936, confirmed: 0]1933501ms thread-0 producer_plugin.cpp:585 block_production_loo ] Produced block 0000367257fe1623... #13938 @ 2018-05-23T16:32:13.500 signed by eosio [trxs: 0, lib: 13937, confirmed: 0]
可以在浏览其中,输入以下地址,获取当前区块链状态:
http://localhost:8888/v1/chain/get_info
可以看到如下链和当前块的信息
{"server_version": "0961a560","chain_id": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f","head_block_num": 13780,"last_irreversible_block_num": 13779,"last_irreversible_block_id": "000035d36e1ca29ba378081c574ab3b5ab4214ba29754dd42b512690a9f03e80","head_block_id": "000035d4165c9225d7a04822d142fbcb15f997a6f2571dc7bae8437dea782205","head_block_time": "2018-05-23T16:30:54","head_block_producer": "eosio","virtual_block_cpu_limit": 100000000,"virtual_block_net_limit": 1048576000,"block_cpu_limit": 99900,"block_net_limit": 1048576}
Cleos 钱包管理工具
方便起见,可以输入如下命令,将一段很长的Docker命令设为一个别名
alias cleos='docker exec eosio /opt/eosio/bin/cleos --wallet-url http://localhost:8888'
以后,只需要启动该别名即可启动cleos,如下:
docker stop eosio
尝试输入命令cleos --help,正常的话,应该可以看到如下帮助信息。
Command Line Interface to EOSIO ClientUsage: /opt/eosio/bin/cleos [OPTIONS] SUBCOMMANDOptions:-h,--help Print this help message and exit-u,--url TEXT=http://localhost:8888/the http/https URL where nodeos is running--wallet-url TEXT=http://localhost:8900/the http/https URL where keosd is running-r,--header pass specific HTTP header; repeat this option to pass multiple headers-n,--no-verify don't verify peer certificate when using HTTPS-v,--verbose output verbose actions on errorSubcommands:version Retrieve version informationcreate Create various items, on and off the blockchainget Retrieve various items and information from the blockchainset Set or update blockchain statetransfer Transfer EOS from account to accountnet Interact with local p2p network connectionswallet Interact with local walletsign Sign a transactionpush Push arbitrary transactions to the blockchainmultisig Multisig contract commandssystem Send eosio.system contract action to the blockchain.
