Swarm BZZ 搭建 RPC-Server Goerli 测试网端点

起源

由于 https://infura.io/ 的每天免费次数只有 10万次, 不足已承载 大规模部署 ethswarm 所需要的访问量, 所以考虑自己搭建。

准备工作

基础 Linux

Docker 相关基础知识

操作步骤

1. 首先安装Docker

1.1 关闭防火墙

__set_config() {
    firewall-cmd --state
    systemctl stop firewalld.service
    systemctl disable firewalld.service
    sed -i 's,^SELINUX=.*$,SELINUX=disabled,' /etc/selinux/config
}
__set_config

1.2 开启IP转发

__set_kernel() {
    cat >>/etc/sysctl.conf <<-'EOF'
vm.swappiness = 0
net.ipv4.ip_forward = 1
EOF
    /sbin/sysctl -p
}
__set_kernel

1.3 更新yum镜像源

__set_mirrors() {
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

    yum clean all
    yum makecache fast
    yum install -y sudo

}
__set_mirrors

1.4 安装Docker

__install_docker() {
    yum -y install net-tools
    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
    yum makecache fast
    yum -y install docker-ce

    usermod -aG docker root
    mkdir -p /etc/docker
    cat >/etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://bn4ll166.mirror.aliyuncs.com"
    ],
    "data-root": "/data/docker-root",
    "dns": [
        "223.5.5.5",
        "119.29.29.29"
    ],
    "bip": "172.31.255.254/16",
    "storage-driver": "overlay2",
    "storage-opts": [
        "overlay2.override_kernel_check=true"
    ],
    "userland-proxy": false,
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "50m",
        "max-file": "1"
    }
}
EOF

    systemctl daemon-reload
    systemctl enable docker
    systemctl restart docker

}

__install_docker

2. 启动构建好的 geth-alltools 工具包:

docker run -itd --name geth --restart=always --net=host -v /data/docker-data/geth:/root registry.cn-hangzhou.aliyuncs.com/bd/ethereum:geth-alltools-v1.10.3

3.进入容器:

docker exec -it geth bash

4.使用 nohup 后台运行geth:

nohup bash -c "geth --goerli --ws --ws.addr=0.0.0.0 --ws.port 8546 --ws.api eth,net,web3" >/kuaicdn/runtime/log/geth.log 2>&1 &

5.开机自动运行 geth

以上命令如果机器重启了,是需要手动再启动 geth 的,如果想让开机就自动运行 geth 那么在容器里执行以下命令,可以使得容器启动时自动运行 geth

echo -e '#!/usr/bin/env bash\nnohup bash -c "geth --goerli --ws --ws.addr=0.0.0.0 --ws.port 8546 --ws.api eth,net,web3" >/kuaicdn/runtime/log/geth.log 2>&1 &' > /kuaicdn/runtime/master-script.sh

6.使用 tail 查看geth进程日志

tail -n 100 -f /kuaicdn/runtime/log/geth.log 

7. 使用您自己搭建的 Goerli Bee ,修改配置文件为:

swap-endpoint: ws://你的IP:8546

 

THE END