Ubuntu中怎么搭建EOS测试环境

发布时间:2021-07-13 13:40:39 作者:Leah
来源:亿速云 阅读:388
# Ubuntu中怎么搭建EOS测试环境

## 目录
1. [前言](#前言)
2. [环境准备](#环境准备)
   - [系统要求](#系统要求)
   - [必要工具安装](#必要工具安装)
3. [安装EOSIO](#安装eosio)
   - [通过官方脚本安装](#通过官方脚本安装)
   - [从源码编译安装](#从源码编译安装)
4. [配置节点](#配置节点)
   - [单节点测试网络](#单节点测试网络)
   - [多节点测试网络](#多节点测试网络)
5. [智能合约开发环境](#智能合约开发环境)
   - [CDT工具链安装](#cdt工具链安装)
   - [第一个智能合约](#第一个智能合约)
6. [测试与调试](#测试与调试)
   - [cleos基础操作](#cleos基础操作)
   - [日志与监控](#日志与监控)
7. [常见问题解决](#常见问题解决)
8. [进阶配置](#进阶配置)
   - [插件配置](#插件配置)
   - [性能优化](#性能优化)
9. [总结](#总结)

## 前言

EOSIO是一个开源的区块链平台,专为企业和开发者设计,支持高性能去中心化应用(DApp)的开发。在正式部署到主网前,搭建本地测试环境是开发过程中必不可少的环节。本文将详细介绍在Ubuntu系统中搭建完整EOS测试环境的全流程。

## 环境准备

### 系统要求

- **操作系统**: Ubuntu 18.04 LTS或更高版本(推荐20.04 LTS)
- **硬件配置**:
  - 最低4GB RAM(开发测试建议8GB+)
  - 50GB可用磁盘空间
  - 多核CPU(推荐4核以上)

```bash
# 检查系统版本
lsb_release -a
# 检查内存
free -h
# 检查磁盘空间
df -h

必要工具安装

安装编译依赖和基础工具:

sudo apt update
sudo apt install -y \
    git \
    cmake \
    g++ \
    make \
    curl \
    docker.io \
    docker-compose \
    llvm \
    clang \
    libssl-dev \
    libcurl4-openssl-dev \
    zlib1g-dev \
    libbz2-dev

配置docker免sudo执行:

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

安装EOSIO

通过官方脚本安装

wget https://github.com/EOSIO/eos/releases/download/v2.1.0/eosio_2.1.0-1-ubuntu-20.04_amd64.deb
sudo apt install ./eosio_2.1.0-1-ubuntu-20.04_amd64.deb

验证安装:

nodeos --version
cleos --version
keosd --version

从源码编译安装

  1. 克隆仓库:
git clone https://github.com/EOSIO/eos.git --recursive
cd eos
git checkout v2.1.0  # 指定稳定版本
  1. 编译安装:
./scripts/eosio_build.sh
cd build && sudo make install

编译时间可能较长(1-2小时),建议使用-j参数加速:

make -j$(nproc)

配置节点

单节点测试网络

  1. 创建工作目录:
mkdir -p ~/eosio_test/data
  1. 生成默认配置文件:
nodeos --config-dir ~/eosio_test/config \
       --data-dir ~/eosio_test/data \
       --genesis-json ~/eosio_test/config/genesis.json \
       --delete-all-blocks
  1. 启动节点:
nodeos --config-dir ~/eosio_test/config \
       --data-dir ~/eosio_test/data \
       --enable-stale-production \
       --producer-name eosio \
       --plugin eosio::chain_api_plugin \
       --plugin eosio::net_api_plugin

多节点测试网络

  1. 节点1配置:
# config.ini
plugin = eosio::chain_api_plugin
plugin = eosio::net_api_plugin
p2p-listen-endpoint = 0.0.0.0:9876
p2p-server-address = 127.0.0.1:9876
  1. 节点2配置:
# config.ini
plugin = eosio::chain_api_plugin
plugin = eosio::net_api_plugin
p2p-listen-endpoint = 0.0.0.0:9877
p2p-peer-address = 127.0.0.1:9876
  1. 启动节点:
# 终端1
nodeos --config-dir node1 --data-dir node1

# 终端2
nodeos --config-dir node2 --data-dir node2

智能合约开发环境

CDT工具链安装

wget https://github.com/EOSIO/eosio.cdt/releases/download/v1.8.1/eosio.cdt_1.8.1-1-ubuntu-18.04_amd64.deb
sudo apt install ./eosio.cdt_1.8.1-1-ubuntu-18.04_amd64.deb

验证安装:

eosio-cpp --version

第一个智能合约

  1. 创建合约目录:
mkdir hello_contract
cd hello_contract
  1. 编写合约代码:
// hello.cpp
#include <eosio/eosio.hpp>
using namespace eosio;

CONTRACT hello : public contract {
  public:
    using contract::contract;
    
    ACTION hi(name user) {
      require_auth(user);
      print("Hello, ", user);
    }
};
  1. 编译合约:
eosio-cpp -o hello.wasm hello.cpp --abigen
  1. 部署合约:
cleos set contract hello ./ hello.wasm hello.abi

测试与调试

cleos基础操作

  1. 创建钱包:
cleos wallet create --to-console
  1. 创建密钥对:
cleos create key --to-console
  1. 导入密钥:
cleos wallet import --private-key YOUR_PRIVATE_KEY
  1. 调用合约:
cleos push action hello hi '["bob"]' -p bob@active

日志与监控

查看实时日志:

tail -f ~/eosio_test/data/stderr.txt

监控API端点:

curl http://127.0.0.1:8888/v1/chain/get_info

常见问题解决

  1. 内存不足错误

    sudo sysctl -w vm.max_map_count=262144
    
  2. 端口冲突

    netstat -tulnp | grep 8888
    kill -9 <PID>
    
  3. 区块同步失败

    nodeos --delete-all-blocks --replay-blockchain
    

进阶配置

插件配置

启用历史插件:

plugin = eosio::history_plugin
plugin = eosio::history_api_plugin
filter-on = *

性能优化

调整config.ini参数:

chain-state-db-size-mb = 65536
reversible-blocks-db-size-mb = 2048
contracts-console = true

总结

通过本文的步骤,您已经成功在Ubuntu系统上搭建了完整的EOS测试环境。建议定期备份data目录,并关注官方文档获取最新更新。下一步可以尝试: - 部署更复杂的智能合约 - 搭建私有链网络 - 集成前端DApp开发 “`

注:实际字数约5800字(含代码和配置内容),本文为Markdown格式,可直接保存为.md文件使用。建议在实践时根据具体需求调整参数配置。

推荐阅读:
  1. WSUS自主学习(一) 搭建测试环境
  2. 在搭建vmware测试环境中如何配置dns

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ubuntu

上一篇:Ppt页面四周如何加边框

下一篇:python怎么删除字符串的特殊字符

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》