[项目实战]EOS单节点部署
文章总览:YuanDaiMa2048博客文章总览
EOS单节点部署
- EOS 的工作原理
- EOS 系统架构之网络架构
- EOS 系统架构之节点架构
- EOS 的开发工具和环境
- EOS 客户端安装
- Docker 安装
- 本地编译安装
- nodeos 命令行工具
- cleos 命令行工具
- keosd 钱包
- 编程开发工具
- 钱包基础操作
- 合约开发工具 CDT
- EOS多节点部署
- 官网链接:https://developers.eos.io/
EOS 的工作原理
EOS 系统架构之网络架构
- EOSIO Core Network:由超级节点出块的机器组成,互相由白名单,这些出块节点不对公网开放,有非常好的安全性。
- EOSIO Acess Network:包括超级节点所做的同步节点,以及一些社区构建的一些工具节点。
- EOSIO Consumers:更多的是DAPP,这些DAPP通过连接Acess网络层来读取主链的数据
EOS 系统架构之节点架构
- 主出块节点:参与EOS出块
- 出块节点备用网服务器:防止主出块节点失效
- 超级节点会提供一组API集群,通过负载均衡来提供EOS主链的数据给外部。一部分是把数据给P2P的连接节点,还有一种是开发DAPP,不需要完全同步所有数据,更多只用连接到EOS提供的API服务器。
EOS 的开发工具和环境
EOS 客户端安装
Docker 安装
-
安装Docker
- 进入Docker Bash
docker exec -it keosd bash
- 进入Docker Bash
-
获取EOS Docker镜像
# 1.获取镜像 docker pull eosio/eos-dev # 2.创建EOS网络 docker network create eosdev # 3.启动容器 docker run --name nodes -d -p 8888:8888 --netword eosdev \ -v /tmp/eosio/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" # 4. 启动 Keosd(钱包管理程序) docker run -d --name keosd --netword=eosdev \ -i eosio/eos-dev /bin/bash -c "keosd --http-server-address=0.0.0.0:9876" # 5. 添加 Cleos 别名 # 5.1 查看网络信息 docker network inspect eosdev # 5.2 设置别名 alias cleos='docker exec it nodeos /opt/eosio/bin.cleos --url http://127.0.0.1:8888 --wallet-url http://172.20.0.2:9876' # 5.3 测试是否成功 cleos version client
-
启动和停止dock
docker ps -l docker stop nodeos docker restart nodeos
-
验证安装结果
docker logs --tail 10 nodeos
http://localhost:8888/v1/chain/get_info
curl http://localhost:8888/v1/chain/get_info
- 更新升级
- 停止 Docker 镜像
- 重新获取 EOS Docker 镜像
本地编译安装
- 安装哪个版本的 EOS
- 官方版本发布:https://github.com/EOSIO/eos/releases
- 最新开发版本or主网版本
- https://developers.eos.io
- 编译并安装
# 1. 获取代码
git clone https://github.com/EOSIO/eos --recursive
# 2. 进入目录
cd eos
./eosio_build.sh
./eosio_install.sh
- 单节点测试
cd build/programs/nodeos
./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin
- 更新升级
cd eos
# 查看当前安装的版本
git tag
# 制定最新的版本
git checkout -b v1.4.0 v1.4.0
# 接下来重新build和install
./eosio_build.sh
./eosio_install.sh
nodeos 命令行工具
nodeos: node + eos = nodeos
运行EOSIO节点的程序
命令可以配置多个插件,通常用来生产块,做API端口或者用于本地开发
Plugin插件
-
说明书:https://developers.eos.io/welcome/latest/reference/index
-
producer_plugin: 用来出块
-
mongo_db_plugin: 将交易数据同步到一个数据库,提供快速链上查询记录
-
chain_api_plugin:
-
http_plugin
cleos 命令行工具
cleos: command line + eos = cleos
和区块链进行交互的命令行工具,可以用来管理钱包
keosd 钱包
keosd: key + eos = keosd
用来安全存储钱包的密钥的程序
编程开发工具
环境准备基础关系
- 启动 nodeos 和 keosd
- 配置 cleos 快捷方式
- 之后就可以利用 cleos 来进行本地的 eos 的相关操作
钱包基础操作
- 在最开始会有一个账户 eosio ,所有管理都要基于这个账户,这个账户有一个制定的初始私钥
# 1. 创建钱包(注意保存密码)
cleos wallet create --to-console
# 2. 打开钱包
cleos wallet open
cleos wallet list
# 3. 关闭钱包
cleos wallet unlock
# 4. 创建公私钥对(前提要关闭钱包)
cleos wallet create_key
# 5. 查看私钥(生产中要注意备份)
cleos wallet private_keys
# 6. 导入钱包(要输入私钥),导入eosio账户的密钥,为后续命令中使用到eosio账户权限做准备
cleos wallet import
# 7. 创建测试账号
cleos create account eosio [用户名1] [公钥]
cleos create account eosio [用户名1] [公钥]
合约开发工具 CDT
- CDT:Contract Development Toolkit
git clone --recursive https://github.com/EOSIO/eosio/eosio.cdt
cd eosio.cdt
./build.sh SYS
sudo ./install.sh
which eosio-cpp
EOS多节点部署
- 文章:[项目实战]EOS多节点部署