欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > [项目实战]EOS单节点部署

[项目实战]EOS单节点部署

2024/10/24 7:31:44 来源:https://blog.csdn.net/2301_79288416/article/details/141937652  浏览:    关键词:[项目实战]EOS单节点部署

文章总览:YuanDaiMa2048博客文章总览


EOS单节点部署

  • EOS 的工作原理
    • EOS 系统架构之网络架构
    • EOS 系统架构之节点架构
  • EOS 的开发工具和环境
    • EOS 客户端安装
      • Docker 安装
      • 本地编译安装
    • nodeos 命令行工具
    • cleos 命令行工具
    • keosd 钱包
    • 编程开发工具
    • 钱包基础操作
    • 合约开发工具 CDT
  • EOS多节点部署

  • 官网链接:https://developers.eos.io/

EOS 的工作原理

EOS 系统架构之网络架构

  1. EOSIO Core Network:由超级节点出块的机器组成,互相由白名单,这些出块节点不对公网开放,有非常好的安全性。
  2. EOSIO Acess Network:包括超级节点所做的同步节点,以及一些社区构建的一些工具节点。
  3. EOSIO Consumers:更多的是DAPP,这些DAPP通过连接Acess网络层来读取主链的数据

EOS 系统架构之节点架构

  1. 主出块节点:参与EOS出块
  2. 出块节点备用网服务器:防止主出块节点失效
  3. 超级节点会提供一组API集群,通过负载均衡来提供EOS主链的数据给外部。一部分是把数据给P2P的连接节点,还有一种是开发DAPP,不需要完全同步所有数据,更多只用连接到EOS提供的API服务器。

EOS 的开发工具和环境

EOS 客户端安装

Docker 安装

  1. 安装Docker

    • 进入Docker Bash
      docker exec -it keosd bash
      
  2. 获取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
    
  3. 启动和停止dock

    docker ps -ldocker stop nodeosdocker restart nodeos
    
  4. 验证安装结果

docker logs --tail 10 nodeoshttp://localhost:8888/v1/chain/get_infocurl http://localhost:8888/v1/chain/get_info
  1. 更新升级
    1. 停止 Docker 镜像
    2. 重新获取 EOS Docker 镜像

本地编译安装

  1. 安装哪个版本的 EOS
    • 官方版本发布:https://github.com/EOSIO/eos/releases
    • 最新开发版本or主网版本
      • https://developers.eos.io
  2. 编译并安装
# 1. 获取代码
git clone https://github.com/EOSIO/eos --recursive# 2. 进入目录
cd eos./eosio_build.sh./eosio_install.sh
  1. 单节点测试
cd build/programs/nodeos./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin
  1. 更新升级
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
用来安全存储钱包的密钥的程序

编程开发工具

环境准备基础关系

  1. 启动 nodeos 和 keosd
  2. 配置 cleos 快捷方式
    • 之后就可以利用 cleos 来进行本地的 eos 的相关操作

钱包基础操作

  • 在最开始会有一个账户 eosio ,所有管理都要基于这个账户,这个账户有一个制定的初始私钥
# 1. 创建钱包(注意保存密码)
cleos wallet create --to-console# 2. 打开钱包 
cleos wallet opencleos 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 SYSsudo ./install.shwhich eosio-cpp

EOS多节点部署

  • 文章:[项目实战]EOS多节点部署

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com