本指南适用于开发环境,如果您打算在生产环境中运行EOSIO,请考虑构建EOSIO
先决条件
Docker - 容器管理服务。Docker旨在通过使开发人员能够在便携式容器中创建完全配置的系统环境来简化应用程序部署。系统环境由在操作系统配置中运行的目标应用程序组成,该配置提供应用程序所需的所有运行时支持。开发人员在容器内创建所需的系统配置,然后打包容器以进行分发。第1步:提取镜像
EOSIO Dev Docker映像是为本地开发而设计的EOSIO软件的编译版本。
从存储库中提取镜像:
docker pull eosio/eos-dev并启动EOSIO节点:
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::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 --http-validate-host=false"检查它是否正常工作:
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]恭喜!您在Docker容器中运行了一个非常简单的单节点区块链!
还要在浏览器中转到此地址以检查RPC接口是否正常工作: 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 }第2步:Alias Cleos
cleos 是一个命令行界面,用于与区块链交互并管理钱包。
为方便起见,我们将为在容器内运行的cleos创建一个bash别名。在终端中,运行:
alias cleos='docker exec -it eosio /opt/eosio/bin/cleos -u http://localhost:8888'第3步:确认安装成功
现在尝试cleos --help在您的终端中运行。您应该看到以下输出:
Command Line Interface to EOSIO Client Usage: /opt/eosio/bin/cleos [OPTIONS] SUBCOMMAND Options: -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 error Subcommands: version Retrieve version information create Create various items, on and off the blockchain get Retrieve various items and information from the blockchain set Set or update blockchain state transfer Transfer EOS from account to account net Interact with local p2p network connections wallet Interact with local wallet sign Sign a transaction push Push arbitrary transactions to the blockchain multisig Multisig contract commands system Send eosio.system contract action to the blockchain.真棒!我们正在运转。
停止EOSIO容器
当您需要停止时,请使用:
bash docker stop eosio