当前位置: 首页 > article >正文

[项目实战]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 -l
    
    docker stop nodeos
    
    docker restart nodeos
    
  4. 验证安装结果

docker logs --tail 10 nodeos

http://localhost:8888/v1/chain/get_info

curl 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 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多节点部署

http://www.kler.cn/a/299478.html

相关文章:

  • WebAPI (一)DOM树、DOM对象,操作元素样式(style className,classList)。表单元素属性。自定义属性。间歇函数定时器
  • Qt (16)【Qt 事件 —— Qt 事件简介 | 如何重写相关的 Event 函数】
  • Jenkins生成html报告
  • Nature子刊|C4平台助力单细胞多组学分析,揭秘睾丸生殖细胞瘤的分子特征
  • Vue解說
  • 攻防世界 supersqli
  • EmguCV学习笔记 VB.Net 10.1 人脸检测 CascadeClassifier类
  • qt --如何获取本地联网的网口mac地址
  • 想要从OPPO手机恢复数据?免费OPPO照片视频恢复软件
  • 【机器学习】5 ——过拟合,正则化
  • The Prompt Report 2
  • 适配器模式 adapter
  • 30题破解网络安全面试:让Offer主动来找你
  • 自动驾驶相关的理论基础
  • 【重学 MySQL】十四、显示表结构
  • C++:C++的IO流
  • Linux 技巧汇编
  • Git环境搭建
  • 新手向教学,分分钟搭建个人定制化的 ChatgptGPT 聊天机器人
  • 【软考中级攻略站】-软件设计师(7)- 结构化开发方法(数据流图)