Uruchamiamy full node sieci ETH na potrzeby analizy danych.
Założenia:
- Adres IP maszyny wirtualnej: 192.168.30.42
- nazwa użytkownika: robert
- System 20.04.3 LTS
- Memory 20 GB
- Hard drive 32GB + 2TB
Przygotowanie hosta
ssh-copy-id -i ~/.ssh/pi_rsa.pub ubuntu@192.168.30.42
ssh ubuntu@192.168.30.42
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade
echo "alias cls="clear"" >> ~/.bashrc
source ~/.bashrc
Zmieniamy nazwę hosta z domyślnej ubuntu na node-eth:
sudo nano /etc/hostname
sudo nano /etc/hosts
sudo reboot
Przygotowanie dodatkowego dysku
sudo fdisk -l
sudo cfdisk /dev/sdb
sudo mkfs.ext3 /dev/sdb1
mkdir /eth_data
mount -t ext3 /dev/sdb1 /eth_data
echo "/dev/sdb1 /eth_data ext3 defaults,errors=remount-ro 0 1" | sudo tee -a /etc/fstab
ln -s /eth_data/ ~/eth_data
sudo chown -R "$USER" /eth_data/
Instalacja ethereum
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
sudo apt install ntpdate
Wygenerowanie konfiguracji
geth --syncmode "full" > /eth_data/geth.conf
.......
[Node]
DataDir = "/eth_data"
.......
Wygenerowanie uruchomienie
geth --config /eth_data/geth.conf
geth --config /eth_data/geth.conf --http --http.port 3334
geth --config /eth_data/geth.conf --http --http.port 3334 --http.addr 0.0.0.0
Podłączenie RPC
geth --exec "eth.syncing.highestBlock - eth.syncing.currentBlock" --datadir /eth_data attach
geth --exec "eth.syncing.highestBlock - eth.syncing.currentBlock" attach http://localhost:3334
geth --exec "new Date(eth.getBlock(eth.blockNumber).timestamp*1e3)" attach http://192.168.30.42:3334
Konfiguracja usługi
sudo nano /etc/systemd/system/geth.service
[Unit]
Description=The Ethereum Blockchain Command Line Interface
Documentation=man:geth(1)
After=network.target
[Service]
User=robert
RuntimeDirectory=/eth_data
RuntimeDirectoryPreserve=yes
ExecStart=/usr/bin/geth --config /eth_data/geth.conf
[Install]
WantedBy=default.target
systemctl daemon-reload
systemctl enable geth
systemctl stop geth
systemctl start geth
systemctl status geth.service