Golos.io: Адаптация к блокчейну CyberWay


Друзья, переезд на новый блокчейн уже не за горами, и мы готовы поделиться первыми итогами проделанной в этом направлении работы.

1. Новый репозиторий для Golos.io

Сейчас адаптируем клиент для CyberWay. На данный момент готовы:

  • отображение лент «Новое», «Актуальное» и «Популярное»;
  • отображение 3-х режимов отображения лент: обычный, сетка, компактный.
  • отображение поста и комментариев к нему;
  • отображение лент «Блог» и «Комментарии» в профиле пользователя;
  • отображение счетчика комментариев к посту;
  • отображение потенциальной награды (пока в rshares);
  • авторизация;
  • возможность отправить пост и комментарий;
  • возможность поставить лайк/дизлайк;
  • возможность подписаться/отписаться на пользователя;
  • возможность редактирования данных пользователя и настроек;

Осуществили переход на фреймворк Next.js.

2. Библиотеки

Форк eosjs – API Javascript для интеграции с новым блокчейном.
Адаптировали под СyberWay.

JS библиотека представляет из себя обертку над cyber-js. Позволяет взаимодействовать со смарт-контрактами без необходимости погружаться в работу с cyber-js.

Реализовали работу со следующими контрактами:

  • ctrl - делегаты и голосование за них;
  • cyber - работа с аккаунтом и деплой контрактов;
  • cyber.token - работа с токеном;
  • emit - эмитирование токенов;
  • publish - работа с постами и комментариями, голосование;
  • social - фолловинг, блокировка, мета-данные;
  • vesting - работа с вестингом.

Документацию еще пишем.

Swift Библиотека – инструмент для взаимодействия со смарт-контрактами и сервисами.

Сделали «режим чтения». Уже можно получать:

  • ленты «Актуальное», «Популярное», «Новое»;
  • пост и комментарии к нему;
  • комментарии, написанные пользователем;
  • профиль пользователя.

Помимо этого, с помощью данного сервиса можно пройти авторизацию.
В ближайшее время мы добавим методы для работы со смарт-контрактами.

Java (Kotlin) Библиотека – инструмент взаимодействия со смарт-контрактами и сервисами для Android приложения.

Реализовали:

  • создание пользователя;
  • эмитирование токенов, их перевод другому пользователю;
  • работу с постами и комментариями, голосование;
  • фолловинг, блокировку, мета-данные пользователя;
  • работу с вестингом;
  • интеграцию с сервисами Сyberway - соединение, авторизация;
  • получение лент комьюнити, пользователя, подписок;
  • получение комментариев к посту, комментариев пользователя;
  • документацию к библиотеке.

Core-service – мощный инструмент, на основе которого построена большая часть наших сервисов. При помощи данной библиотеки любой разработчик может написать свой сервис для работы с данными СyberWay.

Реализовали и адаптировали к новому блокчейну следующие функции:

  • легкий фреймворк для создания типового микросервиса;
  • возможность подписаться на блоки блокчейна CyberWay;
  • утилиты для работы с базами данных;
  • утилиты для построения сетевого общения между микросервисами;
  • мониторинг работоспособности микросервиса;
  • утилиты тестирования сокет-соединений;
  • утилиты работы с контентом;
  • и многое другое.

3. Сервисы

Адаптировали к работе с СyberWay большую часть сервисов Golos.io.

Facade-service в нашей инфраструктуре представляет из себя роутер клиентских запросов. Он готов для взаимодействия с обновленным API CyberWay и прочими сервисами.
Детальное описание реализованных методов можно найти в документации.

Bandwidth-service предназначен для выполнения рутинных операций пользователями с нулевым балансом. Позволяет значительно снизить затраты на регистрацию (так как теперь не обязательно открывать CPU и Network bandwidth). Еще bandwidth provider дает возможность таким пользователям публиковать посты, комментарии и участвовать в голосовании.

Gate-service – сервис обмена данными между frontend и микросервисами Golos.io. Обновлен для использования с новым API.

Prism-service – новая сущность в нашей сервисной инфраструктуре, является заменой seed ноды для приложения Golos. Данное решение более гибкое, чем seed ноды голоса, сейчас это:

  • хранилище постов;
  • хранилище профилей пользователей;
  • построение лент (плюс кеширование);
  • расчет предварительных выплат;
  • API для получения данных.

С помощью prism-service мы планируем реализовать полнотекстовый поиск по всей базе постов, а также гибкий и удобный поиск по тегам.

Registration-service – cервис для регистрирации пользователей в сети СyberWay.Реализован на основе аналогичного сервиса для блокчейна Golos.
Backend протестировали, занимаемся адаптацией frontend. Также немного улучшили производительность и исправление ошибок.

Notify-service – сервис рассылки уведомлений.
Переделали для работы с СyberWay. Помимо нового формата данных, который сервис способен принимать от блокчейна (в том числе и нового подписчика на блоки), он получил расширение в данных, отправляющихся клиенту. Благодаря интеграции с сервисом-призмой и новым блокчейном, notify-service возвращает дополнительные данные (например, аватар пользователя, поставившего лайк публикации), что значительно увеличивает скорость загрузки сайта и уменьшает нагрузку на клиент.

Auth-service – новый метод авторизации, который мы разработали и вынесли в отдельный сервис.
Теперь вместо того, чтобы создавать «фейковую» транзакцию и записывать ее в цепочку, клиент получает уникальный секрет для устройства и подписывает его своим ключом, а затем отправляет сервису. Сервис проверяет правильность подписанного секрета и сравнивает публичные ключи из подписи и из блокчейна для данного пользователя.
Таким образом, повысили:

  • производительность и скорость авторизации, так как выделили ее в отдельный сервис и снизили нагрузку на блокчейн;
  • безопасность, за счет увеличения криптографической сложности.

Документацию по работе со всеми сервисами можно посмотреть здесь.

4. Тестирование

Покрыли автотестами следующие смарт-контракты и сервисы:

  • создание пользователя;
  • эмитирование токенов, их перевод другому пользователю;
  • работу с постами и комментариями, голосование;
  • фолловинг, блокировку, мета-данные пользователя;
  • работу с вестингом;
  • интеграцию с сервисами Сyberway - соединение, авторизация;
  • получение лент комьюнити, пользователя, подписок;
  • получение комментариев к посту, комментариев пользователя;
  • registration-service;
  • auth-service;
  • prism-service.

Итого, к настоящему моменту мы завершили 70% работы, необходимой для полноценного функционирования клиента Golos.io на блокчейне CyberWay.
В течение этой недели планируем выпустить все репозитории в публичный доступ.

Друзья, тестнет Golos.io на CyberWay будет развернут в ближайшее время, о чем мы обязательно вам сообщим, и расскажем что к чему.

Иллюстрация к посту – yandex.ru.


Подписывайтесь на официальный аккаунт блог-платформы Golos.io @golosio, чтобы быть в курсе развития проекта! Телеграм для ваших вопросов — https://t.me/golos_support.
Есть предложения, как сделать Golos.io лучше? Пишите в Issues на нашем Github, в наш Телеграм-канал или в чат разработчиков Golos.io в Телеграм!

С уважением, команда Golos.io @golosio: @azarod, @bacher, @b1acksun, @chinpu, @dan-kinescop, @des432, @devall, @format-x22, @insider, @ivan-blacky, @kucinskaya.alla, @machtfrei, @muhazokotuha, @msm72, @nickshtefan, @yulia.rodnikova, @yuri-vlad.


Comments 49


А когда вы переезжаете?

27.03.2019 07:49
0

Core-service
Это собственная имплементация https://github.com/EOSIO/demux-js ?

27.03.2019 07:51
0

@vik Нет, это совсем другое.

27.03.2019 08:07
0

Друзья, переезд на новый блокчейн уже не за горами,

<Примерные сроки напомните пожалуйста. Очевидно, что точной даты перехода нет, и примерные сроки всегда могут измениться - так назовите их поэтому, сейчас.
Для определенности. ) Если вам не трудно)

27.03.2019 08:05
0

@irkinmick, апрель-май, вероятнее всего, если все идет по плану...

28.03.2019 13:26
0

@marina

апрель-май, вероятнее всего, если все идет по плану...

Это уже несколько определенней! Обожаю определенность!
....
Спасибо! :)

28.03.2019 13:51
0

Скажите, пожалуйста, где вы брали документацию для работы по адаптации клиента для CyberWay? Где то секретное место, в котором она лежит?)

Я вот об этом:

marina
9 дней назад
@anela, инструкция для разработчиков приложений для CyberWay сейчас в работе. Мы отлично понимаем необходимость и важность ее выпуска...

27.03.2019 08:18
0

@anela Мы сами эту документацию и пишем, если речь идет о документации работы с сервисами :)
Она сейчас не находится в полностью готовом состоянии, но ее уже можно смотреть и пользоваться ей, о чем было написано в посте. Вот еще раз ссылка :)

27.03.2019 08:48
0

@ivan-blacky не сочтите за труд, ткните меня носом туда, где описана структура mongodb cyberway...

27.03.2019 09:20
0

@anela, это вопрос к команде goloscore.
Как раз сегодня обсуждали в https://t.me/goloscoretc

27.03.2019 09:33
0

@yulia.rodnikova спасибо)

27.03.2019 09:47
0

А ползунок там тоже будет постоянно пропадать и непредсказуемо будут появляться фиксированные 75% кураторских?
Уже полторы недели длится это безобразие, а вы молчите.
Неужели сложно выпустить пост с объяснением происходящего, чтобы многие с удивлением не обнаруживали перед выплатами у себя на постах 75%, а были внимательными перед выпуском?
Сама ситуация и ваше молчание по данному вопросу выглядят странно.

27.03.2019 08:45
0

@anjar одни делегаты выставили одну планку кураторских наград. Другие выставили другую.
Каков кураторский процент зависит от того, какой последний депутат подписывал блок.
Если хотите знать текущий процент, воспользуйтесь телеграм-ботом @golos_info50_bot

27.03.2019 22:17
0

@virt, это всё понятно, и где смотреть - много разных способов, вопрос не в этом, а в том, что такая ситуация ненормальная, вроде же совсем недавно договорились, что работает ползунок и каждый ставит то, что считает для себя приемлемым, и вдруг опять всё поломали.

27.03.2019 22:50
0

@anjar, да, такая ситуация сложилась в связи с тем, что у делегатов нет единого мнения на счет процента кураторских. Ситуация ненормальная. Но команда Golos.io не может повлиять на это, поэтому вопрос скорее не к нам.

28.03.2019 09:18
0

@yulia.rodnikova, спасибо, что ответили.
Мне кажется, что пост, с объяснением ситуации и заявлением вашей позиции, был бы очень уместен. Ведь последний раз, когда писали о проценте кураторских, речь шла о ползунке и общей договорённости. И вообще не было речи о том, что возможна ситуация, когда кто-то будет перебивать возможность свободного выбора навязыванием своего процента.
На мой взгляд стоит сказать вслух, что некоторые делегаты навязывают всем остальным своё мнение в ситуации, когда нет уже проблем поставить высокий кураторский процент, если есть такое желание. Я вижу в такой позиции части делегатов вредительство и злоупотребление своими полномочиями, и, по большому счёту, самодурство, учитывая, что работает ползунок.
Спасибо.

28.03.2019 09:39
0

@anjar, да, после появления ползунка выбора % кураторских при публикации с golos.io и исправления бага многие делегаты так и не вернули "возможность выбора" авторам. Жаль, но это выбор каждого из них (а значит и тех пользователей из сообщества, кто продолжает поддерживать таких делегатов).

28.03.2019 20:39
0

@lex С кого из ТОП нужно снять?

29.03.2019 06:35
0

@stepanov, % выст. делегатами удобно смотреть тут https://golos.arcange.eu/witnesses/

2019-03-29-134140.jpg

29.03.2019 10:42
0

@lex, чувство, что пользоввтели сильно изменились с декабря 2018, когда были впервые введёны фиксированные 75. Или самые неравнодушные ушли(а ушло немало, и уходит), или в преддверии переезда никто уже не обращает внимание на такие "мелочи", под шумок ситуацией и воспользовались.

29.03.2019 06:49
0

@yulia.rodnikova Может! Если распределение наград становится фиксированной величиной, то вместо ползунка можно указывать фиксированный процент. Сейчас, если распределение становится фиксированным, автор перед публикацией играет в рулетку и даже не знает на каком уровне фиксирован данный процент.

29.03.2019 06:34
0

@stepanov, там проблемка в том, что открывая форму и выбирая % кураторских подавляющее большинство авторов считает что всё ok, на самом же деле процент устанавливается лишь в момент нажатия кнопки "опубликовать" (отправки в блокчейн).

Так и возникает ситуация что напр. открыли форму в раунде с коридором 51-100%, добавили свой текст, выбрали 60%, но при публикации получили ошибку (так как 63 сек раунд закончился, а след. уже с фиксой 75%), обновили стр., вновь отправили, а тут уже 75% без выбора (и это станет понятно уже увидев % в ленте).

29.03.2019 11:10
0

@yulia.rodnikova, всё же вопрос скорее к вам, учитывая, что ваш делегат поставил 75, теперь понятно почему вы отмалчиваетесь.

29.03.2019 08:06
0

Всем приготовиться к крушению. Крупные суммы денег - вывести. Важные посты - скопипастить и сохранить.

27.03.2019 11:15
0

@terminated, ну не настолько же. Как кулак, прячущий зерно перед продразвёрсткой. :)

27.03.2019 12:49
0

@ms-boss Необходимая предосторожность. Проекты, которые объявляют о переходе куда-нибудь на что-нибудь, часто не возвращаются или возвращаются много позже, чем планировали. Таковы реалии отрасли.

27.03.2019 12:56
0

/

27.03.2019 14:29
0

@terminated совсем нельзя. Это особенности децентрализованных сервисов.
Голосио может отключить его отображение в голосио. Но не более того.

27.03.2019 22:13
0

/

27.03.2019 22:41
0

Очень интересно. За весну управитесь? Как то уж долго длится этот переезд, но с другой стороны я успею вывести токены голос для конвертации их в кибервей. У стима между тем тоже задержки с ихними токенами. Даже не знаю кто придет к финишу первым.

27.03.2019 16:49
0

Много проделано работы. Спасибо

27.03.2019 19:28
0

Читаю посты всех паникеров и смотрю их количество СГ. Балансы пустые, что вам терять?
У меня больше полкосаря евро в данный момент СГ и мменя даже в топ 100 нет. А те кто в топе, это большая часть людей кто с самого начала в проекте. Так почему ноют пользователи если они ничего не теряют?
90% тех кто читали этот пост даже не понимают всех технических формулировок. Вы как писали свои статьи, так и будете писать их дальше и получать копейки от наших апов и дальше. Чего вы ждете, что будут как в начале проекта выплаты? Так вы должны понимать, что не вложив и не собрав большое количество подписчиков вы останитесь такими же самыми ноунеймами как и сейчас.
Есть прогресс и есть регресс. Для вас создают платформу, на которую в дальнейшем придут и другие категории людей, не только писатели. Но и разработчики приложений, инвесторы, специалисты и прочие. Если вы так любите печатать, но не хотите ничего менять, то можно вернуться обратно к карандашу и бумаге, и в качестве нововведения делать потом самолетики и говорить как ваши текста летают в даль.

27.03.2019 20:37
0

+++
@mrarturs Кто-то выразил мои мысли словами. Осталось написать "+"

27.03.2019 20:45
0

@mrarturs ...я не знаю что произойдет после перехода на Сайбер Вей, может быть улучшение, а может ухудшение, но как прагматично-оптимистичный человек я за любой эксперимент! ..а ныть - это удел слабых людей, пусть ноют...

28.03.2019 15:50
0

@smotritelmayaka как будет, так будет. Как написано на бумаге, меня все устраивает, точнее я бы выразился ничего плохого я для себя не вижу.

28.03.2019 19:47
0

+++

10.04.2019 06:40
0

@golosio, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующей категории:

  • комментарии - 4 позицию - 22 комментарии
28.03.2019 06:27
0

Переезд, говорите, наверное это неплохо или не хорошо. Слабо разбираюсь, судить придётся по плодам/делам их. Но вот сейчас уже начинается ловля рыбы в мутной воде.
Когда ставили 75% кураторских, предупредили, как-то объяснили. Доволен ты или нет, но ситуация предсказуема. Ты знаешь, на что можно рассчитывать и как-то от этого пляшешь. Потом объявили о 50%. НОрмально, авторы вздохнули легче. Правда как в супермаркете вместо 1 кг в развес поставили 900 гр по той же цене. А что, 51%, хвостик маленький, но если овец много, то и шерсти со всех немало. Ага, кнопочку организовали (правда по-тихому, без рекламки). А когда овцы привыкли к режиму стрижки, овечий цирюльник без предупреждения вместо маленького пучка в 1 %, щипанул ещё 24 (итого 75). И всё по-тихому, с улыбочкой.
Мне более понятна позиция мелкого пакостника-флагователя. Да, гадит всем, но предсказуемо и ожидаемо. Пусть растит себе карму, это её выбор. Но процент выставляет куратор, это людины, за которых вроде как народ голосовал (хотя бы формально), уважать народ надобно.
Огласите имя цирюльника, страна должна знать своих героев!
Я почитал предыдущие комменты с утра, сейчас может и прибыло, но соглашусь с мнением @anjar.
Мы, конечно, переживём, но осадочек остался.
А имени того героя ...
Извините, уважаемые, за может излишнюю иронию и сарказм.
Правда, если бы писал здесь после того, как обнаружил под своими постами 75 кур... пришлось бы писать пи...пи...пи...пи... ... ... Таки, не принято мат публиковать.
Будьте здоровы)

28.03.2019 14:37
0

@bambuk, таков текущий выбор делегатов (смотреть можно тут https://ropox.app/chainprops), одни хотят зафиксировать определенный %, другие предоставить выбор для авторов (консенсуса нет). Вот и происходят скачки % каждый раунд (63 сек), когда тот или иной резервный делегат попадает в очередь и меняет ситуацию.

28.03.2019 20:30
0

Благодарствую, @lex , за ответ. Примерно так я этот механизм и представляю.. Просто долго стояло 50-51 и как-то стало привычным, ожидаемым и перестал обращать внимание. Просто постил. И тут опять движуха посыпалась. Вот только что выставил ползунок на 60, а прилетело 75. И как это?

28.03.2019 22:34
0

@bambuk, % устанавливается в момент нажатия кнопки "опубликовать", а не открытия формы или выбора процента. Вот и получается, открыли форму в раунде с коридором 51-100%, выбрали 60%, но при публикации получаете ошибку (так как 63 сек раунд закончился, а след. уже с фиксой 75%), обновили стр., а тут уже 75% без выбора...

P.S. Возможно можно было сделать всплывающее окно выбора процента при нажатии кнопки опубликовать (что не очень с точки зрения "юзабилити" интерфейса, но сокращает вероятность ошибки с переходом в раунд иного %). А так, только и остаётся договариваться с делегатами, что сложно сделать когда они не собраны в одном месте для "общения", а многие и вовсе отсутствую неделями/месяцами на проекте.

29.03.2019 11:04
0

Благодарствую, @lex , я примерно уже понял.Не знаю, может это и неправильно, но зашёл на страничку голосования за делегатов и поснимал со всех, кто 75-80 держит. А активным 50-десятникам отдал. Раз люди не понимают или просто свою выгоду ищут, я их поддерживать не буду. Да, мои голоса ничего не решают и в общем-то ничего не значат, знаю. НО так будет более справедливо.
Кстати, у меня остались ещё голоса, было бы правильно их тоже отдать нормальным делегатам.
Всего отдал 16 голосов. Согласно https://ropox.app/chainprops, всех активных (выше таблицы ПОДДЕРЖКА) 50-десятников я отголосовал. В списке поддержки народу много и я никого не знаю из них. Подскажите (если это корректно), кто из этих делегатов активен и адекватен, я готов довериться вашему мнению и проголосовать за них.

29.03.2019 12:09
0

@bambuk, почему-же, это наоборот правильно, выбирать тех делегатов чьё мнение (параметры блокчейна) вам близки. Кстати, советую эту страничку где можно сразу видеть параметры (те же Cur. Min%, Cur. Max%) - https://golos.arcange.eu/witnesses/ (и переходить по нику на страничку для постановки\снятия голоса).

По вопросу выбора, всё очень субъективно, он порой обусловлен личным общением, а не только параметрами...

29.03.2019 12:36
0

@lex посмотрел я эту таблицу... что б я там что-то понимал))) А из делегатов знакомо человек 6 не более. По живому общению вы четвёртый) Но голосов-то больше))
Ладно, может кто сам предложит или узнаю что про кого. Вот просто так отдавать голоса не хочется)

29.03.2019 12:52
0

@bambuk, напр. можно обратить внимание на столбец Auction (secs), это штрафное окно, т.е. сколько секунд с момента публикации оно продлится. Полагаю делегаты оставившие его либо не разобрались с значением (забыли поменять), либо считают что пользователей нужно штрафовать за раннюю поддержку постов...

Справа от этого столбца видны и параметры % кураторских, т.е. вы можно сразу видеть и цифры резервных делегатов, поддержать их. А кликнув на ник делегата тут http://steemul.ru/witnesses/ можно увидеть не только кто его поддерживает, но и кого поддерживает он сам (в конце страницы).

29.03.2019 13:02
0

@lex так у нас и штрафное окно периодически открывается? Веселуха. Прямо как в ГосДуме)) Децентрализация, чо, хозяина нет. Медведь нужен)
Так это, про окно, 3-х минутное что ли иногда включается? Опять без предупреждения. А что, хороший тренажёр бдительности))
Оставил три голоса свободных, остальные раздал, учитывая вашу табличку по ссылке. Полезная табличка, благодарствую)
Особо помогло, кто кого поддерживает) Тут хотя бы по знакомым сориентироваться можно.

29.03.2019 14:18
0

@bambuk, нет, со штрафным окном большинство делегатов выбрало "0 сек." (хоть это не скачет), я как пример, что есть и такие кто оставил параметры по умолчанию или значение отличное от нуля.

29.03.2019 14:23
0

@lex значит так относятся внимательно к своему делегатству. Думается, что когда пенка с площадки была снята, у некоторых (поначалу активных) энтузиазизм поостыл).
Медведя нет, но есть хомячки, много (пока) хомячков. Всё как в лесу. Есть и волки свои, и лисы. Мелкий скунс бегает к каждой норке и успевает там повонять из под флажка. Есть сытые лоси и голодные. Кто помельче, в стаи собираются. Но и волки могут стаей охотится. А корма в лесу всё меньше и на вкус всё жиже.
Вот написал и задумался, а к какому зверю себя бы отнёс? Пока не придумал)))
Бред, конечно, написал. Таки просто поток сознания включился)) Бамбук жиж)))

29.03.2019 15:53
0

@bambuk, порой разнообразие "зоопарка" и делает его посещение не таким скучным ))

29.03.2019 15:58
0

@lex согласен, даже забавно порой наблюдать, как некоторые себя проявляют))
Всё как в жизни)

29.03.2019 17:36
0

Ребят, размышляю над вариантом использования Golos в качестве смарт-контракта: хотим записывать этапы обучения нейросетей в блокчейн, это разметка, обучение и тп. Для этого нужна разработка, либо с эфиром интеграция, создание контракта и тп, разработка дорогая и долгая. Скажите, с кем обсудить идею использования Голос как упрощенной замены смарт-контракта, ну то есть по АПИ слать пост запросы в голос, а все блокчейн операции уже тут выполнятся.
Не охота в полотна доков погружаться, тем более переезд на новые технологии намечается

17.04.2019 21:00
0