Репозиторий содержит конфигурацию для запуска блокчейн-ноды на любой системе для просмотра результатов опросов на сайте Активный гражданин
!!! ВАЖНО: Данная инструкция предназначена для продвинутых пользователей ПК, обладающих знаниями английского языка и базовым пониманием принципов работы технологии блокчейн.
Установка возможна только на компьютер от имени пользователя, имеющего в системе права локального администратора.
- Скачать и установить специально собранный дистрибутив Parity. (Версия продукта подходит только для 64-х разрядных операционных систем).
- В случае успешной установки на рабочем столе появится иконка
Активный гражданин
, кликнуть ее. Откроется приложение Parity UI, а также системная консоль, в ней отобразится синхронизация блокчейна (появятся фразы видаImported #3461 d75f…27e3 (0 txs, 0.00 Mgas, 0.86 ms, 0.57 KiB)
) - Откроется веб-интерфейс
Parity UI
, дальнейшие действия описаны в разделе Инструкция по просмотру результатов опросов
ВАЖНО: Синхронизация данных блокчейн происходит только когда открыта командная строка Windows. При закрытии командной строки работа приложения прекращается, для возобновления нужно снова запустить его.
Откройте системный терминал и запустите команду
wget -O - https://raw.githubusercontent.com/moscow-technologies/ag-blockchain/master/install/run_macosx.sh | bash
- В процессе установки потребуется ввести пароль от учетной записи пользователя
- В случае успешной установки в консоли отобразится процесс синхронизации блокчейна (появятся фразы вида
Imported #3461 d75f…27e3 (0 txs, 0.00 Mgas, 0.86 ms, 0.57 KiB)
) - Откроется приложение
Parity UI
, введите токен авторизации (его можно найти в консоли под фразойOr use the generated token:
), дальнейшие действия описаны в разделе Инструкция по просмотру результатов опросов
ВАЖНО! Во время установки приложения через терминал, обратите внимания на указания, выдаваемые терминалом, например: необходимость обновить версию самого терминала и т.п.
Предварительно выполнить
- Установить и запустить Docker (все необходимые требования и инструкции по установке есть на указанном сайте)
- Установить git (Git for Windows, Git for Linux) для того, чтобы скачать необходимую для блокчейн конфигурацию из репозитория.
Выполняем следующие команды в bash (для Linux и MacOS) или powershell (для Windows, от имени администратора):
- Скачиваем конфигурацию из репозитория
git clone https://github.com/moscow-technologies/ag-blockchain.git
- Переходим в каталог с конфигурацией
cd ag-blockchain/install
- Запускаем parity командой
docker-compose up -d
- Выполняем
docker-compose logs | grep token=
и копируем токен (идет послеtoken=
примерно такойQ7J9-ofgq-EEJU-9nVt
) для авторизации вParity UI
- Нода запущена, должна пойти ее синхронизация с блокчейном.
- Отдельно устанавливаем приложение
Parity UI
и переходим к просмотру результатов
Используя Parity UI, можно узнать общую статистику по конкретному опросу, а также как голосовал конкретный пользователь (по его личному UID). Для этого выполняем следующие действия:
- В
Parity UI
принимаем условия лицензионного соглашения - Убедиться, что в правом верхнем растет количество скачанных блоков - это свидетельствует о том, что подключение к нужному блокчейн прошло успешно.
- Дождаться полной синхронизации блокчейна (должна исчезнуть надпись
Your node is still syncing, the values you see might be outdated. Wait until it's fully synced.
на красном фоне) - Перейти в раздел
Parity Wallet
- Переходим в раздел
Settings
и включаем галочку напротив пунктаContracts
- Переходим в раздел
Contracts
- Для просмотра адресов смарт-контрактов опросов в блокчейн необходимо добавить в просмотр корневой контракт.
- Нажимаем
Watch
, появляется мастер, в нем на первом шаге жмемNext
- На втором шаге в поле
network address
вводдим значение0xFDb76DaAF371bf5C7122f6f1104458440454FBB1
, в полеcontract name
пишемКаталог опросов
, в полеcontract abi
- содержимое файлаconracts/Root.abi
данного репозитория (Ссылка) и нажимаемAdd contract
- Заходим в разделе
Contracts
вКаталог опросов
и в поле под надписью getAddress вставляем идентификатор опроса на АГ (виден в адресной строке после перехода к опросу), жмемQuery
. Получаем адрес смарт-контракта с соответствующим опросом, копируем его в буфер обмена - Возвращаемся в раздел
Contracts
, добавляем в просмотр смарт-контракт опроса: нажимаемWatch
,Next
, дальше в полеnetwork address
- адрес из буфера обмена,contract name
- будущее название контракта в списке (напримерОпрос 3196
),contract abi
- сожержимое файлаcontracts/Poll.abi
из репозитория (Ссылка), нажимаемAddContract
- Заходим в раздел
Contracts
в просмотр смарт-контрактаОпрос 3196
. Здесь хранится соответствие идентификатора вопроса на АГ и адреса смарт-контрактов вопросов (разделыQuestionIds
иQuestionsAddress
), копируем адрес. Аналогично, необходимо копировать адреса смарт-контрактов и добавлять в разделеContracts
-Watch
смарт-контракты, хранящие описание, ответы и результаты голосования по конкретному вопросу опроса. В первое поле вставляем адрес, во второе - название (напримерОпрос 3195 Вопрос1
), в полеcontract abi
- содержимое файлаcontracts/PollQuestion.abi
из репозитория (Ссылка). НажимаемAddContract
- Переходим в просмотр вопроса и видим содержимое блокчейн
- Идентификатор
QuestionId
- Заголовок вопроса
CurrentVersionTitle
- Количество проголосовавших
VoterCount
- Идентификаторы версий опроса
AllExistingVersions
(каждое изменение опроса ведет к созданию версии, голоса по разным версия считаются отдельно) - Идентификатор текущей версии
CurrentVersion
- Количество голосов за каждый из ответов в списке
CurrentVersionResults
(в порядке из идентификаторов, совпадает с порядком на сайте АГ) - Запрос
_versions
c указанием идентификатора версии возвращает название вопроса и список ответов с идентификаторами (формат JSON) в указанной версии - Запрос
AnswerIdsByVersion
c указанием идентификатора версии возвращает список идентификаторов ответов с портала АГ в указанной версии - Запрос
AnswersByVersion
c указанием идентификатора версии возвращает список ответов с идентификаторами (формат JSON) в указанной версии - Запрос
ResultsByVersion
c указанием идентификатора версии возвращает количество голосов за каждый из ответов в указанной версии - Запрос
VoteOfUser
с указанием UID пользователя на сайте АГ возвращает номер ответа, за который голосовал пользовательresult
, и хэш ответа, если пользователь вводил текст ответа -value1
,value2