ARK Messenger Turtorial - часть перваяПриветствую всех в нашей серии учебных пособий, основанных на докозательстве концепции Proof-of-Concept (PoC) ARK Messenger. К концу этой серии вы сможете настроить свое собственное автономное и приватное приложение для обмена сообщениями. Это учебное пособие было создано частично с документацией, предоставленной делегатом Lemii в рамках его концепции подтверждения ARK Messenger, которая финансировалась Программой грантов ARK.Чтобы сделать процесс разработки максимально простым, мы разделим эти учебные пособия на три основных части:
Часть Первая• Настройка среды разработки
• Создание и развертывание мостовой цепочки локально с пользовательской конфигурацией сети
Часть вторая• Разработка пользовательской транзакции
• Протестируйте пользовательскую транзакцию с локальной мостовой цепочкой
• Разработка клиента
Часть третья• Развернуть мостовую цепочку
• Запустить клиентское приложение
Как работает ARK Messenger?Прежде чем мы углубимся, было бы полезно понять, как работает ARK Messenger!
ARK Messenger состоит из двух основных компонентов: (1)
клиент; и (2)
Мостовая цепочка.
•
Клиент - это интерфейсное приложение, с которым вы взаимодействуете как пользователь. Он обрабатывает все вводимые пользователем данные и обрабатывает все входящие и исходящие данные в сеть.
•
Мостовая цепочка - это блокчейн компонент приложения. Она действует как децентрализованная база данных.
Если вы хотите просмотреть код для обоих компонентов, они перечислены ниже для вашего удобства:
•
Код клиента (Client Codebase) •
Код мостовой цепочки (Bridgechain Codebase)Приложение ARK Messenger работает с каналами. Канал может состоять из любого количества участников. Когда пользователь создает новый канал, генерируется новый идентификатор канала и пароль. Затем пароль можно передать другим пользователям, чтобы они могли присоединиться к каналу и отправлять сообщения.
Сообщения, отправляемые на канал, шифруются и расшифровываются с использованием пароля канала в качестве seed. Все конфиденциальные данные обрабатываются локальным клиентом пользователя, и не зашифрованные данные никогда не передаются. ARK Messenger работает на собственной мостовой цепочке с настраиваемой конфигурацией сети и узла. Он также использует пользовательскую транзакцию, созданную с помощью
универсального интерфейса транзакций (GTI) для обработки сообщений чата.
Попробуйте ARK Messenger на
https://ARKmessenger.ioТеперь, когда у нас есть основа того, что такое ARK Messenger, мы готовы начать. Давайте рассмотрим, как настроить среду разработки.
Настройка среды разработкиДокументация к
Learn ARK - это идеальный способ для разработчиков пройти через процессы настройки среды разработки. Мы рекомендуем операционную систему Linux (
*.deb based) в качестве среды по умолчанию. Мы официально рекомендуем и поддерживаем операционную систему
Ubuntu.
Вы также можете настроить свою среду разработки, используя Docker в
MacOS/Linux Docker или
Docker в Windows.
Шаг 1: Настройка пользователяПосле того, как вы запустили свою среду, используя ссылки выше, мы можем создать нового пользователя "
arc" и добавить его в группу sudoers (разрешив выполнение root, если это необходимо).
Если вы работаете в новом облаке box/vps, например
DigitalOcean, то создайте пользователя с помощью следующих команд:
sudo adduser ark
sudo usermod -aG sudo ark
# login as ark user
sudo su ark
Шаг 2: Установите Систему Управления Версиями GitКак самое популярное программное обеспечение для управления версиями из существующих, оно является основным элементом многих рабочих процессов разработчиков, и ARK не является исключением. Загрузка Git позволит вам клонировать последнюю версию ARKCore. Загрузите его, введя следующую команду:
sudo apt-get install -y git curl apt-transport-https update-notifier
Шаг 3: Установите Node.js RuntimeПоскольку ARK Core написано исключительно на
Node.js , серверной платформе для JavaScript и Typescript, установка Node.js является необходимостью для разработки ядра. Код ниже устанавливает Node.js из исходника.
sudo wget --quiet -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
(echo "deb https://deb.nodesource.com/node_11.x $(lsb_release -s -c) main" | sudo tee /etc/apt/sources.list.d/nodesource.list)
sudo apt-get update
sudo apt-get install nodejs -y
Шаг 4: Установите Yarn Package ManagerYarn - это менеджер пакетов предназначенный для использования опыта npm с Node.js. Хотя yarn не является строгим требованием, во многих случаях он работает быстрее и элегантнее, чем npm. Большинство разработчиков ARK используют yarn, и поэтому вы увидите команды yarn, часто используемые в нашей документации.
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
(echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list)
sudo apt-get update
sudo apt-get install -y yarn
Шаг 5: Установка ЗависимостейЗависимости необходимы для того, чтобы "
core" компилировался, запускался и управлялся во время жизни в вашей среде на базе Linux. Приведенная ниже команда устанавливает некоторые из тех необходимых зависимостей, которые используются ядром или связанными сценариями.
sudo apt-get install build-essential libcairo2-dev pkg-config libtool autoconf automake python libpq-dev jq -y
Шаг 6: клонировать основной репозиторийДавайте клонируем наш "
core" репозиторий и запустим начальную "
yarn setup" команду. Мы также проверим последнюю "
develop" ветку.
Команда "
yarn setup" использует
Lerna для очистки, начальной загрузки и сборки базовых пакетов (включая перенос typescript). Для получения дополнительной информации просмотрите
package.json файл в корневой папке.
git clone https://github.com/arkecosystem/core
cd core
git checkout develop
#run Lerna to clean, bootstrap and build the core packages
yarn setup
Шаг 7: Настройка базы данных разработкиARK Core хранит все данные блокчейна в базе данных
PostgreSQL. У вас есть два варианта настройки базы данных для разработки.
Выполните шаг 7.1, если вы работаете локально на компьютере разработчика и у вас есть среда docker, в противном случае выполните шаг 7.2 (например, если вы работаете в облачном экземпляре Ubuntu или предпочитаете установку собственной базы данных).Шаг 7.1. Настройка базы данных с помощью DockerЕсли вы уже используете
Docker и установили
docker-compose , то вы можете сгенерировать файлы Docker из командной строки с помощью команды "
yarn docker ark" , где
ark – это имя
network , для которой вы хотите создать файлы docker. На данный момент, давайте придерживаться
ark в качестве имени сети по умолчанию.
Выполнение команды "
yarn docker ark" в корневой папке ранее клонированного репозитория выглядит следующим образом:
cd core #root folder of the cloned repository
yarn docker ark
создаст следующие файлы Docker внутри нашей
core/docker папки (см. дерево папок ниже):
#core/docker tree in the cloned repository folder
├── development
│ ├── devnet
│ │ ├── Dockerfile
│ │ ├── docker-compose.yml
│ │ ├── entrypoint.sh
│ │ ├── purge_all.sh
│ │ └── restore.sh
│ ├── mainnet
│ │ └── docker-compose.yml
│ ├── testnet #this is the folder where we will start our PostgreSQL testned DB
│ │ ├── Dockerfile
│ │ ├── docker-compose.yml
│ │ ├── entrypoint.sh
│ │ ├── purge_all.sh
│ │ └── restore.sh
│ └── unitnet
│ ├── docker-compose.yml
│ └── purge.sh
└── production
...
Чтобы запустить Docker-контейнер PostgreSQL, мы должны зайти в соответствующую папку и запустить "
docker-compose" команду. Для testnet нам нужно запустить следующее:
cd core/docker/development/testnet
docker-compose up postgres #postgres is the name of the PostgreSQL container
docker-compose up postgres запустит контейнер PostgresSQL и предоставит его нашему ядру через стандартный порт 5432 PostgreSQL.
Шаг 7.2 Установка базы данных Postgres для всей системыЕсли вы не хотите устанавливать и запускать Docker на своем локальном компьютере, вы все равно можете установить базу данных PostgreSQL в своей операционной системе. Для систем Linux на основе * .deb следующие команды:
sudo apt-get install postgresql postgresql-contrib -y
sudo -i -u postgres psql -c "CREATE USER ark WITH PASSWORD 'password' CREATEDB;"
sudo -i -u postgres psql -c "CREATE DATABASE ark_testnet WITH OWNER ark;"
sudo -i -u postgres psql -c "CREATE DATABASE ark_devnet WITH OWNER ark;"
Приведенные выше команды устанавливают базу данных PostgreSQL локально и создают базы данных для запуска сетей testnet и devnet с пользователем
ark в качестве владельца базы данных . Если вы пропустили Шаг 1: Настройка пользователей, вам нужно изменить имя пользователя
ark на ваше имя пользователя для разработки, обычно это имя пользователя , вошедшего в систему.
Выполните вышеуказанные команды вместе в одном сценарии установкиХотя приведенные выше шаги полезны для ознакомления с ARKCore, некоторые разработчики могут выбрать выполнение вышеперечисленных команд вместе в одном сценарии установки. Сначала создайте пользователя
ARK с паролем по умолчанию
password. Это облегчит нам работу с настройками по умолчанию.
#!/usr/bin/env bash
sudo adduser ark
sudo usermod -aG sudo ark
# login as ark user
sudo su - ark
После создания и входа в систему под
ark пользователем вы можете выполнить следующий сценарий для установки инструментов разработки и зависимостей из
Technology Stack. Если пользователь по умолчанию не является пользователем
ark, вам следует скопировать и изменить источник скрипта ниже (раздел базы данных).
bash <(curl -s https://raw.githubusercontent.com/learn-ark/bash-helper-scripts/master/dev-setup.sh)
После этого:
#!/usr/bin/env bash
sudo apt-get install -y git curl apt-transport-https update-notifier
sudo wget --quiet -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
(echo "deb https://deb.nodesource.com/node_11.x $(lsb_release -s -c) main" | sudo tee /etc/apt/sources.list.d/nodesource.list)
sudo apt-get update
sudo apt-get install nodejs -y
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
(echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list)
sudo apt-get update
sudo apt-get install -y yarn
sudo apt-get install build-essential libcairo2-dev pkg-config libtool autoconf automake python libpq-dev jq -y
sudo apt-get install postgresql postgresql-contrib -y
sudo -i -u postgres psql -c "CREATE USER ark WITH PASSWORD 'password' CREATEDB;"
sudo -i -u postgres psql -c "CREATE DATABASE ark_testnet WITH OWNER ark;"
sudo -i -u postgres psql -c "CREATE DATABASE ark_devnet WITH OWNER ark;"
Создание и развертывание мостовой цепочки локально с пользовательской конфигурацией сетиВ последней части этого руководства мы будем создавать и развертывать мостовую цепочку с пользовательской конфигурацией сети.
Для этого мы будем использовать документацию, найденную в
ARK Deployer Hub. После того, как вы выполните описанные там шаги, вы успешно создадите и развернете свою цепочку мостов.
При использовании bridgechain откроется множество опций для настройки сети. Вот краткое описание некоторых параметров, которые использует ARK Messenger:
Ticker: Պ
Token: MSN
Block time: 4 seconds
Forgers: 11
p2p port: 11002
API port: 11003
Webhook port: 11004Но самое главное, что bridgechain позволяет вам запускать сеть с вашими собственными транзакциями.
Следующие шагиВ следующем части мы рассмотрим разработку пользовательской транзакции, тестирование этой транзакции на нашей мостовой цепочке и разработку клиента, который будет выполнять роль интерфейсного приложения.
Если вы застряли в какой-то точке, обязательно ознакомьтесь с нашими документами в
центре обучения ARK. Кроме того, наша команда и разработчики активны в
Slack, поэтому не стесняйтесь обращаться к нам!
Прочтите нашу новую whitepaper, следите за нами в социальных сетях ( Twitter | Facebook | Reddit ), присоединяйтесь к нашему сообществу ( Slack | Discord ) и следите за обновлениями в нашем блоге на Medium и Steemit.
Перевод.
Оригинал:
https://blog.ark.io/ark-messenger-tutorial-part-one-30068eb8619e