Сегодня расскажу о том, как поднять ноду Ripple, так как на днях столкнулся лично с данным вопросом и обнаружил, что в рунете нету вообще информации об этом, в буржунете тоже информации не много, есть конечно официальная документация, но и она не всегда спасает. Обо всём по порядку.
Сама документация по поднятию ноды находится на официальном сайте по ссылке.
Минимальные системные требования:
ОС: CentOS or RedHat Enterprise Linux (latest release) or Ubuntu (16.04+)
CPU: 64-bit x86_64, 2+ ядра
Диск: минимум 50GB для БД. Рекомендуется SSD
RAM: 8GB+
Рекомендуемые системные требования:
ОС: Ubuntu 16.04+
CPU: Intel Xeon 3+ GHz процессор с 4 ядрами и включенным гипертрейдинг
Диск: SSD (7000+ writes/second, 10,000+ reads/second)
RAM:
Тестовый сервер: 8GB+
Продакшн: 32GB (я запускал на 16GB, полёт нормальный, есть подстройка в конфиге)
Сеть: канал 1Гбит/сек
Я поднимал ноду на Ubuntu 18.04, следовательно буду писать мануал относительно этой ОС.
Поехали
1. Устанавливаем yum-utils and alien:
$ sudo apt-get update
$ sudo apt-get install yum-utils alien
2. Добавляем репозиторий Ripple RPM:
$ sudo rpm -Uvh https://mirrors.ripple.com/ripple-repo-el7.rpm
3. Загружаем пакет rippled:
$ yumdownloader --enablerepo=ripple-stable --releasever=el7 rippled
4. Проверяем подпись пакета rippled:
$ sudo rpm --import https://mirrors.ripple.com/rpm/RPM-GPG-KEY-ripple-release && rpm -K rippled*.rpm
5. Устанавливаем пакет rippled:
$ sudo alien -i --scripts rippled*.rpm && rm rippled*.rpm
6. Добавляем rippled service в автозагрузку:
$ sudo systemctl enable rippled.service
7. Запускаем rippled service
$ sudo systemctl start rippled.service
На этом установка самой ноды закончена, теперь мы переходим к конфигурированию и валидации ноды, но перед этим давайте проверим, что наша нода запущена и работает правильно:
$ /opt/ripple/bin/rippled server_info
Теперь поговорим о конфигурации, в целом дефолтный конфиг работоспособен и требует минимальной настройки, самое главное что требуется, это настроить валидацию. Для этого нужно сгенерировать все ключи и прописать их в конфиге.
Валидатор устанавливается в комплекте с пакетом rippled.
Далее пройдёмся по порядку:
1. Генерируем ключ валидации командой create_keys:
В мануале написана команда
$ validator-keys create_keys
но так как у нас не добавлены переменные в PATH, то запускаем мы её следующим образом:
$ /opt/ripple/bin/validator-keys create_keys
все последующие команды буду писать также с запуском по полному пути
После этого мы получаем сгенерированный файл validator-keys.json с ключами, в консоле будет написан его путь, у меня это
/root/user/.ripple/validator-keys.json
Сохраните этот файл на локальный ПК, а ещё лучше на съёмный носитель, в общем в безопасное место.
2. Генерируем токен валидации командой create_token:
$ /opt/ripple/bin/validator-keys create_token --keyfile /root/user/.ripple/validator-keys.json
не забудьте сменить путь до файла validator-keys.json
После чего получим в консоле ответ следующего вида:
3. Редактируем файл rippled.cfg (по дефолту он находится /opt/ripple/rippled.cfg). В самый конец добавляем тот код, который получили в консоле на предыдущем шаге. Сохраняем файл конфига.
4. Перезагружаем ноду:
$ sudo systemctl restart rippled.service
5. Теперь проверим что сделали всё правильно:
$ /opt/ripple/bin/rippled server_info
Значение параметра
server_state
должно быть proposing.Если всё так, то поздравляю, всё сделали правильно!
Теперь нода готова к работе!
Можем попробовать сгенерировать адрес:
1. Генерируем ключ валидации:
$ /opt/ripple/bin/rippled validation_create
Получаем набор ключей, нам из них интересно значение
validation_seed
2. Генерируем адрес:
$ /opt/ripple/bin/rippled wallet_propose <тут значение validation_seed>
Теперь мы получили наш адрес ripple, на который можно переводить крипту. Если же ключ валидации ввели неверно, то получите варнинг об этом.
Если будут какие-то вопросы, буду рад помочь. Также если будет интерес, могу написать о том, как поднять ноду Waves.
Комментарии (13)
Psychosynthesis
30.03.2019 19:00А какие требования там для фуллноды? Вроде бы раньше некую сумму надо было перечислить на адрес ноды или я с другой криптой путаю?
Какой процент от транзакций получается?
Совсем хорошо было бы, если б вы для своих шагов описали бы ошибки, которые могут возникнуть и как их решать.OneFan Автор
30.03.2019 21:24Требования указаны в статье, это как раз и есть фуллнода. На самом деле у рипла фишка, чтобы активировать кошелёк, на него должно упасть как минимум 20xrp, только после этого можно отправлять на кошелёк или с кошелька крипту, также эта сумма является нижним порогом, её вывести нельзя.
По поводу заработка не могу знать, так как на этом не зарабатываем, другая бизнес-модель, тут именно сервис и заработок с него будет.Psychosynthesis
30.03.2019 21:56на него должно упасть как минимум 20xrp, только после этого можно отправлять на кошелёк или с кошелька крипту, также эта сумма является нижним порогом, её вывести нельзя
Ну про требования я как раз это имел ввиду.
А нода как-то участвует в подписании транзакций или получает в свою пользу какую-то мзду за существование?OneFan Автор
30.03.2019 21:58Да, нода подписывает транзакции, также при создании кошельков генерирует все хэши. По поводы мзды не знаю, так как такой задачи не стояло.
lebedinskiy
30.03.2019 21:24Это приносит прибыль?
OneFan Автор
30.03.2019 21:25Возможно это и приносит прибыль, но я не могу ответить на этот вопрос, так как предназначение у ноды иное.
lebedinskiy
31.03.2019 00:08Хотелось бы статью о ноде BTC.
OneFan Автор
31.03.2019 23:46К сожалению ноду BTC поднимали до меня, но на сколько мне известно гемороя отхватили с ней.
dMac
А если не секрет — для чего понадобилось поднимать свой узел сети?
halted
видимо ради % от транзакций
OneFan Автор
Занимаемся разработкой сервиса по криптовалюте. Думаю не так долго уже осталось до запуска, возможно выложу позже статью по тому с чем пришлось столкнуться.
На самом деле помимо Ripple поднято ещё 5 нод (btc, bch, ltc, waves, eth), из них 3 ноды поднимал лично сам, в частности Ripple, Waves, Ethereum, в общей сложности на разбор и поднятие 3-х нод ушло недели 2, так как информации минимум, также приходилось писать к нодам API, для взаимодействия с ними со стороны веба.
Don_Koton
Главный вопрос половины постов на хабре: «А зачем?»