October 8
Morph
CPU: 2 ядра Оперативаня память: 4 ГБ SSD: 600 ГБ
Подготовка сервера:
sudo apt update -y && sudo apt upgrade -y
Установка зависимостей:
sudo apt install curl git jq lz4 build-essential unzip make lz4 gcc jq ncdu tmux cmake clang pkg-config libssl-dev python3-pip protobuf-compiler bc -y
Устанавливаем docker:
sudo apt install docker.io -y
Проверяем версию go и есть ли он на сервере:
go version
Если у нас стоит версия ниже 1.19, то удаляем go:
sudo rm -rf /usr/local/go
Установка ноды и geth:
mkdir -p ~/.morph cd ~/.morph git clone https://github.com/morph-l2/morph.git cd morph git checkout v0.2.0-beta wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin #Мы должны увидеть версию go version go1.22.0 linux/amd64 go version make nccc_geth cd ~/.morph/morph/node make build
Скачиваем конфиг:
cd ~/.morph wget https://raw.githubusercontent.com/morph-l2/config-template/main/holesky/data.zip
Распаковываем конфиг:
unzip data.zip
Получаем приватник от ноды:
openssl rand -hex 32 > jwt-secret.txt cat jwt-secret.txt
Синхронизация со snapshot:
wget -q --show-progress https://snapshot.morphl2.io/holesky/snapshot-20240805-1.tar.gz tar -xzvf snapshot-20240805-1.tar.gz mv snapshot-20240805-1/geth geth-data mv snapshot-20240805-1/data node-data
Создаем системный файл (вставляем целиком):
sudo tee /etc/systemd/system/gethm.service > /dev/null << EOF [Unit] Description=Geth After=network-online.target [Service] User=root ExecStart=/root/.morph/morph/go-ethereum/build/bin/geth \ --morph-holesky \ --datadir "/root/.morph/geth-data" \ --http --http.api=web3,debug,eth,txpool,net,engine \ --http.port 8546 \ --authrpc.addr localhost \ --authrpc.vhosts="localhost" \ --authrpc.port 8552 \ --authrpc.jwtsecret=/root/.morph/jwt-secret.txt \ --miner.gasprice="100000000" \ --log.filename=/root/.morph/geth.log \ --port 30363 Restart=on-failure RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
Запуск geth:
sudo systemctl daemon-reload sudo systemctl enable gethm.service sudo systemctl start gethm.service
Проверка логов:
sudo journalctl -u gethm -f
для выхода из логов нажми CTRL+C
Запуск Morph:
Открываем новое окно терминала и переходим в нужную директорию:
cd /root/.morph
Создаем системный файл:
sudo tee /etc/systemd/system/morphm.service > /dev/null << EOF [Unit] Description=Morph Node After=network-online.target [Service] User=root ExecStart=/root/.morph/morph/node/build/bin/morphnode \ --home /root/.morph/node-data \ --l2.jwt-secret /root/.morph/jwt-secret.txt \ --l2.eth http://localhost:8546 \ --l2.engine http://localhost:8552 \ --log.filename /root/.morph/node.log Restart=on-failure RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
Запускаем ноду:
sudo systemctl daemon-reload sudo systemctl enable morphm sudo systemctl start morphm
Просмотр логов:
sudo journalctl -u morphm -f
для выхода из логов нажми CTRL+C
Проверка статуса:
curl http://localhost:26657/status