Install Nod Masa Finance
Masa finance - протокол кредитования , позволяющий совмещать ликвидность CEX и DEX.
Системные требования
Минимальные: 2 CORE, 4Gb RAM, 80Gb SSD
Рекомендуемые: 4 CORE, 8Gb RAM, 200Gb SSD
Ports: 30300 (service), 21000 (docker), 3000 (docker UI), 8545 (RPC) Примечание: тестирование на других OS не производилось.
Установка
sudo apt-get update && sudo apt-get upgrade -y
2.Устанавливаем полезные пакеты
sudo apt install apt-transport-https net-tools git mc sysstat atop curl tar wget clang pkg-config libssl-dev jq build-essential make ncdu -y
ver="1.17.11" cd $HOME wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" rm "go$ver.linux-amd64.tar.gz" echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile source ~/.bash_profile
cd $HOME rm -rf masa-node-v1.0 git clone https://github.com/masa-finance/masa-node-v1.0
cd masa-node-v1.0/src git checkout v1.03 make all
cd $HOME/masa-node-v1.0/src/build/bin sudo cp * /usr/local/bin
cd $HOME/masa-node-v1.0 geth --datadir data init ./network/testnet/genesis.jsonn
MASA_NODENAME="СВОЁ ИМЯ"
tee $HOME/masad.service > /dev/null <<EOF [Unit] Description=MASA103 After=network.target [Service] Type=simple User=$USER ExecStart=$(which geth) \ --identity ${MASA_NODENAME} \ --datadir $HOME/masa-node-v1.0/data \ --port 30300 \ --syncmode full \ --verbosity 5 \ --emitcheckpoints \ --istanbul.blockperiod 10 \ --mine \ --miner.threads 1 \ --networkid 190260 \ --http --http.corsdomain "*" --http.vhosts "*" --http.addr 127.0.0.1 --http.port 8545 \ --rpcapi admin,db,eth,debug,miner,net,shh,txpool,personal,web3,quorum,istanbul \ --maxpeers 50 \ --bootnodes enode://136ae18de4e57e15e7dc70b03d59db11e77ae45de8ba89a243734b911b94477a3fa515d8a494c1ea79b97e134a17f04db9ff4e90e09e1c2bdba3e9aa061bf6ae@185.167.120.159:30300,enode://91a3c3d5e76b0acf05d9abddee959f1bcbc7c91537d2629288a9edd7a3df90acaa46ffba0e0e5d49a20598e0960ac458d76eb8fa92a1d64938c0a3a3d60f8be4@54.158.188.182:21000,enode://ac6b1096ca56b9f6d004b779ae3728bf83f8e22453404cc3cef16a3d9b96608bc67c4b30db88e0a5a6c6390213f7acbe1153ff6d23ce57380104288ae19373ef@54.146.254.245:21000,enode://91a3c3d5e76b0acf05d9abddee959f1bcbc7c91537d2629288a9edd7a3df90acaa46ffba0e0e5d49a20598e0960ac458d76eb8fa92a1d64938c0a3a3d60f8be4@54.158.188.182:21000,enode://d87c03855093a39dced2af54d39b827e4e841fd0ca98673b2e94681d9d52d2f1b6a6d42754da86fa8f53d8105896fda44f3012be0ceb6342e114b0f01456924c@34.225.220.240:21000,enode://fcb5a1a8d65eb167cd3030ca9ae35aa8e290b9add3eb46481d0fbd1eb10065aeea40059f48314c88816aab2af9303e193becc511b1035c9fd8dbe97d21f913b9@52.1.125.71:21000 Restart=on-failure RestartSec=10 LimitNOFILE=4096 Environment="PRIVATE_CONFIG=ignore" [Install] WantedBy=multi-user.target EOF
sudo mv $HOME/masad.service /etc/systemd/system
sudo systemctl daemon-reload sudo systemctl enable masad sudo systemctl restart masad sudo systemctl status masad
Проверка ноды
geth attach ipc:/home/masa/masa-node-v1.0/data/geth.ipc
Далее все команды выполняются внутри geth
консоли
Проверка подключения к сети (верный ответ true)
net.listening
Проверка числа активных подключений (верный ответ больше нуля)
net.peerCount
Проверка нахождения в состоянии синхронизации (верный ответ false)
eth.syncing
eth.blockNumber
Текущая сложность (высота) сети
admin.nodeInfo.protocols.eth.difficulty
admin.nodeInfo
Возвращает enodeID для регистрации в
admin.nodeInfo.enode
Подробную информацию о командах для консоли geth
вы можете найти в официальной документации: https://geth.ethereum.org/docs/
Cначала Вы должны дождаться синхронизации .
В процессе выдает увеличивающиеся значения первой строки до совпадения со второй.
Проверка общего состояния ноды (Смотрим на строку difficulty: , она должна быть больше единицы и равна текущему блоку.)
admin.nodeInfo
Регистрируем ноду
Регистрируйтесь с той почты, которую указывали в формах ранее. Если только сейчас ставите ноду , можете просто зарегистрироваться .
В разделе Node Operators вставьте enode своей ноды, который Вы можете взять из ноды. ( команду вводим в клиенте admin.nodeInfo.enode
)
enodeID должен быть указан полностью (без кавычек). Правильный формат: enode://ID-128-CHARACTERS@IP:port
В этой вкладке Вы можете наблюдать свои реварды и аптайм нод. Награды приходят НЕ сразу.
Альтернативный метод получения enodeID
geth attach ipc:/home/masa/masa-node-v1.0/data/geth.ipc --exec web3.admin.nodeInfo |grep enode | sed {s/127\.0\.0\.1/`wget -qO - eth0.me`/} | sed "s/^.*\"\(.*\)\".*$/\1/"
Проверка логов
проверка логов проходит уже не в клиенте !!!!
journalctl -u masad -f
journalctl -u masad -f | grep "new block"
Ошибки в логах возможны, сейчас показателем стабильно работающей ноды является наличие пиров и синхронизация.
Запуск, остановка и перезапуск ноды docker
sudo systemctl start masad
sudo systemctl stop masad
sudo systemctl restart masad
Добавление пиров (изменение бутноды)
Если количество активных подключений (пиров) равно нулю, то нода не сможет выполнить синхронизацию с сетью и необходимо исправить эту ситуацию. Вы можете сделать это автоматически с помощью скрипта или отредактировать конфигурационный файл вручную изменив бутноду.
Запустите скрипт и укажите новую бутноду, ниже приведён пример с бутнодой сообщества.
. <(wget -qO- https://raw.githubusercontent.com/usrbad/masa-node-v1.0/main/addbootnode.sh)
enode://7612454dd41a6d13138b565a9e14a35bef4804204d92e751cfe2625648666b703525d821f34ffc198fac0d669a12d5f47e7cf15de4ebe65f39822a2523a576c4@81.29.137.40:30300
При ручной правке вам необходимо отредактировать параметр --bootnodes
конфигурационного файла, сохранить изменения и перезапустить ноду.
sudo nano /etc/systemd/system/masad.service
sudo systemctl daemon-reload && sudo systemctl restart masad
Резервное копирование и восстановление ноды
(работа с nodekey
)
Для резервного копирования достаточно сохранить nodekey
, этот ключ вам потребуется для переноса ноды на другой сервер, при сбоях, ошибках обновления и так далее.
nodekey
— уникальный ключ вашей ноды (64 символа), из него формируется enodeID, который необходим для регистрации в тестнете.
Место расположения файла nodekey
отличается в зависимости от гайда по которому производилась установка.
Просто сохраните в надёжном месте вывод команды (64 символа)
sudo cat /home/masa/masa-node-v1.0/data/geth/nodekey
Восстановление nodekey
Установите masa на сервер, отредактируйте nodekey
(замените на значение из резервной копии), сохраните файл и перезапустите ноду. Для сохранения изменений в редакторе nano нажмите CTRL+O > ENTER > CTRL+X
sudo nano /home/masa/masa-node-v1.0/data/geth/nodekey
sudo systemctl restart masad
Если всё сделано верно, то ваш старый enodeID будет восстановлен. (изменено)
Определение версии ноды
Версию masa можно определить по версии сети.
sudo geth attach ipc:/home/masa/masa-node-v1.0/data/geth.ipc --exec web3.admin.nodeInfo | grep -P "network|chainId"
Удаление ноды
Перед удалением ноды обязательно сделайте резервную копию nodekey.
sudo systemctl stop masad sudo systemctl disable masad sudo rm -rf /etc/systemd/system/masad.service sudo rm -rf /root/masa-node-v1.0 sudo rm -rf ~/masa-node-v1.0 sudo rm -rf /home/masa/masa-node-v1.0 sudo rm -rf ~/.ethereum sudo rm -rf ~/.cache/go-build sudo rm -rf ~/go sudo rm -rf /usr/local/bin/{abidump, abigen, bootnode, checkpoint-admin, clef, devp2p, ethkey, evm, faucet, geth, p2psim, puppeth, rlpdump}
Удаление пользователя (только для setar)
sudo userdel -r masa sudo groupdel p2p