Перевод Kasisto (Казначей)

Тема в разделе "Статьи", создана пользователем MoneroRus, 15 фев 2018.

Метки:
  1. MoneroRus

    Команда форума Модератор Редактор

    Регистрация:
    30 ноя 2017
    Сообщения:
    182
    Симпатии:
    37
    Присоединяйтесь к обсуждению в чате https://gitter.im/amiuhle/kasisto

    Kasisto это платежная система для точек продаж (PoS, Poin of Sale) принимающая в качестве оплаты Monero. Необходимо только подключение к интернету, участие третьей стороны не требуется.

    Чтобы работать быстро(подтверждение за секунды) Kasisto принимает неподтвержденные транзакции.

    Kasisto за 22 секунды (видео)

    Попробуй

    Если в настройках не указан кошелек Kasisto, по умолчанию будет работать с кошельком из тестовой сети, поэтому легко может быть протестирован. Скачайте Monerujo и создайте кошелек для тестовой сети. Имейте ввиду, что вы должны быть подключены к старой v6 тестовой сети, до хардфорка v7 (bulletproof). Можете использовать testnet.kasisto.io в качестве удаленного узла.

    Начало работы

    Kasisto состоит из приложения запущенного на мобильном телефоне или планшете и сервера для прослушивания входящих платежей, к которому подключается приложение.

    Мобильное приложение

    Kasisto реализован в виде Progressive Web App. Предназначен для работы в любом современном мобильном браузере, включая Chrome для Android, Firefox, Safari iOS и Edge. Может быть добавлен на рабочий экран и таким образом запускаться без показа адресной строки браузера.

    Все детали платежа и настройки сохраняются локально в приложении, доступ к серверу осуществляется только в режиме чтения, для получения входящих транзакций.

    Сервер

    Сервер отвечает за связь с сетью Monero и может находиться в вашей локальной сети или где-то на просторе интернета. Ему необходим запущенный Monero демон, кошелек только для просмотра (view-only) и веб-прокси для обработки HTTPS запросов.

    Подробные инструкции по установке описаны в документации. (перевод этой документации ниже)

    Разработка


    Скопировать, установить зависимости и запустить yarn для установки зависимости. ( npm install должно работать отлично).

    Чтобы запустить локальный сервер выполните yarn start.

    Содействие

    Если вы хотите внести вклад в Kasisto, вы можете сделать это любым из следующих способов:
    • Протестировать Kasisto используя его в кафе, баре или магазине. Если у вас возникли сложности с настройкой, откройте запрос (issue) и я помогу!
    • Отправить запрос о любой другой проблеме или отправить исправление\дополнение (pull request)
    • Посмотреть существующие проблемы. Не все они связаны с разработкой, метки help-wanted и research в основном касаются конфигурации\обслуживания и фактических исследований в реальном мире.
    Также вы можете поддержать проект пожертвовав на следующий адрес:
    Код:
    4JkULN8gD1M1hjSJBMgnC8FTKhVgMeYg6dzbqnhmSiERc3M4TUrJZ4nDMet1vCkh98C8nJWFmEMiAaaDRwWehqAJFrzAq1WNEP4SXgbVNX
    Источник

    =======================================​

    Установка сервера

    Сервер состоит из следующих компонентов:
    • Полная нода (monerod)
    • Кошелек только для просмотра (view-only), с доступом через monero-wallet-rpc
    • nginx в качестве обратного прокси (reverse), обслуживающий HTTPS
    Руководство по установке

    Описанное основано на свежем Ubuntu Server 16.04.3 LTS. Достаточно стандартного тарифного плана DigitalOcean за $5 с дополнительным подключенным Volume. Можете использовать реферальную ссылку, чтобы получить первые 10$ бесплатно.

    Установка monero
    Код:
    sudo apt update
    sudo apt upgrade -y
    
    # Скачать Monero
    curl -L https://downloads.getmonero.org/cli/linux64 -o /tmp/monero.tar.bz2
    
    # Сверить checksum. Это для релиза 0.11.1.0
    # Более свежие релизы, смотри тут https://getmonero.org/downloads/#linux
    echo "6581506f8a030d8d50b38744ba7144f2765c9028d18d990beb316e13655ab248 /tmp/monero.tar.bz2" | sha256sum -c
    
    # Распаковать в  /usr/local/bin, кроме папок
    tar -xf /tmp/monero.tar.bz2 -C /usr/local/bin --strip 2
    rm /tmp/monero.tar.bz2
    
    monerod --version
    # => Monero 'Helium Hydra' (v0.11.1.0-release)
    
    # создать отдельного пользователя для запуска Monero демона и кошелька
    sudo adduser monero
    
    # создать папку для кошельков
    su monero
    mkdir /home/monero/wallets
    
    Создать кошелек только для просмотра и загрузить его в /home/monero/wallets.

    Настройка monero сервисов

    Код:
    # установить supervisor
    sudo apt install supervisor -y
    
    # /etc/supervisor/conf.d/monerod.conf
    [program:monerod]
    command=monerod --data-dir /home/monero/.bitmonero
    directory=/home/monero
    autostart=true
    autorestart=true
    user=monero
    stderr_logfile=/var/log/supervisor/monerod.err.log
    stdout_logfile=/var/log/supervisor/monerod.out.log
    
    # /etc/supervisor/conf.d/monero-wallet-rpc.conf
    [program:monero-wallet-rpc]
    command=monero-wallet-rpc --rpc-bind-port 18083 --disable-rpc-login --wallet-file /home/monero/wallets/wallet-name --password ''
    directory=/home/monero
    autostart=true
    autorestart=true
    user=monero
    stderr_logfile=/var/log/supervisor/monero-wallet-rpc.err.log
    stdout_logfile=/var/log/supervisor/monero-wallet-rpc.out.log
    
    # перезапустить supervisor чтобы запустить monerod и monero-wallet-rpc
    sudo service supervisor restart
    
    monerod будет синхронизироваться с сетью, что потребует некоторое время. На DigitalOcean можно ускорить процесс изменив параметры droplet (без изменения дискового пространства). После синхронизации можно вернуть параметры droplet обратно.

    Отслеживать процесс можно через monerod status или просматривая лог-файл.

    Установка nginx обратного прокси с поддержкой TLS

    Вам понадобится SSL сертификат. Можете использовать LetsEncrypt или любой другой. Если используете "самоподписанный" (self-signed ) сертификат, его необходимо импортировать на мобильное устройство, на котором вы используете Kasisto (Android | iOS).
    Код:
    sudo apt install nginx -y
    
    Код:
    server {
      server_name example.com;
    
      listen [::]:18082 ssl;
      listen 18082 ssl;
    
      ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    
      charset UTF-8;
    
      location /json_rpc {
        # Optional HTTP Basic Authentication
        # auth_basic "Restricted";
        # auth_basic_user_file /etc/nginx/.htpasswd;
    
        proxy_http_version 1.1;
        proxy_pass http://127.0.0.1:18083/json_rpc;
    
        add_header Access-Control-Allow-Origin https://amiuhle.github.io always;
        add_header Access-Control-Allow-Methods "POST, GET, OPTIONS" always;
        add_header Access-Control-Allow-Headers "Origin, Authorization, Accept, Content-Type" always;
        add_header Access-Control-Allow-Credentials true always;
    
         if ($request_method = 'OPTIONS') {
           add_header Access-Control-Allow-Origin https://amiuhle.github.io always;
           add_header Access-Control-Allow-Methods "POST, GET, OPTIONS" always;
           add_header Access-Control-Allow-Headers "Origin, Authorization, Accept, Content-Type" always;
           add_header Access-Control-Allow-Credentials true always;
    
           # Сообщить клиенту что эта предварительная информация будет действительна в течении 20 дней.
          add_header 'Access-Control-Max-Age' 1728000;
          add_header 'Content-Type' 'text/plain charset=UTF-8';
          add_header 'Content-Length' 0;
          return 204;
        }
      }
    }
    
    На данный момент поддерживается только HTTP Basic Authentication. Посколько HTTPS необходим пароль будет отправлен по сети в зашифрованном виде.
    Код:
    sudo apt install apache2-utils -y
    
    sudo htpasswd -c /etc/nginx/.htpasswd user1
    
    Введите и подтвертдите пароль и включите аутентификацию раскоментировав две строчки auth_basic в конфигурации nginx

    Источник: Kasisto

    Перевод:
    MoneroRus (@MoneroRus)
    Редактирование:
    Mr. Pickles (@v1docq47)
    Коррекция:
    Kukima (@Kukima)
     
  • О нас

    Наш сайт является одним из уникальных мест, где русскоязычное сообщество Monero может свободно общаться на темы, связанные с этой криптовалютой. Мы стараемся публиковать полезные мануалы и статьи (как собственные, так и переводы с английского) о криптовалюте Monero. Если вы хорошо владеете английским (или можете писать собственные статьи/мануалы) и хотите помочь в переводах и общем развитии Monero для русскоязычной аудитории - свяжитесь с одним из администраторов.