⚙️ Хардфорк 0.2

Подробный отчет о составе ХФ 0.2 и важные объявления.

Добрый день!

Те из вас, кто следит за эпопеей под названием хардфорк 0.2, в курсе того, как непросто было нам, команде Golos Core, определить близкий к финальному набор бизнес-логики, удовлетворяющей большую часть сообщества.

Как написал в своём посте @hipster, «мы изначально ошиблись с тем, что попытались объять необъятное и в результате не доставляли в продуктив достаточно долго». Вместе с тем, в настоящий момент Golos Core с гордостью может говорить о составе хардфорка 0.2 блокчейна Голоса. (Напоминаем, что все изменения на протяжении всего периода разработки можно найти/просмотреть/протестировать на Github Голоса (зарегистрироваться на Github может любой желающий)).

Также просим всех пользователей сообщества обратить внимание на уникальные фичи (задачи), которые реализованы командой Golos Core и которые создают базу для дальнейшего успешного конкурирования блокчейна Голос как со Стимом (Steemit), так и другими блокчейнами. С учетом того, что обновления принимаются делегатами, напоминаем, что любой пользователь Голоса может стать делегатом и начать зарабатывать на поддержании работы блокчейна Голос.

Состав реализованных изменений в предлагаемом хардфорке:

  1. Flat multi-sigs, transaction proposals (уникальный функционал, нет аналога в Steemit) Появилась возможность создания мультиподписных аккаунтов с указанием веса ключа без наследования. Теперь доступно подписание любых транзакций несколькими пользователями, что значительно повышает уровень безопасности, в том числе для технических аккаунтов и аккаунтов веб-приложений.
  2. Golos power delegation Внедрено делегирование Силы Голоса. Теперь любой пользователь Голоса может передать свою Силу Голоса для использования другим пользователям сети. Количество пользователей, которым может быть передана Сила Голоса, и период ее использования могут быть любыми. Благодаря этому новые пользователи сети, например, смогут наращивать Силу Голоса на своем аккаунте быстрее и смогут в большей степени влиять на распределение пула наград через лайки.
  3. Reward beneficiaries Владельцы веб-приложений могут устанавливать процент, который они будут получать от каждого вознаграждения, получаемого пользователями приложения (за посты, комментарии, курирование). Владелец веб-приложения может установить уровень вознаграждения от 1 до 99% Силы Голоса, которые будут рассчитываться от вознаграждений пользователей и зачисляться на аккаунт веб-приложения.
  4. Unified payout window for posts (7 days) Все посты и комментарии теперь получают выплату через 7 дней после написания. Статистически, посты набирают наибольшее количество лайков в течение первых 2-3 дней.
  5. Extending the payout window (уникальный функционал, нет аналога в Steemit) Возможность продлить окно выплат на любой период равноправный первоначальному 7 дневному сроку за определенную сумму в GBG. Это расширение предыдущей фичи на случай максимально популярных постов. Если пост продолжает находиться в топе большее количество времени, то автор по желанию может заказать дополнительное окно выплаты.
  6. Automatic witness downvoting after 3 months (уникальный функционал, нет аналога в Steemit) Автоматическое обнуление голосов за делегатов раз в 3 месяца, сделанное в целях стимулирования работы делегатов на сообщество Голоса и создания условий для возможности выдвижения и продвижения новых делегатов.
  7. The restriction on the length of the comment thread is removed Ограничение на длину ветки комментариев снято. Функционал доработан в целях создания более удобного и понятного интерфейса.
  8. A separate reward pool for comments (10%) - Issues #86 + Issues #97 (уникальный функционал, нет аналога в Steemit) Фонды вознаграждения комментариев и постов разделены. Теперь фонд вознаграждения комментариев составляет 10% от фонда выплат авторам. Такая модель распределения вознаграждения позволит пользователям больше зарабатывать на комментариях.
  9. Comments should be editable forever Создано дополнительное свойство - снято временнОе ограничение на редактирование комментариев.
  10. Blockchain statistics plugin (уникальный функционал, нет аналога в Steemit) Улучшен плагин статистики. Теперь данные отдаются на демон статистики statsd и любой желающий, развернув демон статистики на своем сервере может получать развернутую статистику по транзакциям в блокчейн.
  11. Implement free memory database API (уникальный функционал, нет аналога в Steemit) Создан удобный и функциональный инструмент мониторинга свободного места хранилища. Данная фича полезна для держателей нод блокчейна Голос, так как она позволяет мониторить размер хранилища, чтобы своевременно его увеличить.
  12. Refactor logging output to be a valid JSON (уникальный функционал, нет аналога в Steemit) Создан строгий машиночитаемый формат логирования работы блокчейна для упрощения поиска ошибок, фильтрации и быстрого получения данных из лога.
  13. User issued assets, bitassets (market pledged assets), asset trading (shorts, limit orders, asset settlement, call orders) (уникальный функционал, нет аналога в Steemit) Реализована возможность создавать собственные токены, привязанные к токену Голоса. Эта фича - одна из самых ожидаемых сообществом, содержит большое количество функционала, касающегося выпускаемых пользователями токенов и работы с ними. Биржевая торговля активами появится после софтфорка (см ниже).
  14. Asset-name length dependent registration cost (уникальный функционал, нет аналога в Steemit) За регистрацию собственных токенов будет взиматься плата. Размер суммы будет зависеть от длины регистрируемого названия токена. Чем длиннее название, тем меньше стоимость регистрации.
  15. Protocol versioning extensions (уникальный функционал, нет аналога в Steemit) Возможность смены и рефакторинга основополагающих структур данных протокола (chain_properties или asset например) без запуска новой цепочки. Введена поддержка нескольких версий протокола бизнес-логики.
  16. Witnesses price feed never expires Прайс-фиды делегатов более не ограничены временем. В хардфорке 0.1 при необновлении данных прайс-фид становится нерелевантным.
  17. Implement stateless non-interactive cli_wallet usage (уникальный функционал, нет аналога в Steemit) Внедрена возможность использования cli кошелька из командной строки.
  18. Increase withdraw intervals amount Сроки понижения силы голоса увеличены с 13 до 20 недель. Задача, реализованная в рамках того, что планировалось на предыдущий хардфорк 0.1.
  19. Splitting of user content in natural languages (уникальный функционал, нет аналога в Steemit) Разделение пользовательского контента по естественным языкам с возможностью определения блокчейном языка написания постов.
  20. Remove or increase posting limit Увеличен лимит на количество постов в день. В хардфорке 0.1 было ограничение 4 поста в сутки. Сейчас эти число увеличено до 8 постов.

Помимо указанных задач, к предстоящему хардфорку команда Golos Core разработала / подготовила к запуску более 100 (служебных) задач, обеспечивающих нормальную работу блокчейна Голос. Примеры так называемых служебных задач можно найти здесь: https://github.com/GolosChain/golos/issues/177, https://github.com/GolosChain/golos/issues/75, https://github.com/GolosChain/golos/issues/89

После и в случае успешного принятия хардфорка к продакшену будет готовиться софтфорк 0.2.1 (обновление кодовой базы, не требующее консенсуса), который включит в себя задачи, являющиеся логическим продолжением и дополнением хардфорка 0.2:

  1. Market API Важный элемент софтфорка, отвечающий за работу внутренней биржи, на которой можно будет торговать пользовательскими токенами. Предполагается расширение функционала внутренней биржи Голоса (задача была перенесена на софтфорк в результате множества проблем, которые возникли при ее реализации - всех желающих, особенно делегатов, приглашаем поучаствовать в написании и исправлении программного кода).
  2. Deprecate get_state API method Избавление от метода get_state API, который фактически является рудиментарным и не несет какой-либо пользы. Это метод возвращает некоторое состояние цепочки, а объем данных составляет больше 2 МБ, что создает излишнюю нагрузку.
  3. Parallel API С осени этого года мы активно разрабатываем новую «модульную» архитектуру для Голоса, которая позволит разделить потоки данных на процессорах для одновременной обработки разных запросов API, что само по себе очень эффективно. Ранее нода блокчейна могла обрабатывать только один поток запроса API. Разделение блокчейна на модули позволит ему в полной мере использовать возможности современных процессоров по параллельной обработке данных, что создает базу для построения множества дополнительных улучшений.

ВАЖНОЕ ОБЪЯВЛЕНИЕ! Уважаемые держатели нод блокчейна Голос, в связи с ближайшим запуском хардфорка 0.2 просим вас проверить ваши работающие делегатские ноды на предмет дублирования. Если у вас на текущий момент работают дублирующие ноды, то просим вас отключить их и оставить только основную ноду. Мы убеждены, что вы, также как и мы, заинтересованы в благополучном развитии Голос, его бесперебойной работе и не желаете, чтобы в сети присутствовали какие-либо мешающие элементы, создающие дополнительную нагрузку на сеть. Спасибо за понимание.

Спасибо за внимание и хорошего дня, Команда GolosCore

// Старт Bounty-тестирования ХФ 0.2 GOLOS

Команда GolosCore объявляет старт двухнедельной Bounty-программы. Вы можете поучаствовать в тестировании ХФ 0.2. Распределение Bounty-вознаграждения за найденные неизвестные баги следующее:

  • Мелкие - до 1000 GOLOS
  • Средние - 1000-5000 GOLOS, если вы создаете issue на ошибку; 5000 - 10000 GOLOS, если вы исправляете найденную ошибку и создаете pull request
  • Критичные - 10000-18000 GOLOS, если вы создаете issue на ошибку; 18000-25000 GOLOS, если вы исправляете найденную ошибку и создаете pull request

Все найденные ошибки просим заводить на гитхаб https://github.com/GolosChain/golos/issues Необходимо предоставить полное описание проблемы, способ репродуцирования, входные и выходные данные, скриншоты (по возможности).

Все pull request просим заводить на гитхаб https://github.com/GolosChain/golos/pulls

Внимательно проверяйте наличие бага на гитхаб, прежде чем завести новый. Например, на данный момент уже заведены issue #230 и #231.

Решение об уровне критичности бага и объеме вознаграждения будет принимать команда GolosCore. Выплаты Bounty-вознаграждения будут производиться в течение 5 дней с момента заведения issue или pull request.

Тестировать вы можете одним из следующих способов:

  • 46.101.132.158:2002 (seed.testnet.golos.io:2002) - для владельцев нод; по данному адресу вы можете получать данные из блокчейн GOLOS через свою ноду.

  • 46.101.132.158:8092 (wss://ws.testnet.golos.io) CHAIN_ID=5876894a41e6361bde2e73278f07340f2eb8b41c2facd29099de9deef6cdb679 - для разработчиков проектов на блокчейне GOLOS; вы можете подключаться к нашим нодам через JSON-RPC интерфейс.

  • https://testnet.golos.io - веб-клиент GOLOS; для поиска багов через тестовый интерфейс golos.io

  • https://www.npmjs.com/package/golos-js - для владельцев интерфейсов; используйте последнюю версию golos-js для работы с API.

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

Документация по работе GOLOS blockchain:

Версию ХФ 0.2 вы можете получить по ссылке: https://github.com/GolosChain/golos/tree/v0.17.0rc5

Мы заранее благодарим всех, кто поучаствует в тестировании ХФ 0.2.

Спасибо за внимание и хорошего дня, Команда GolosCore

// Началось тестирование хардфорка Голоса

Команда Golos•Core @goloscore объявила о начале двухнедельного тестирования хардфорка блокчейна Голоса. Разработчики обновленного протокола блокчейна начали кампанию по поиску ошибок в работе и программном коде хардфорка. Документирование каждой найденной ошибки будет вознаграждено в токенах Голоса.

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

Программный код хардфорка можно изучить здесь.

// ХФ 0.2 Состояние на 26 сентября 2017 г.

Спешим сообщить, что команда GolosCore активно работает над финальными задачами ХФ 0.2, чтобы выпустить его в скорейшем времени. Осталось доделать не так много в сравнении с уже проделанной работой. Мы очень ценим внимание к нашей работе и волнение за сроки ХФ 0.2. Отдельно спасибо @blockchained и @litrbooh за особый интерес, благодаря которому работа кипит еще сильнее.

Из последних задач готовы и ожидают выпуска в составе ХФ: возможность поиска постов по языкам, реализована корректная интерпретация fixed_string в json операциях, возможность использовать cli_wallet как консольную утилиту. На данный момент разработка находится в финальной стадии завершения. Основная работа ведется над следующими задачами:

Issue #177 Refactor asset data storage Issue #184 После вызова get_ticker метода нода перестает отвечать на запросы API. Сложность в реализации первой ишью связана с необходимостью поддержки измененной структуры ассета во всех операциях, а также возможность конвертировать их в различных версиях ХФ для поддержания совместимости с протоколом разных версий. Изменения затрагивают базу, функционал интерпретирования во всех операциях, что потребовало значительного рефакторинга и написания большого количества кода. Наибольшая часть работы по данному ишью выполнена, таким образом, если не возникнет особых осложнений, то мы ожидаем в ближайшее время закрыть данную задачу. Работа над второй также ведется продолжительное время. Команда исправляет некорректную работу API. Возникли некоторые сложности в воспроизведении ошибки. Но уже определено и понятно в чем именно она заключается. Разработчики в процессе исправления этого бага.

// Дополнения от 01.08.2017 В связи со сложностями связанными со сроками предполагаемого ХФ и несерьезностью постоянных сдвигов дат, нами принято решение сообщить дату публично за 7 дней после появление на github финального тега для ХФ.

Подобного рода практика будет применяться и ко всем последующим хардфоркам (которые как и было заявлено на фесте будут содержать до 4-5 серьезных обновлений). Единственное отличие, в том что дата (последующих хф) будет анонсирована при появлении не финального тега, а первого релиз кандидата. Полностью - здесь.

// Дополнения от 23 июля 2017 г. ХФ 0.2 Изменение даты на 02 Августа 2017г 12.00 GMT - иерархический мультисиг и уязвимости

После публикации [RC1](https://github.com/GolosChain/golos/releases), который был опубликован на github Голоса в понедельник 17.07.2017. RC был оперативно протестирован некоторыми делегатами, благодаря их оперативной работе (в частности @primus и @litvintech @ropox), были выявлены следующие проблемы:

- Отсутствовало корректное начисление vesting_shares при создании аккаунта через cli_wallet. Исправлено в RC2 (еще не залит на гитхаб)

- Исправление ошибок наличия требуемых ключей для нововведенных операций. Исправлено в RC2

- Отсутствие метода для получения dynamic_asset_data с помощью DatabaseAPI. Исправлено в RC2

- Исправлено время вычисления last_irreversible_block.

- Исправлено начисление account_creation_fee при использовании создания аккаунтов с делегированием vesting_shares.

- Исправлено и устранено дублирование информации об имени и символе ассета. Индексирование ассетов теперь происходит по имени ассета в string, а не asset_symbol_type.

- Добавлено свойство ассета, свидетельствующее о наличии у него asset_bitasset_data_object.

- Основная проблема которая была обнаружена (и остается неисправной) связанна с иерархическим мультисигом (а так как последние события в мире блокчейна, а именно, "взлома" мультисиг кошельков parity, оставляют желать лучшего), нами принято решение придержать эту функцию до следующего ХФ, для дополнительных проверок кодовой базы и уязвимостей к атаке.
В процессе подготовке ХФ и верификации кода на безопасность была выявлена дополнительная проблема которая заключается в правильной сериализации secondary_index в boost::interprocess::shared_memory.

[RC2 (без функции иерархического мультисига) доступен к сборке на гитхабе Голоса](https://github.com/GolosChain/golos/tree/v0.17.0rc2)

Изменения блокчейна:

Динамический выбор параметров сети делегатами, а также разделение делегатских ролей на валидаторов и делегатов: валидаторы (пользователи с рабочим клиентом блокчейна Голос, для подписи блоков сети) и делегаты (пользователи сети, избранные голосованием, имеющие право на параметризацию сети). В связи с вводом возможности динамического выбора параметров сети, мы временно введем возможность 19-ти делегатам на момент проведения хардфорка, также, исполнять роль членов комитета, с возможностью выбора параметров сети. С предстоящим ХФ эта возможность появится без внесения предполагаемого залога за право исполнять роль валидатора для того, чтобы предоставить всем возможность подготовить необходимые суммы до проведения ХФ 0.3.

  • Стоит заметить, что сразу после проведения ХФ 0.2, у членов комитета появится возможность изменить ранее предполагаемое кол-во “топ” делегатов (минимальное число по умолчанию 11, максимальное не ограничено. Чтобы стать членом комитета не требуется иметь рабочую ноду).
Примечание от 26 июня 2017:

Во избежание недопониманий и раскола во мнениях между делегатами и командой разработки, мы приняли решения об исключении выше упомянутого пункта из предстоящего ХФ 0.2 (это включает в себя не только разделение на роли но и возможности динамического выбора параметров сети. Так как они "продаются пакетом").

  • После проведения ХФ 0.3, роли разделятся окончательно (с добавлением роли транслятора). Это будет означать отдельные ноды валидаторов с предполагаемым залогом и (возможно) отдельные члены комитета, которым не требуется залог.

  • Автоматическое обнуление голосов раз в 3 месяца за членов комитета.

  • Поддержка multisignature аккаунтов (возможность создавать аккаунты, которым для совершения транзакции, требуется более 1 подписи).

  • Поддержка UIA (user issued assets). Это означает возможность выпускать собственные токены (не smart coins) и их использовать, поверх нашего блокчейна. Примеры реализации можно посмотреть на Bitshares.

  • Поддержка Smart Coins (монеты обеспеченные произвольными активами, в виде залога, на выбор создателя, выраженным в токенах Голос).

  • Ограничение количества постов с 4 в день, увеличится до 8.

  • Ограничение на длину ветки комментариев снято.

  • Добавлена возможность редактировать посты после 30 дней.

  • Выплаты за комментарии теперь не зависят от самого поста.

  • Все посты и комментарии теперь получают выплату через 7 дней после написания. Второго окна выплат, больше не будет. У пользователя есть возможность продлить окно выплат на любой период равноправный первоначальному 7 дневному сроку (за определенную сумму в GBG. Сумма будет высылаться на @null). По следующей формуле: ((input_time - time::now()).to_seconds() * cost_per_day * (1 + 0.1 * cashout_windows_amount) / (60 * 60 * 24) Количество окон выплат = +0.1

  • Фонд вознаграждения комментариев существует отдельно от постов, на уровне 10%.

  • Множественные бенефициары вознаграждений за контент (без ГУИ).

  • Делегирование Силы Голоса (без ГУИ).

  • Аккаунты могут создаваться с меньшей комиссией и изначальным делегированием Силы Голоса.

  • Майнинг оставлен в текущем состоянии, до следующего ХФ (в процессе тестирование публичного GPU майнера).

  • Разделение пользовательского контента по естественным языкам.

  • Снижение Силы Голоса изменено на 20 недель (ошибка с предыдущего релиза).

Служебные изменения:

  • Управление снапшотами сети занимается отдельный плагин, что позволяет упростить их загрузку и решить проблемы с переиндексацией аккаунтов Steemit.

  • Имплементация примитивной версионируемости и вторичного индекса объектов в Chainbase.

  • Изменен алгоритм ранжирования вкладки “популярное”, на механизм аналогичный алгоритму вкладки “актуальное”. Это позволит получать более естественную выдачу постов в самой вкладке.

  • Встроенный NTP-сервис по умолчанию отключен.

Изменения веб-клиента:

  • Дополнительная регистрация по СМС.

  • Дополнительная регистрация через инвайт по электронной почте.

  • Добавлены расширенные опции во вкладке кошелька пользователя, для создания ассетов.

  • Обновленная внутренняя биржа, с расширенными возможностями и обновленным user experience.

  • Вспомогательная стрелка “вверх” для автоматической прокрутки страницы.

  • QR коды, для паролей в кошельке пользователя.

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

  • Добавлены вспомогательные иконки в верхнее меню.

  • При создании поста добавлена возможность подгрузки изображений локально с пользовательского устройства.

  • Добавлена кнопка продления окна выплат расположенная рядом с кнопкой “Продвинуть”.

  • Добавлена возможность вывода ленты постов созданных пользователями на их национальном языке.

  • Иконка RocketChat перенесена в верхний правый угол заголовка интерфейса.

  • Цветовое оформление страниц теперь в едином стиле.

  • Изменилось отображение поста - рядом с автором поста отображается его аватар.

  • В комментариях отображается уровень вложенности, для более удобного визуального восприятия.

  • Длинные ветки комментариев теперь сворачиваются автоматически.

  • При просмотре поста в шапке теперь отображается аватар автора.

  • Кнопка “Голосовать за” теперь синего цвета и при наведении оживает при помощи современных технологий css анимации.

  • Возможны дополнительные минорные обновления веб клиента.


Основано на материалах статьи от 25 июня 2017 г.

results matching ""

    No results matching ""