Сегодня расскажу о том, как поднять ноду 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)


  1. dMac
    29.03.2019 23:27

    А если не секрет — для чего понадобилось поднимать свой узел сети?


    1. halted
      30.03.2019 16:08

      видимо ради % от транзакций


    1. OneFan Автор
      30.03.2019 21:21

      Занимаемся разработкой сервиса по криптовалюте. Думаю не так долго уже осталось до запуска, возможно выложу позже статью по тому с чем пришлось столкнуться.
      На самом деле помимо Ripple поднято ещё 5 нод (btc, bch, ltc, waves, eth), из них 3 ноды поднимал лично сам, в частности Ripple, Waves, Ethereum, в общей сложности на разбор и поднятие 3-х нод ушло недели 2, так как информации минимум, также приходилось писать к нодам API, для взаимодействия с ними со стороны веба.


    1. Don_Koton
      31.03.2019 23:45

      Главный вопрос половины постов на хабре: «А зачем?»


  1. Psychosynthesis
    30.03.2019 19:00

    А какие требования там для фуллноды? Вроде бы раньше некую сумму надо было перечислить на адрес ноды или я с другой криптой путаю?

    Какой процент от транзакций получается?

    Совсем хорошо было бы, если б вы для своих шагов описали бы ошибки, которые могут возникнуть и как их решать.


    1. OneFan Автор
      30.03.2019 21:24

      Требования указаны в статье, это как раз и есть фуллнода. На самом деле у рипла фишка, чтобы активировать кошелёк, на него должно упасть как минимум 20xrp, только после этого можно отправлять на кошелёк или с кошелька крипту, также эта сумма является нижним порогом, её вывести нельзя.
      По поводу заработка не могу знать, так как на этом не зарабатываем, другая бизнес-модель, тут именно сервис и заработок с него будет.


      1. Psychosynthesis
        30.03.2019 21:56

        на него должно упасть как минимум 20xrp, только после этого можно отправлять на кошелёк или с кошелька крипту, также эта сумма является нижним порогом, её вывести нельзя
        Ну про требования я как раз это имел ввиду.

        А нода как-то участвует в подписании транзакций или получает в свою пользу какую-то мзду за существование?


        1. OneFan Автор
          30.03.2019 21:58

          Да, нода подписывает транзакции, также при создании кошельков генерирует все хэши. По поводы мзды не знаю, так как такой задачи не стояло.


  1. lebedinskiy
    30.03.2019 21:24

    Это приносит прибыль?


    1. OneFan Автор
      30.03.2019 21:25

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


  1. lebedinskiy
    31.03.2019 00:08

    Хотелось бы статью о ноде BTC.


    1. easmith
      31.03.2019 14:39

      sudo apt install bitcoind


    1. OneFan Автор
      31.03.2019 23:46

      К сожалению ноду BTC поднимали до меня, но на сколько мне известно гемороя отхватили с ней.