February 26, 2022

Помойка НЕ УДАЛЯТЬ

Massa

⠀Изменить загрузочные ноды в конфиге

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Massa/main/multi_tool.sh) \
-rb

⠀Иногда бывают проблемы с запуском ноды из-за нехватки загрузочных нод (количество увеличивалось в начале установки), для помощи сообществу можно добавить свою ноду в список загрузочных нод, сделав PR.

Нода не запускается

⠀Вероятно нода не может запуститься из-за проблем с загрузочными нодами, особенно, если в логе ошибка

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: parsing error : public key bs58_check parsing error

⠀Для их обновления нужно выполнить пачку команд

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Massa/main/multi_tool.sh) -rb; \
systemctl restart massad

Iron Fish

⠀Изменить кусок кода, чтобы синхронизация не останавливалась

docker exec -t iron_fish_node sh -c "sed -i 's%REQUEST_BLOCKS_PER_MESSAGE.*%REQUEST_BLOCKS_PER_MESSAGE = 5%' /usr/src/app/node_modules/ironfish/src/syncer.ts"

⠀Добавить команды в систему в виде переменных:

  • Просмотр лога ноды;
  • Просмотр информации о ноде;
  • Сокращение команды для выполнения действий в контейнере.
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n ifn_log -v "docker logs iron_fish_node -fn 100" -a
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n if_node_info -v ". <(wget -qO- https://raw.githubusercontent.com/SecorD0/Iron_Fish/main/node_info.sh) -l RU 2> /dev/null" -a
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n ironfish -v "docker exec -it iron_fish_node ironfish" -a

⠀Задать название ноды

ironfish config:set enableTelemetry true; \
ironfish config:set nodeName $iron_fish_moniker; \
ironfish config:set blockGraffiti $iron_fish_moniker

⠀Перезапустить ноду для применения всех изменений

docker restart iron_fish_node

⠀Придумать название кошелька, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n iron_fish_wallet_name

Уже есть кошелёк

⠀Поместить JSON файл для импорта кошелька в корневую папку системы (команда отображает путь)

echo $HOME/iron_fish_${iron_fish_wallet_name}.json

⠀Скопировать файл для импорта кошелька в Docker контейнер

docker cp $HOME/iron_fish_${iron_fish_wallet_name}.json iron_fish_node:/usr/src/app/iron_fish_${iron_fish_wallet_name}.json

⠀Импортировать кошелёк

ironfish accounts:import "iron_fish_${iron_fish_wallet_name}.json"; \
ironfish accounts:use $iron_fish_wallet_name

Ещё нет кошелька

⠀Создать кошелёк

ironfish accounts:create $iron_fish_wallet_name

⠀Установить кошелёк как кошелёк по умолчанию

ironfish accounts:use $iron_fish_wallet_name

⠀Экспортировать созданный кошелёк

ironfish accounts:export $iron_fish_wallet_name "iron_fish_${iron_fish_wallet_name}.json"

⠀Скопировать файл для импорта кошелька на хост

docker cp iron_fish_node:/usr/src/app/iron_fish_${iron_fish_wallet_name}.json $HOME/iron_fish_${iron_fish_wallet_name}.json

Сделать резервную копию файла для импорта кошелька, сохранив его в надёжном месте (команда отображает путь)

echo $HOME/iron_fish_${iron_fish_wallet_name}.json

Конец

Linux (автоматический)

Для продвинутых

⠀Запустить скрипт, ввести название ноды, название кошелька и дождаться окончания установки

⠀При нахождении файла с названием ниже скрипт импортирует кошелёк

echo $HOME/iron_fish_${iron_fish_wallet_name}.json
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Iron_Fish/main/multi_tool.sh)

Сделать резервную копию файла для импорта кошелька, сохранив его в надёжном месте (команда отображает путь)

echo $HOME/iron_fish_${iron_fish_wallet_name}.json

Майнер

К содержанию

Запуск

⠀Дождаться синхронизации

if_node_info

⠀Запросить монеты с крана (необходимо ввести почту и нажать Enter)

ironfish faucet

⠀Проверить баланс

⠀Токены могут прийти через несколько часов

if_node_info

⠀Запустить контейнер с майнером

⠀Команда ниже запускает майнер, использующий общее количество потоков минус один. При желании нужно стереть значение после опции -t и вписать своё количество используемых майнером потоков.

docker run -dit --name iron_fish_miner --restart always --network host -v $HOME/.ironfish:/root/.ironfish ghcr.io/iron-fish/ironfish:latest miners:start -t `bc <<< "$(lscpu --json | jq -r ".lscpu[4].data")-1"`

⠀Добавить команду для просмотра лога майнера в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n ifm_log -v "docker logs iron_fish_miner -f" -a

Изменение количества потоков

⠀Удалить контейнер с майнером

docker rm iron_fish_miner -f

⠀Перезапустить майнер с нужным количеством потоков (изменить значение после опции -t)

docker run -dit --name iron_fish_miner --restart always --network host -v $HOME/.ironfish:/root/.ironfish ghcr.io/iron-fish/ironfish:latest miners:start -t `bc <<< "$(lscpu --json | jq -r ".lscpu[4].data")-1"`

Evmos

Запуск

К содержанию

Подготовка

⠀Установить ноду

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Evmos/main/multi_tool.sh)

⠀Придумать название ноды, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n evmos_moniker

⠀Настроить конфиг

evmosd config chain-id evmos_9000-1
evmosd config keyring-backend file

⠀Инициализировать ноду

evmosd init "$evmos_moniker" --chain-id evmos_9000-1

Сделать резервную копию папки с настройками, сохранив себе на ПК (команда отображает путь)

echo $HOME/.evmosd/config/

⠀Придумать название кошелька, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n evmos_wallet_name

Если уже есть кошелёк

⠀Восставить аккаунт валидатора

evmosd keys add "$evmos_wallet_name" --recover --keyring-backend file

⠀Необходимо ввести мнемоническую фразу от кошелька и дважды пароль для ноды

Если нет кошелька

⠀Создать кошелёк

evmosd keys add "$evmos_wallet_name" --keyring-backend file

⠀Необходимо задать пароль, запомнить его и

Сохранить вывод команды в надёжном месте

Продолжение

⠀Добавить адрес кошелька в систему в виде переменной (необходимо ввести пароль от кошелька)

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n evmos_wallet_address -v `evmosd keys show "$evmos_wallet_name" -a`

Запуск ноды

⠀Скачать файл генезиса

wget -qO $HOME/.evmosd/config/genesis.json https://raw.githubusercontent.com/tharsis/testnets/main/arsia_mons/genesis.json

⠀Отредактировать конфиг набором команд (копировать и выполнять всё)

sed -i -e "s%^moniker *=.*%moniker = \"$evmos_moniker\"%; "\
"s%^seeds *=.*%seeds = \"c36cec90ded95d162b85f8ecd00ecd7c8849ca75@arsiamons.seed.evmos.org:26656\"%; "\
"s%^persistent_peers *=.*%persistent_peers = \"847e72f31e1f87e8059231b4b9e3302989c22d3a@5.189.156.65:26656,`wget -qO - https://raw.githubusercontent.com/tharsis/testnets/main/arsia_mons/peers.txt | tr '\n' ',' | sed 's%,$%%'`\"%; "\
"s%^enable *=.*%enable = false%; " $HOME/.evmosd/config/config.toml

⠀Если на сервере стоит ещё одна нода, использующая Tendermint (Stratos, Findora и пр.), то дополнительно настроить конфиг в соответствии со статьёй

⠀Создать сервисный файл

printf "[Unit]
Description=Evmos Daemon
After=network-online.target

[Service]
User=$USER
ExecStart=`which evmosd` start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/evmosd.service

⠀Запустить сервис

sudo systemctl daemon-reload
sudo systemctl enable evmosd
sudo systemctl restart evmosd

⠀Добавить команду для просмотра лога ноды в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n evmos_log -v "sudo journalctl -fn 100 -u evmosd" -a

⠀Добавить команду для просмотра информации о ноде в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n evmos_node_info -v ". <(wget -qO- https://raw.githubusercontent.com/SecorD0/Evmos/main/node_info.sh) -l RU 2> /dev/null" -a

⠀Несколько минут в логе будут сплошные ошибки, после чего нода подключится к сети и начнёт догонять текущую высоту

Создание валидатора

⠀Перейти на канал с краном в Discord севере

⠀Вывести команду для получения токенов

!faucet ADDRESS
  • ADDRESS - адрес кошелька, можно узнать командой
evmosd keys show "$evmos_wallet_name" -a --keyring-backend file

⠀Дождаться окончания синхронизации ноды (пройдёт несколько минут)

evmos_node_info

⠀Создать валидатора

⠀Можно установить аватар, добавив опции из одноимённого раздела

evmosd tx staking create-validator \
  --amount 1000000000000aphoton \
  --pubkey `evmosd tendermint show-validator` \
  --moniker "$evmos_moniker" \
  --from "$evmos_wallet_name" \
  --chain-id evmos_9000-1 \
  --commission-rate 0.10 \
  --commission-max-rate 0.20 \
  --commission-max-change-rate 0.01 \
  --min-self-delegation 1000000 \
  --gas 800000 \
  --gas-prices 0.025aphoton \
  --keyring-backend file

Archway


Регистрация

К содержанию

Удаление старой ноды

⠀В случае, если ранее была установлена нода остановить сервисный файл

sudo systemctl stop archwayd; \
sudo systemctl disable archwayd

⠀Сбросить БД

archwayd unsafe-reset-all

⠀Удалить файлы

rm -rf /etc/systemd/system/archwayd.service `which archwayd`

⠀Обновить список сервисных файлов

sudo systemctl daemon-reload

⠀Если не была сделана резервная копия:

  • Мнемоническая фраза от кошелька, то сохранить папку $HOME/.archway/keyring-file/ в надёжном месте;

⠀Удалить директорию с данными ноды

rm -rf $HOME/.archway

Добавление в генезис

⠀Установить GO

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/golang.sh)

⠀Установить ноду

git clone https://github.com/archway-network/archway; cd archway && git checkout main && make install; cd

⠀Переместить бинарный файл в папку с бинарными файлами

mv `which archwayd` /usr/bin/

⠀Придумать название ноды, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n archway_moniker

⠀Придумать название кошелька, запустить команду и ввести название, тем самым добавить его в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n archway_wallet_name

⠀Инициализировать ноду

archwayd init "$archway_moniker" --chain-id torii-1

⠀Задать настройки

archwayd config chain-id torii-1
archwayd config keyring-backend file

Если есть кошелёк

⠀Восставить кошелёк

⠀Необходимо ввести мнемоническую фразу от кошелька и дважды пароль для защиты хранилища.

archwayd keys add "$archway_wallet_name" --recover --keyring-backend file

Если нет кошелька

⠀Создать кошелёк

archwayd keys add "$archway_wallet_name" --keyring-backend file

⠀Необходимо задать пароль, запомнить его и

Сохранить вывод команды в надёжном месте

Сделать резервную копию папки с настройками, сохранив себе на ПК (команда отображает путь)

echo $HOME/.archway/config/

Продолжение

⠀Добавить адрес кошелька в систему в виде переменной (необходимо ввести пароль от кошелька)

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n archway_wallet_address -v `archwayd keys show "$archway_wallet_name" -a`

⠀Добавить аккаунт в генезис

archwayd add-genesis-account "$archway_wallet_address" 1001000utorii

⠀Создать генезис файл

archwayd gentx "$archway_wallet_name" 1000000utorii \
  --moniker "$archway_moniker" \
  --pubkey `archwayd tendermint show-validator` \
  --chain-id torii-1 \
  --commission-rate 0.1 \
  --commission-max-rate 0.2 \
  --commission-max-change-rate 0.05 \
  --output-document "$HOME/$archway_moniker.json"

Сделать резервную копию папки с настройками, сохранив в надёжном месте (команда отображает путь)

echo $HOME/.archway/config/

Подача PR в GitHub

⠀Перейти в GitHub

⠀Нажать «Add file», далее «Create new file»

⠀Заполнить данные и отправить Pull Request:

  • Название в формате MONIKER.json, можно узнать командой
echo "$archway_moniker.json"
  • В содержимое содержимое генезис файла, можно посмотреть командой
cat "$HOME/${archway_moniker}.json"

⠀Увидеть созданный PR

Форму заполнять не нужно, потому что никто никаких задач ещё не выполнил (подача gentx — это не выполненная задача).

⠀Скачать addrbook

wget -qO $HOME/.archway/config/addrbook.json https://raw.githubusercontent.com/SecorD0/Archway/main/addrbook.json


Создание валидатора

К содержанию

⠀Дождаться полной синхронизации ноды. Текущее состояние можно посмотреть при помощи команды

archway_node_info

⠀По окончании синхронизации необходимо запросить токены:

1) Скопировать адрес кошелька

archway_node_info

2) Присоединиться к Discord серверу

3) Перейти в канал #🚰|faucet и запросить токены командой

!faucet archway1___

4) Проверить поступление 10 august

archway_node_info

⠀Создать валидатора

⠀Для установки аватара необходимо добавить опцию --identity и указать Keybase ключ.

archwayd tx staking create-validator \
  --amount 9000000uaugust \
  --moniker "$archway_moniker" \
  --pubkey `archwayd tendermint show-validator` \
  --commission-rate 0.01 \
  --commission-max-rate 0.1 \
  --commission-max-change-rate 0.1 \
  --min-self-delegation 1 \
  --from "$archway_wallet_name" \
  --chain-id "$archway_chain_id"

Solana реинкарнация

Подготовка

⠀Запустить проверку последнего подтвержденного слота

if [ `tail -n 1000000 $HOME/solana/solana.log | grep -oPm1 "(?<=req_flush_root: Some\()([^%]+)(?=\) old_slot_flushes)" | tail -n1` -ge "110973418" ]; then echo -e "\033[1;32mGood\033[0m"; else echo -e "\033[0;31mBad\033[0m"; fi

⠀Остановить ноду

sudo systemctl stop solana

⠀Обновить ноду до версии 1.8.11

solana-install init v1.8.11

Деплой Python программ на Linux

Установка

⠀Установить MySQL скриптом

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/mysql.sh)

⠀Выполнить предварительную настройку, запустив команду

sudo mysql_secure_installation

⠀Ответить на дальнейшие вопросы y или n:

  • Использовать ли плагин для валидации пароля? (по желанию);
  • y — попросит задать сложность пароля, а затем сам пароль и проверит его исходя из сложности;
  • n — попросит ввести пароль.
y
n
  • Удалить ли анонимных пользователей? (желательно y)
y
  • Запретить ли удалённое подключение через root пользователя? (по желанию)
n
  • Удалить ли тестовую базу данных? (желательно y)
y
  • Обновить ли таблицы привилегий? (желательно y)
y

Solana

⠀Запустить проверку последнего подтвержденного слота

if [ `solana slot -ul --commitment finalized` -ge "$slot" ]; then echo -e "\033[1;32mGood\033[0m"; else echo -e "\033[0;31mBad\033[0m"; fi