Установка OpenBazaar server

Нашел на просторах интернета забавную технологию: приложение распределенной торговой площадки со встроенным магазином и интеграцией биткоина OpenBazaar. Подробнее о том, что из себя представляет эта платформа можно узнать из официальной документации. Фактически позволяет имея компьютер и выход в интернет заниматься электронной коммерцией без необходимости сложной настройки ПО для работы магазина. О том как настроить публичный узел для этой технологии и будет дальнейшая статья.

Для начала необходимо найти сервер для этих целей. Энтузиасты используют все что угодно для этого, вплоть до Raspberry Pi. Мы не будет так извращаться и возьмем обычный VPS. Какую технологию виртуализации использовать — не важно, исходный код платформы поставляется для разных применений вплоть до использования внутри docker или snap-пакетов. Рассмотрим случай когда запуск производится на обычном VPS на базе LXC в стандартном пользовательском окружении. ОС будет — Ubuntu 16.04 как текущий стабильный релиз. После разворачивания ОС обновляем ее и устанавливаем интерпретатор\компилятор языка Go и дополнительные утилиты для получения исходного кода как сказано в документации.

sudo apt-get update
sudo apt-get install build-essential git -y
wget https://storage.googleapis.com/golang/go1.9.1.linux-amd64.tar.gz
sudo tar -zxvf go1.9.1.linux-amd64.tar.gz -C /usr/local/

Почему Go ставится не из репозитория? Потому что в репозитории Ubuntu 16.04 устаревшая версия 1.6, а для работы OpenBazaar требуется версия не ниже 1.9.x. После установки интерпретатора настраиваем окружение для работы Go:

mkdir -p ~/go
echo "export GOPATH=$HOME/go" >> ~/.profile
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.profile

Затем перечитываем .profile

source ~/.profile

Далее ставим сам сервер:

go get github.com/OpenBazaar/openbazaar-go

Для компиляции исполняемого файла достаточно сделать первичный запуск прямо из исходного кода:

cd $GOPATH/src/github.com/OpenBazaar/openbazaar-go
go run openbazaard.go start -t

Параметр -t запустит сервер в режиме подключения к тестовой сети. Все необходимые действия по настройке сервера до реального применения лучше делать на тестовой сети. Если мы все сделали правильно, мы должны увидеть вот такое приветствие:

________                      __________
\_____  \ ______   ____   ____\______   \_____  _____________  _____ _______
 /   |   \\____ \_/ __ \ /    \|    |  _/\__  \ \___   /\__  \ \__  \\_  __ \ 
/    |    \  |_> >  ___/|   |  \    |   \ / __ \_/    /  / __ \_/ __ \|  | \/
\_______  /   __/ \___  >___|  /______  /(____  /_____ \(____  (____  /__|
        \/|__|        \/     \/       \/      \/      \/     \/     \/

OpenBazaar Server v0.10.0
[Press Ctrl+C to exit]

Жмем Ctrl+C и переходим к конфигурированию сервера. После первого запуска мы получим исполняемый файл сервера по пути $HOME/go/bin/openbazaar-go Для дальнейшей работы достаточно запустить его. Дальнейшую настройку будем делать уже для подключения к реальной сети OpenBazaar.

Для начала инициализируем новое хранилище данных:

~/go/bin/openbazaar-go init -d=/path/to/data

И по пути /path/to/data получим набор необходимых для работы торговой площадки файлов. Нам нужен файл config в котором нужно сделать некоторые изменения. Это файл в формате JSON, так что с синтаксисом все понятно. Необходимо разрешить доступ к серверу извне, для чего поправим строку «Gateway» в разделе

  "Addresses": {
    "API": "",
    "Announce": null,
    "Gateway": "/ip4/127.0.0.1/tcp/4002",
    "NoAnnounce": null,
    "Swarm": [
      "/ip4/0.0.0.0/tcp/4001",
      "/ip6/::/tcp/4001",
      "/ip4/0.0.0.0/tcp/9005/ws",
      "/ip6/::/tcp/9005/ws"
    ]
  },

c «Gateway»: «/ip4/127.0.0.1/tcp/4002» на «Gateway»: «/ip4/0.0.0.0/tcp/4002» чтобы публичный шлюз сервера слушал внешний адрес вашего сервера.

Далее в разделе

  "JSON-API": {
    "AllowedIPs": [],
    "Authenticated": false,
    "CORS": null,
    "Enabled": true,
    "HTTPHeaders": null,
    "Password": "",
    "SSL": false,
    "SSLCert": "",
    "SSLKey": "",
    "Username": ""
  },

Правим «Authenticated» на true, в «Username» указываем в кавычках того пользователя с помощью которого будет входить в личный «магазин», в качестве пароля нужно указать строку в формате hex-sha256. Ее можно получить запустив команду

echo -n "Yor$3cr3tPass" | sha256sum

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

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

sudo apt-get install supervisor -y

правим конфигурационный файл /etc/supervisor/conf.d/openbazaar.conf добавив туда такое содержимое:

[program:openbazaar-go]
command=/home/openbazaar/go/bin/openbazaar-go start -d=/home/openbazaar/path/to/data
directory=/home/openbazaar/
autostart=true
exitcodes=0,1
stopsignal=INT
stdout_logfile=/home/openbazaar/openbazaar.log
environment=HOME="/home/openbazaar"
user=openbazaar

После чего с помощью supervisorctl стартуем сервис:

supervisorctl start openbazaar-go

Все. Далее берем официальный клиент для вашей ОС и устанавливаем его. Далее подключаемся к серверу. При подключении проверьте, что у вас открыт порт TCP/4002 (это порт по-умолчанию по которому сервер общается с клиентом).

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.