Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
goloscore
5 лет назад

Новости Golos•Core. Testnet: Экспериментальная версия

Знакомство с тестнетом

Команда GolosCore информирует пользователей о создании экспериментальной версии тестнета для платформы Cyberway и смарт-контрактов прототипа приложения Голос. Запуск тестнета является первым, но важным шагом на пути к созданию рабочей версии платформы Cyberway.
Для знакомства с тестнетом пользователям открыты доступы к блокчейну Cyberway с возможностью отправлять свои транзакции и к базе данных (на чтение), которая хранит состояние блокчейна.

Отправка транзакции в блокчейн

Для удобства отправки транзакций в блокчейн можно воспользоваться скриптом, написанным на языке Python, который выполняет типовые действия блокчейна и смарт-контрактов Голоса. Для работы с данным скриптом требуется установленный интерпретатор языка Python и утилиты cleos и keosd. Адрес утилиты cleos задается в переменной cleos_path, пароль для хранилища личных ключей задается в переменной wallet_password.

Скрипт доступен по адресу: https://github.com/GolosChain/golos-smart/blob/master/scripts/testnet.py.
Блокчейн доступен по адресу: http://cyberway-mongodb.golos.io:8888.

Утилиты cleos и keosd, собраны из репозитория https://github.com/GolosChain/cyberway.git. Вызов данных утилит аналогичен их вызову в EOS.

База данных состояния блокчейна

Состояние блокчейна сохраняется в базе данных MongoDB. Пользователь может подключиться к базе данных по адресу mongodb://readuser@cyberway-mongodb.golos.io:27017/admin. Пароль для пользователя c именем readuser: «12345».
Для работы блокчейн создает одну системную базу данных с именем _CYBERWAY_, а также отдельную базу данных для каждого смарт-контракта. Имена баз данных для смарт-контрактов формируются добавлением префикса _CYBERWAY_ к его имени слева и заменой символа «.» на «-». Например, для смарт-контракта gls.publish база данных будет называться _CYBERWAY_gls-publish. Получить список баз данных, доступных пользователю с именем readuser, можно с помощью команды db.getUser(“readuser”) для базы данных admin, выполненной в клиенте mongo.

Наполнение таблиц

При запуске тестнета было выполнено первичное наполнение данными из блокчейна Голос, в том числе были перенесены следующие данные:

  • Аккаунты пользователей. Были перенесены те аккаунты, имена которых соответствуют правилам формирования имени в EOS (не более 13 символов, допустимые символы «.1-5a-z», для 13 символа допустимо использование только «.1-5a-j»). На текущий момент команда GolosCore решает задачу переноса всех аккаунтов из блокчейна Голос на новую платформу. Данная информация хранится в системной базе данных _CYBERWAY_.
  • Ключи пользователей. Для каждого пользователя были перенесены его публичные ключи owner, active и posting из блокчейна Голос. Формат ключей новой платформы соответствует ключам платформы Голос. Пользователи могут использовать свои личные ключи для выполнения действий в тестнете от своего имени. Данная информация хранится в системной базе данных CYBERWAY.
  • Балансы пользователей. Для каждого пользователя была перенесена информация о находящихся на его балансах голосах (GOLOS) и вестингах (GESTS). При этом баланс в голосах был перенесен в токен GLS системного контракта eosio.token, а вестинг — в вестинг GLS контракта gls.vesting.
  • Делегаты и голоса за них. Была перенесена информация о том, какие пользователи являются делегатами сообщества, а также данные голосования за них. На основе этой информацией был сформирован набор делегатов, подпись которых требуется для выполнения действий по управлению сообществом.
  • Посты, комментарии и голоса за них. Были перенесены все посты и комментарии вместе с их голосами тех пользователей, аккаунты которых были также перенесены. Если комментарий относился к посту или комментарию, который не был перенесен, то он был преобразован в пост.

Смарт-контракты

При запуске тестнета были загружены следующие смарт-контракты:

Системные смарт-контракты:

  • eosio. Была загружена базовая версия системного контракта (eosio.bios); В перспективе она будет заменена на расширенную версию (eosio.system);.
  • eosio.token. Соответствует контракту платформы EOS;
  • eosio.msig. Соответствует контракту платформы EOS.

Golos:

  • gls.ctrl (golos.ctrl). Смарт-контракт, предоставляющий функционал по выбору делегатов сообщества и реализующий процедуру предоставления группе делегатов полномочий по управлению сообществом. Для использования полномочий требуется подпись от определенного количества делегатов, имеющих большинство голосов. В тестнете такими полномочиями наделяется группа из пяти делегатов;
  • gls.emit (golos.emit). Смарт-контракт, периодически генерирующий токены сообщества и распределяющий их в пулы для вознаграждения;
  • gls.vesting (golos.vesting). Смарт-контракт вестинга сообщества;
  • gls.publish (golos.publication). Смарт-контракт публикаций. Отвечает за размещение постов и комментариев, а также за голосование пользователей за них.

Доступные операции:

Приведенные ниже операции выполняются вызовом команд в интерактивном режиме интерпретатора Python. При этом предполагается, что перед выполнением описанных ниже операций скрипт testnet.py должен быть подключен командой from testnet import *. Для отдельных операций необходима подпись от системного аккаунта eosio, а также импортирование личных ключей. Это обеспечивается вызовом функции importRootKeys(). Удалять ключи из хранилища можно вызовом функции removeRootKeys(). Это временное решение и реализовано исключительно для демонстрации работы тестнета. При запуске майннета пользователям какие-либо другие личные ключи, за исключением сгенерированных ими, не потребуются.

В перечень доступных операций входят следующие:

Создать пользователя. Выполняется функцией createAccount(“eosio”, <account>, <public_key>). Создается системный аккаунт на платформе Cyberway;
Вступить в сообщество Golos. Для этого необходимо открыть баланс вестинга, принадлежащего сообществу: openVestingBalance(<account>);
Работа с токеном/вестингом, в том числе:

  • Получить токены: issueToken(<account>, <amount>). При этом держателем токена выпускаются новые токены и перечисляются на счет пользователя. Количество токенов (параметр < amount>) указывается в формате «1.000 GLS»;
  • Купить вестинг: buyVesting(<account>, < amount>). При этом выполняется операция выпуска новых токенов и покупка на указанную сумму вестинга. Количество токенов (параметр < amount>) задается в формате «1.000 GLS»;
  • Зарегистрировать делегата: registerWitness(<witness>, <public_key>, <url>). Зарегистрировать пользователя как делегата;
  • Проголосовать за делегата: voteWitness(<voter>, <witness>, < weight>). Вес голоса (параметр < weight>) указывается в процентах, умноженных на 100 (значение от 1 до 10000), в данный момент этот параметр не используется.

Работа с постами, в том числе:

  • разместить пост: createPost(<author>, <permlink>, <category>, <header>, <body>);
  • разместить комментарий: createComment(<author>, <permlink>, <parent_author>, <parent_permlink>, <header>, <body>);
  • проголосовать за пост/комментарий: upvotePost(<voter>, <author>, <permlink>, <weight>) или downvotePost(<voter>, <author>, <permlink>, <weight>). Вес голоса (параметр < weight>) задается в процентах, умноженных на 100 (принимает значение от 1 до 10000);
  • отменить голос за пост/комментарий: unvotePost(<voter>, <author>, <permlink>);
  • закрытие поста происходит автоматически по истечении 15 минут. Голосование с положительным весом запрещено за 1 минуту до закрытия поста.

Примечание:

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

18
41.932 GOLOS
На Golos с August 2017
Комментарии (15)
Сортировать по:
Сначала старые