Репозиторий содержит конфигурацию для запуска блокчейн-ноды на любой системе для просмотра результатов опросов на сайте Активный гражданин
Установка на Windows
- Скачать и установить Parity
- Найти папку, куда установилась программа
parity.exe
(обычноC:\Program Files\Parity\Parity
) и перейти в нее - Открыть ссылку и сохранить файл (
Ctrl+S
) в папку из предыдущего пункта - Открыть командную строку (нажать
Windows+R
и напечататьcmd
, нажатьВыполнить
) - Перейти в папку с
parity.exe
командойcd C:\Program Files\Parity\Parity
- В командной строке выполнить
parity ui --bootnodes enode://9076c143a487aa163437a86f7d009f257f405c50bb2316800b9c9cc40e5a38fef5b414a47636ec38fdabc8a1872b563effa8574a7f8f85dc6bde465c368f1bf5@213.79.88.177:30303 --chain chain.json
- Откроется веб-интерфейс, дальше выполнить пункты из
Инструкция по просмотру результатов опросов
Установка на MacOS
- Открыть терминал и выполнить
brew tap paritytech/paritytech
а затемbrew install parity --stable
- Открыть ссылку и сохранить файл (
Ctrl+S
) в произвольную папку - Перейти в папку в терминале
- Выполнить
parity ui --bootnodes enode://9076c143a487aa163437a86f7d009f257f405c50bb2316800b9c9cc40e5a38fef5b414a47636ec38fdabc8a1872b563effa8574a7f8f85dc6bde465c368f1bf5@213.79.88.177:30303 --chain chain.json
- Откроется веб-интерфейс, дальше выполнить пункты из
Инструкция по просмотру результатов опросов
Установка в Docker (любая ОС)
Предварительно выполнить
- Установить и запустить 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
- Запускаем parity командой
docker-compose up -d
- Выполняем
docker-compose logs | grep token=
и копируем токен (идет послеtoken=
примерно такойQ7J9-ofgq-EEJU-9nVt
) для авторизации в Parity UI - Нода запущена, должна пойти ее синхронизация с блокчейном.
- Далее можно зайти в ее веб-интерфейс и выолнить его настройку для просмотра результатов опросов (Система запросит токен, вводим полученный предыдущей командой, вводим его)
Используя Parity UI, можно узнать общую статистику по конкретному опросу, а также как голосовал конкретный пользователь (по его личному UID). Для этого выполняем следующие действия:
- Принимаем условия лицензионного соглашения, а также создаем аккаунт в системе (логин и пароль - произвольные)
- Переходим в раздел Settings и включаем галочку напротив пункта
Contracts
- Переходим в раздел Status. Должна идти синхронизация блоков (число напротив надписи
Best block
растет быстрее чем на единицу в секунду). Второе число вPeers
должно быть больше 0 (если синхронизация работает корректно)! - Дожидаемся окончания синхронизации надпись
Chain synchronized (yes)
- Переходим в раздел 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