UPD 08.08.2020
UPD 03.09.2020
Вводная часть
Доброго дня друзья.
В этом этом мануале расписано, каким образом запустить обе ноды (Random Beacon и Ecsdsa) на одной VPS.
Немного поясню зачем я его написал, дело в том , что когда я сам поднимал ноды, то у меня не получилось поднять сразу обе, на одной VPS, ни по одному из действующих гайдов, что я нашел.
Таким образом, я потратил несколько дней и самостоятельно, разбираясь во всех нюансах всё таки запустился)
Начну с самого начала, возможно по данному гайду будут работать не только те, у кого не выходит настроить VPS, хотя основные отличия от других мануалов, это порядок команд и конфигурационные файлы.
P.S За всё время моих «разборов» был 18 раз отформатирован жесткий диск.
Минимальные технические требования
· VPS — 4 vCPU, 4ГБ ОЗУ, 1 ГБ HDD
· OC — Linux Ubuntu 18.04 Bionic
· SSH Клиент — Putty, MobaXterm, mRemoteNG(кому, что понравится)
· Google Chrome c расширением MetaMask
Ethereum кошелек
Переходим по ссылке https://myetherwallet.com
и создаём новый кошелек, в дальнейшем все пункты, которые нужно выбирать , будут отмечены красной рамкой.
Далее, нужно загрузить файл кошелька, для этого выполните действия, указанные на скриншоте.
В скачанном файле нужно сразу же изменить имя на «keep_wallet.json»
Импорт файла в MetaMask
При входе в MetaMask , сразу же меняем сеть на «Ropsten» и импортируем наш файл «keep_wallet.json»
Выбираем тип «JSON файл»
Выбираем наш файл «keep_wallet.json»
И завершаем все вводом пароля, который мы указывали при скачивании файлы кошелька.
Получаем тест токены
Копируем адрес нашего импортированного кошелька, переходим по ссылке «https://faucet.ropsten.be/»
Вводим свой скопированный адрес ETH и жмём на кнопку.
Получаем тестовые токены KEEP.
Переходим по ссылке, меняя значение после «URL =» на ваш адрес: https://us-central1-keep-test-f3e0.cloudfunctions.net/keep-faucet-ropsten?account= ваш адрес ETH.
Делегируем тестовые токены KEEP
Переходим по ссылке https://dashboard.test.keep.network/tokens
Соединяемся с сетью KEEP через MetaMask.
Нас перебрасывает в dashboard.
Вводим 300 000 токенов.
Заполняем поля кошельков.
! Во всех 3х полях используем одинаковые значения вашего кошелька !
После того как заполнены все поля, жмём на кнопку ниже — «delegate stake».
Далее перейдите по ссылке — https://dashboard.test.keep.network/applications/random-beacon
! Внимание, долгая загрузка, придется подождать 2–5 минут !
После загрузки, прожимаем кнопку авторизации.
Далее, переходим по ссылке — https://dashboard.test.keep.network/applications/tbtc
Аналогично первично получаем экран загрузки и ждём 2–5 минут.
После этого прожимаем кнопки авторизации.
И далее добавляем в нижней панели 0.1 ETH.
Регистрация в api сервисе INFURA
Переходим по ссылке https://infura.io/register.
Регистрируем аккаунт.
Входим и создаём проект для beacon ноды.
Далее, создаём такой-же проект но уже для ecdsa ноды.
После создания двух проектов, нужно перейти в настройки каждого проекта и выписать ID проекта.
Настройка VPS
Войдите на VPS при помощи ssh клиента.
Открываем порты.
sudo ufw allow 22/tcp
sudo ufw allow 3919/tcp
sudo ufw allow 3920/tcp
sudo ufw enable
После последней команды в строке пишем y и нажимаем enter.
Устанавливаем Docker:
sudo apt-get update
sudo apt-get remove docker docker-engine docker.io
sudo apt install docker.io curl -y
sudo systemctl start docker
sudo systemctl enable docker
Создаём папки для Beacon и Ecdsa ноды
mkdir -p $HOME/keep-beacon/config
mkdir -p $HOME/keep-beacon/keystore
mkdir -p $HOME/keep-beacon/persistence
mkdir -p $HOME/keep-ecdsa/config
mkdir -p $HOME/keep-ecdsa/keystore
mkdir -p $HOME/keep-ecdsa/persistence
Создаём конфиг для Beacon ноды
Выполняем команду
cat <<EOF >>$HOME/keep-beacon/config/config.toml
В строку вставляем
- ВНИМАТЕЛЬНО ЗАПОЛНЯЕМ СТРОКИ С ID INFURA И КОШЕЛЬКОМ
# Ethereum host connection info.
[ethereum]
URL = "wss://ropsten.infura.io/ws/v3/Ваш ID Infura Beacon"
URLRPC = "https://ropsten.infura.io/v3/Ваш ID Infura Beacon"
# Keep operator Ethereum account.
[ethereum.account]
Address = "Ваш кошелек"
KeyFile = "/mnt/keystore/keep_wallet.json"
# Keep contract addresses configuration.
[ethereum.ContractAddresses]
KeepRandomBeaconOperator = "0xC8337a94a50d16191513dEF4D1e61A6886BF410f"
TokenStaking = "0x234d2182B29c6a64ce3ab6940037b5C8FdAB608e"
KeepRandomBeaconService = "0x6c04499B595efdc28CdbEd3f9ed2E83d7dCCC717"
# Keep network configuration.
[LibP2P]
Peers = ["/dns4/bootstrap-1.core.keep.test.boar.network/tcp/3001/ipfs/16Uiu2HAkuTUKNh6HkfvWBEkftZbqZHPHi3Kak5ZUygAxvsdQ2UgG",
"/dns4/bootstrap-2.core.keep.test.boar.network/tcp/3001/ipfs/16Uiu2HAmQirGruZBvtbLHr5SDebsYGcq6Djw7ijF3gnkqsdQs3wK","/dns4/bootstrap-3.test.keep.network/tcp/3919/ipfs/16Uiu2HAm8KJX32kr3eYUhDuzwTucSfAfspnjnXNf9veVhB12t6Vf","/dns4/bootstrap-2.test.keep.network/tcp/3919/ipfs/16Uiu2HAmNNuCp45z5bgB8KiTHv1vHTNAVbBgxxtTFGAndageo9Dp"]
Port = 3919AnnouncedAddresses = ["/ip4/$SERVER_IP/tcp/3920"]
# Storage is encrypted
[Storage]
DataDir = "/mnt/persistence"
EOF
Далее выполняем команду.
cat <<EOF >>$HOME/keep-beacon/keystore/keep_wallet.json
После этого, находим наш импортированный файл keep_wallet.json, открываем его текстовым редактором, текст копируем и вставляем в клиент. Жмем ENTER.
В следующую строчку прописываем “EOF”, жмём ENTER.
Создаём конфиг файл для ECDSA ноды
Выполняем команду
cat <<EOF >>$HOME/keep-ecdsa/config/config.toml
В строку вставляем
[ethereum]
URL = "wss://ropsten.infura.io/ws/v3/ВАШ ID INFURA ECDSA"
URLRPC = "https://ropsten.infura.io/v3/ВАШ ID INFURA ECDSA"# Keep operator Ethereum account.
[ethereum.account]
Address = "ВАШ КОШЕЛЕК"
KeyFile = "/mnt/keep-ecdsa/keystore/keep_wallet.json"# Addresses of contracts deployed on ethereum blockchain.
[ethereum.ContractAddresses]
BondedECDSAKeepFactory = "0x9EcCf03dFBDa6A5E50d7aBA14e0c60c2F6c575E6"# Addresses of applications approved by the operator.
[SanctionedApplications]
Addresses = [
"0xc3f96306eDabACEa249D2D22Ec65697f38c6Da69"
]# Keep network configuration.
[LibP2P]
Peers = ["/dns4/bootstrap-1.ecdsa.keep.test.boar.network/tcp/4001/ipfs/16Uiu2HAmPFXDaeGWtnzd8s39NsaQguoWtKi77834A6xwYqeicq6N",
"/dns4/ecdsa-2.test.keep.network/tcp/3919/ipfs/16Uiu2HAmNNuCp45z5bgB8KiTHv1vHTNAVbBgxxtTFGAndageo9Dp",
"/dns4/ecdsa-3.test.keep.network/tcp/3919/ipfs/16Uiu2HAm8KJX32kr3eYUhDuzwTucSfAfspnjnXNf9veVhB12t6Vf"]
Port = 3919# Override the nodeРҐs default addresses announced in the network
AnnouncedAddresses = ["/ip4/185.93.108.185/tcp/5678"]# Storage is encrypted
[Storage]
DataDir = "/mnt/keep-ecdsa/persistence"
[TSS]
EOF
Далее выполняем команду.
cat <<EOF >>$HOME/keep-ecdsa/keystore/keep_wallet.json
После этого, находим наш импортированный файл keep_wallet.json, открываем его текстовым редактором, текст копируем и вставляем в клиент. Жмем ENTER.
В следующую строчку прописываем “EOF”, жмём ENTER.
Создадим переменную пароля от JSON файла:
export KEEP_CLIENT_ETHEREUM_PASSWORD=”Ваш пароль от JSON файла”
Запускам ноду Beacon
sudo docker run -dit \
--restart always \
--volume $HOME/keep-beacon:/mnt \
--env KEEP_ETHEREUM_PASSWORD=$KEEP_CLIENT_ETHEREUM_PASSWORD \
--env LOG_LEVEL=debug \
--name keep-beacon \
-p 3920:3919 \
keepnetwork/keep-client:v1.3.0-rc.4 --config /mnt/config/config.toml start
Проверяем лог запуска
sudo docker logs keep-beacon -f --tail="100"
Если все работает, то выплывет такое изображение:
Если будет ошибка, то обращайтесь в телеграмм @nagaykka,наша команда постарается Вам помочь.
Запускам ноду Ecdsa
sudo docker run -d \
--restart always \
--entrypoint /usr/local/bin/keep-ecdsa \
--volume $HOME/keep-ecdsa:/mnt/keep-ecdsa \
--env KEEP_ETHEREUM_PASSWORD=$KEEP_CLIENT_ETHEREUM_PASSWORD \
--env LOG_LEVEL=debug \
--name keep-ecdsa \
-p 3919:3919 \
keepnetwork/keep-ecdsa-client:v1.2.0-rc.5 \
--config /mnt/keep-ecdsa/config/config.toml start
Проверяем лог запуска
sudo docker logs keep-ecdsa -f --tail="100"
Если все работает, то выплывет такое изображение:
Спасибо за внимание!
Если будет ошибка, то обращайтесь в телеграмм @nagaykka, наша команда постарается Вам помочь.