IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> ETH-服务节点部署(全网最新) -> 正文阅读

[系统运维]ETH-服务节点部署(全网最新)

ETH节点-服务器部署

1.服务器配置及基础软件下载

1.1 服务器配置

强烈建议使用AWS(亚马逊云的EC2服务器)

1.1.1 最低配置

CPU:4核
内存:8GB
磁盘:
	系统盘:100GB
	数据盘:2048GB
网络:5M+
AWS服务器名称:c5.xlarge

1.1.2 中等配置

CPU:8核
内存:16GB
磁盘:
	系统盘:100GB
	数据盘:2048GB
网络:8M+
AWS服务器名称:c5.2xlarge

1.1.3 高级配置

CPU:16核
内存:32GB
磁盘:
	系统盘:100GB
	数据盘:2048GB
网络:25M+
AWS服务器名称:c5.4xlarge

1.2 基础软件下载

#CentOS下载基础软件
yum update -y && yum -y install epel-release && yum install -y vim wget tree lrasz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools istop httpd-tools unzip git supervisor htop lrzsz
#Ubuntu下载基础软件
apt update && apt upgrade && apt -y install vim wget tree lrasz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools istop httpd-tools unzip git htop lrzsz

1.3 数据盘格式化并且挂载

#ETH数据盘格式化并且挂载
#格式化硬盘
mkfs.xfs -f /dev/nvme1n1	#2T硬盘进行格式化
#查看是否存在UUID
lsblk -a
lsblk -f 
#挂载磁盘到数据目录
mount /dev/nvme1n1 /eth
df -h

2.安装相关工具软件

2.1 配置安装Go语言运行环境

###下载安装Golang
#下载
wget https://dl.google.com/go/go1.18.1.linux-amd64.tar.gz
sudo tar -zxvf go1.18.1.linux-amd64.tar.gz -C /usr/local

#设置环境变量
sudo vim /etc/profile
export GOROOT=/usr/local/go
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct

#生效
source /etc/profile

2.2 安装geth

项目访问地址:https://github.com/ethereum/go-ethereum

#进入服务存放目录
cd /opt/eth/
#下载访问
wget https://github.com/ethereum/go-ethereum/archive/refs/tags/v1.10.17.tar.gz
#解压
tar xf v1.10.17.tar.gz 
#复制到/usr/local
cp go-ethereum-1.10.17/ /usr/local/go-ethereum -R
#进入服务目录
cd /usr/local/go-ethereum
#编译
make all

编译完成之后在build/bin目录下会生成很多可执行文件,geth就是其中一个

2.3 配置geth环境变量

#配置geth环境变量
vim /etc/environment
GOROOT=/usr/local/go
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/go/bin:/usr/local/go-ethereum/build/bin"
#生效
source /etc/environment

终端输入 geth version命令就会返回如下输出

在这里插入图片描述

3.启动节点

3.1 启动命令及参数

nohup geth --syncmode "full" --mainnet  --datadir /eth/eth-01 --port 29803 --http --http.api "eth,net,web3,txpool" --http.addr 0.0.0.0 --http.port 33224 --maxpeers 500  & > nohup.out

geth命令详细用法—以太坊客户端Geth命令及参数详解

参数名称参数说明
–syncmode同步模式,有三种"fast",“full”,“light”.
–mainnet以太坊–主网
–datadir钱包以及区块数据等存储目录,这个建议单独使用数据盘,不要指定系统盘的文件夹
–http启用HTTP-RPC服务器
–http.api通过HTTP-RPC接口提供API服务
–http.addrHTTP-RPC服务器监听接口,本地(127.0.0.1),远程(0.0.0.0)
–http.portHTTP-RPC服务器监听端口,默认(8545)

3.2 同步模式

3.2.1 Fast同步模式

#Fast同步模式
启动快速区块同步模式,在同步到最新区块后,转化为正常区块同步模式.
这个是推荐选项,此方法可能会对历史数据有部分丢失,但是不影响今后的使用.

3.2.2 Full同步模式

#Full同步模式
从开始到结束,获取区块的header,获取区块的body,从创始块开始校验每一个元素,需要下载所有区块数据信息.
速度最慢,但是能获取到所有的历史数据,这个是默认的选项.

3.2.3 Light同步模式

#Light同步模式
仅获取当前状态.
验证元素需要向full节点发起相应的请求.

4.Geth客户端登录操作

以太坊区块浏览器查看最新区块:https://etherscan.io

#本机登录
geth attach /eth/eth-01/geth.ipc
#查看状态
eth
#查看最新区块高度
eth.blockNumber
#查看同步状态,返回false未同步或者是同步到最新区块
eth.syncing
#查看自己的这个节点连了多少个其它节点进行数据同步
net.peerCount

5.Nginx反向代理=访问节点地址

5.1 Nginx配置文件

vim eth-data-01.xxx.com
server{
    listen 80;
    server_name eth-data-01.xxx.com;
    return 301 https://eth-data-01.xxx.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name eth-data-01.xxx.com;

    ssl_certificate   /etc/nginx/conf.d/ssl/ssl.pem;
    ssl_certificate_key  /etc/nginx/conf.d/ssl/ssl.key;
    ssl_session_timeout 10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
    ssl_prefer_server_ciphers on;
    
    location / {
                proxy_pass http://172.13.18.104:33224/;
                proxy_set_header    Host             $host;
                proxy_set_header    X-Real-IP        $remote_addr;
                proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header    HTTP_X_FORWARDED_FOR $remote_addr;
                proxy_redirect      http:// https://;
                proxy_buffering  off;
        }
}

6.进程管理启动(supervisord)

vim geth.ini
[program:geth]
command=/usr/local/go-ethereum/build/bin/geth --syncmode "full" --mainnet  --datadir /eth/eth-01 --port 29803 --http --http.api "eth,net,web3,txpool" --http.addr 0.0.0.0 --http.port 33224 --maxpeers 500  
directory=/usr/local/go-ethereum/build/bin
user=geth
autostart=true
autorestart=true
stdout_logfile=/var/geth/geth-out.log
stderr_logfile=/var/geth/geth-err.log

7.AWS-Geth节点启动命令

nohup geth --syncmode "full" --mainnet  --datadir /eth/eth-01 --port 29803 --http --http.api "eth,net,web3,txpool" --http.addr 0.0.0.0 --http.port 33224 --maxpeers 500  & > nohup.out
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-14 22:57:06  更:2022-06-14 23:00:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 23:56:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码