diff --git a/0-aktualnoe/baunti.md b/0-aktualnoe/baunti.md index 52f87c03..13d07d13 100644 --- a/0-aktualnoe/baunti.md +++ b/0-aktualnoe/baunti.md @@ -1,35 +1,16 @@ -### Bounty-программа Wiki.golos.io. Отчёт и продление. - -Добрый день! -Мы время от времени наблюдаем, как на golos.io появляются качественные и интересные статьи на тему работы системы и блокчейна Голос. Это говорит о том, что сообщество, так же как и мы, крайне заинтересовано в изучении и донесении полезной информации до всех. - -После обновления блокчейна Голос до версии ХФ 0.2 сообщество получит много новых фич, которые также нужно будет описать для пользователей. Технический писатель [@goloswiki](https://golos.io/@goloswiki) постоянно совершенствует и дописывает wiki.golos.io, но безусловно нам была бы очень полезна ваша помощь! - -Как вы знаете, некоторое время назад мы запускали баунти-программу для поощрения тех, кто пополняет базу знаний wiki.golos.io. Принимая во внимание полезность и ценность эксперимента, команда GolosCore приняла решение о продлении этой баунти-программы на неограниченный период. Теперь вы можете в любой момент поучаствовать в редактировании и создании основного справочного материала системы и получить вознаграждение. - -По итогам на текущий момент GolosCore объявляет вознаграждение за помощь в создании материалов в рамках указанной баунти-программы: - -* [@liga.avtorov](https://golos.io/@liga.avtorov) - Вознаграждение 2500 GOLOS -* [@vvk](https://golos.io/@vvk) - Вознаграждение 2500 GOLOS - ## **Условия бессрочной Bounty-программы wiki.golos.io** -Баунти-вознаграждение за редактирование и написание статей будет назначаться в каждом отдельно взятом случае в диапазоне от 100 до 15000 GOLOS. Объем вознаграждения будет зависеть от: +Баунти-вознаграждение за редактирование и написание статей назначается в каждом отдельно взятом случае в диапазоне от 100 до 15000 GOLOS. Объем вознаграждения зависит от: * Количества статей; * Подробности описания темы; * Сложности объекта статьи \(т.е. создание или исправление материала для любых разделов, кроме “Новичкам”, будет оцениваться выше\) * Способа предоставления информации \(материалы присланные в pull request на Github будут оцениваться выше\) -Cтатьи присылайте в pull request на гитхаб [https://github.com/GolosChain/wiki/pulls](https://github.com/GolosChain/wiki/pulls) или создавайте пост на golos.io под своим аккаунтом с подписью “материал для [@goloswiki](https://golos.io/@goloswiki)”. - -Решение о полезности, важности, корректности и, соответственно, объеме вознаграждения будет принимать команда GolosCore. Мы будем рассматривать каждый материал, руководствуясь принципом полезности, необходимости и достаточности. А также, учитывая вышеуказанные 4 пункта, постараемся вознаграждать максимально объективно. В случае публикации поста на golos.io, который будет принят к внесению в wiki.golos.io, вы получите комментарий с благодарностью от [@goloswiki](https://golos.io/@goloswiki) и апвоут вашей публикации от вики-кита. -Выплаты баунти-вознаграждений будут производиться в течение 5 рабочих дней дней после публикации материала Golos Core с указанием суммы выплат. +Cтатьи присылайте в pull request на гитхаб [https://github.com/GolosChain/wiki/pulls](https://github.com/GolosChain/wiki/pulls). -Спасибо за внимание и хорошего дня, -Команда GolosCore +Решение о полезности, важности, корректности и, соответственно, объеме вознаграждения будет принимать команда Golos.io. +Выплаты баунти-вознаграждений будут производиться в течение 5 рабочих дней дней после публикации решения Golos.io с указанием суммы выплат. [Источник](https://golos.io/ru--golos/@goloscore/bounty-programma-wiki-golos-io-otchyot-i-prodlenie) diff --git a/0-aktualnoe/hf-02.md b/0-aktualnoe/hf-02.md index 112362ef..c9e32463 100644 --- a/0-aktualnoe/hf-02.md +++ b/0-aktualnoe/hf-02.md @@ -1,79 +1,3 @@ -# Новости Golos•Core. Хардфорк 17 принят! Планы на Хардфорк 18 - -Добрый день! - -Да, свершилось!  - -**Мы рады сообщить, что сегодня, 4 апреля 2018г, в 12.00 \(Мск время\) произошел ХФ 17.** - -20 из 21 делегатов \([https://golos.io/~witnesses](https://golos.io/~witnesses)\) просигнализировали и перешли на новую версию блокчейн. Спасибо за поддержку!  - -Благодарим пользователей [@vvk](https://golos.io/@vvk),[@vik](https://golos.io/@vik),[@ropox](https://golos.io/@ropox) за активность и помощь последние несколько дней в части тестирования предложенного кода на высоконагруженных нодах и описания найденных ошибок, связанных с нестабильной работой таких нод. Считаем справедливым выплатить баунти указанным выше пользователям \(суммы и сроки выплат определим в ближайшее время\). Отдельное спасибо всей команде разработки, за то, что оперативно, жертвуя личным временем, вносили багфиксы, создали и запустили продукт, который все так долго ждали - Хардфорк 17!  - -Принятый состав ХФ можете посмотреть в [статье о релизе](https://golos.io/ru--golos/@goloscore/novosti-golos-core-reliz-khf-17-i-oficialnyi-srok-perekhoda).   - -Последняя актуальная версия ХФ  для тех, кто еще только планирует обновлять ноды: [https://github.com/GolosChain/golos/releases/tag/v0.17.1](https://github.com/GolosChain/golos/releases/tag/v0.17.1) - -Важно использовать именно эту версию для seed/api нод, как мы неоднократно говорили в техническом чате Golos•Core \([https://t.me/goloscoretc](https://t.me/goloscoretc)\). - -В рамках подготовки к ХФ мы также разработали официальный [эксплорер от Golos•Core.](https://explorer.golos.io/) Эта версия полностью отвечает требованиям бирж. Она была разработана оперативно без оглядки на дизайн и будет дорабатываться. В планах сделать этот просмотрщик мощным, удобным и красивым инструментом. Все замечания, пожалуйста, присылайте в качестве ишью в [репозиторий на гитхаб](https://github.com/GolosChain/golos-explorer). - -Мы создали специальную группу в телеграмм для обсуждения вопросов различных интерфейсов и дополнительных инструментов, создаваемых Golos•Core - [https://t.me/golos\_tools](https://t.me/golos_tools) - -## Жизнь после Хардфорка - -Как мы убедились сегодня - жизнь после ХФ продолжается. А это значит, что Golos•Core следует планировать работы на следующий ХФ. Спасибо всем делегатам, кто прочитал и [проголосовал за фичи ХФ 18.](https://docs.google.com/spreadsheets/d/1NyHHTfpS24A7oaro1xJ1KisCvf4V9KZdoape1bY9rXA/edit#gid=0) Предложенные фичи поддержаны делегатами, приоритеты расставлены. Ниже представлены списки фич - функциональных и технических - в последовательности от наивысшего приоритета. - -**Функциональные фичи: ** - -1. Golos power delegation \(17 голосов за 1 приоритет, 1,05 - средняя оценка по всем проголосовавшим делегатам\) -2. Witnesses price feed never expires \(10 голосов за 2 приоритет, 2,41 - среднее\)  -3. Дать возможность пользователям вносить изменения в профиль при помощи постинг ключа / Split database objects to hardcoded-structure objects and blob-stored data object \( 8 голосов за 3 приоритет, 3,47 - среднее\) -4. Flat multi-sigs \(8 голосов за 4 приоритет, 3,76 - среднее\) -5. Comments should be editable forever \(10 голосов за 5 приоритет, 4,52 - среднее\) -6. Increase upvote lockout to 12 hours \(15 голосов за 6 приоритет, 5,88 - среднее\) - -**Технические фичи:** - -1. Performance optimization \(16 голосов за 1 приоритет, 1,11 - средняя оценка по всем проголосовавшим делегатам\)  -2. Clear API protocol from rarely used fields \(10 голосов за 2 приоритет, 2,66 - среднее\)  -3. Добавить фильтрацию тегов, позволяющую удобно настраивать ленту / API fixes for filters needed \(5 голосов за 3 приоритет, 3,27 - среднее\)  -4. Реализовать постраничный вывод информации для реализации системы приватных сообщений / Proposal for API update for private messaging implementation \(5 голосов за 4 приоритет, 3,72 - среднее\)  -5. Улучшить систему описания ошибок, унаследованную от Стимита / Introduce assert exceptions codes standardisation \(10 голосов за 5 приоритет, 4,27 - среднее\)  - -_Проголосовало 18 человек из топа делегатов, голосование закрыто._ - -Опираясь на договоренности, которые были [достигнуты с делегатами](https://golos.io/ru--golos/@goloscore/novosti-golos-core-rezultaty-vstrechi-v-discord-29-03-2018-golosovanie-za-funkcional-khf-18) в работу на следующий ХФ Golos•Core берет 5 функциональных фич  \(наивысший приоритет\) и 2 технических \(наивысший приоритет\). При этом работа над фичами будет вестись в соответствии с обозначенными приоритетами и с учетом ограничения на разработку в один месяц.  - -Предложение, полученное от [@golosio](https://golos.io/@golosio) о переработке API в [этой статье,](https://golos.io/golosio/@golosio/golos-io-predlozheniya-po-soderzhaniyu-khardforkov-i-softforkov) заключалось в “полном обновлении API в соответствии со спецификацией JSON-RPC 2.0”. Это влечет объединение пунктов 3 и 4 в единую объемную задачу, которая потребует разработки спецификации того, как будет выглядеть новое API,  а также составлен план перехода на новое API. Поэтому технические фичи, предложенные [@golosio](https://golos.io/@golosio), переходят в пул задач на будущее. - -Просим обратить внимание, что фичи, заимствованные со Стимит, будут изначально внедряться без функциональных изменений с учетом сроков и согласованных приоритетов по разработке \(нагоняем Стимит в ближайших ХФ\). Для Golos•Core приоритетом является доставка фич в фиксированные промежутки времени по согласованной стратегии - догнать Стимит.  - -Делегатов и тех, кто считает необходимым вносить изменения в функциональные фичи, приглашаем обсуждать темы на Голосе, в телеграм-канале аналитика \(все ссылки ниже\). Напоминаем, что изменения экономики требуют консенсуса по задаче, моделирования и занимают время. В случае, если данная работа будет проведена оперативно \(по-меньшей мере, за неделю до окончания разработки\), и предложения будут поддержаны большинством, то Golos•Core сделает необходимое, чтобы они были учтены в коде следующего ХФ.   - -С учетом необходимости мониторинга и мелких доработок по текущему ХФ к реализации следующего ХФ Golos•Core приступит после декомпозиции выбранных задач, что будет сделано в течение 5-7 рабочих дней.  - -Напоминаем, что коммуникацию с Голос Кор можно вести по следующим каналам: - -* [https://t.me/goloscoretc](https://t.me/goloscoretc) - \(решение технических вопросов, связанных с работой блокчейн, нод, api и др.\) -* [https://t.me/golos\_tools](https://t.me/golos_tools) - \(решение вопросов по различным интерфейсам и дополнительным инструментам, создаваемым Golos•Core\) -* [https://t.me/goloscore\_analytics](https://t.me/goloscore_analytics) - \(решение вопросов по работе экономики блокчейн, статистическим экономическим данным, аналитике данных\) -* [https://t.me/goloscoretech](https://t.me/goloscoretech) - \(новостной канал, с актуальной информацией от Golos•Core\) - -Мы будем очень рады, если вы поддержите делегата [@goloscore](https://golos.io/@goloscore). Заходите на страничку [https://golos.io/~witnesses](https://golos.io/~witnesses) и проголосуйте за делегата Golos•Core - - -Спасибо за внимание и хорошего дня!  - -С уважением, - -Команда Golos•Core [@kotbegemot](https://golos.io/@kotbegemot), [@korpusenko](https://golos.io/@korpusenko), [@abgvedr](https://golos.io/@abgvedr), [@andreypf](https://golos.io/@andreypf), [@epexa](https://golos.io/@epexa), [@muhazokotuha](https://golos.io/@muhazokotuha), [@timurku](https://golos.io/@timurku), [@mariadia](https://golos.io/@mariadia) - - - -[Источник](https://golos.io/ru--golos/@goloscore/novosti-golos-core-khardfork-17-prinyat-plany-na-khardfork-18) +# Новости Golos•Core. +Новости команды Golos Core можно прочитать в ленте официального аккаунта https://golos.io/@goloscore \ No newline at end of file diff --git a/0-aktualnoe/o-razvitii-golos.md b/0-aktualnoe/o-razvitii-golos.md index 6991ca75..c65577ba 100644 --- a/0-aktualnoe/o-razvitii-golos.md +++ b/0-aktualnoe/o-razvitii-golos.md @@ -1,60 +1,3 @@ -# Хардфорк состоялся: итоги, планы и благодарности - -![](https://images.golos.io/DQmQeJsCndS2BW7hMSNc4RTuzp7VVnTxCiBuCMLwknQELUn/victory-2017-billboard-1548.jpg) - -Друзья, вчера наконец свершилось то, чего мы все так долго ждали — хардфорк 17 успешно вступил в свои права! Golos.io и его зеркало Golos.blog полноценно функционируют. На данный момент еще могут появляться некоторые ошибки, которые оперативно исправляются Игорем[@b1acksun](https://golos.io/@b1acksun)и Денисом[@muhazokotuha](https://golos.io/@muhazokotuha). - -Бессонные ночи и ненормированные рабочие дни не прошли даром: результат выше всяких похвал. Вы молодцы, потому что хардфорк случился, и его внедрили вы: Игорь[@b1acksun](https://golos.io/@b1acksun), Денис[@muhazokotuha](https://golos.io/@muhazokotuha), Женя[@dekol](https://golos.io/@dekol)и Юра[@yuri-vlad](https://golos.io/@yuri-vlad), Николай[@nickshtefan](https://golos.io/@nickshtefan). Ребята, большое спасибо за ваш труд! - -Спасибо нашим коллегам из[@goloscore](https://golos.io/@goloscore)—[@kotbegemot](https://golos.io/@kotbegemot),[@korpusenko](https://golos.io/@korpusenko),[@abgvedr](https://golos.io/@abgvedr),[@andreypf](https://golos.io/@andreypf),[@epexa](https://golos.io/@epexa),[@muhazokotuha](https://golos.io/@muhazokotuha),[@timurku](https://golos.io/@timurku),[@mariadia](https://golos.io/@mariadia)— команде, которая подготовила хардфорк и была на страже того, чтобы все прошло успешно. - -Спасибо за внимание и оперативность делегатам[@ropox](https://golos.io/@ropox),[@vik](https://golos.io/@vik)и[@vvk](https://golos.io/@vvk)за помощь в тестировании предложенного кода, поиск и описание ошибок, за вашу активность и советы. - -И, конечно, благодарим все сообщество Golos.io за поддержку и веру в проект! - -# А теперь немного о планах - -Нам крайне жаль, что**не все делегаты**[**услышали**](https://docs.google.com/spreadsheets/d/1NyHHTfpS24A7oaro1xJ1KisCvf4V9KZdoape1bY9rXA/edit#gid=0)**запросы и боли сообщества**, выраженные в[предложениях](https://golos.io/golosio/@golosio/golos-io-predlozheniya-po-soderzhaniyu-khardforkov-i-softforkov)от[@golosio](https://golos.io/@golosio), и выставили низкий приоритет задачам, предложенным[@golosio](https://golos.io/@golosio)для[состава](https://golos.io/ru--golos/@goloscore/novosti-golos-core-khardfork-17-prinyat-plany-na-khardfork-18)следующего хардфорка.   - -По результатам[голосования о составе](https://golos.io/ru--golos/@goloscore/novosti-golos-core-rezultaty-vstrechi-v-discord-29-03-2018-golosovanie-za-funkcional-khf-18)18 хардфорка, к сожалению, в его состав попала только одна из предложенных задач Golos.io —[возможность пользователям вносить изменения в профиль при помощи постинг ключа](https://github.com/GolosChain/golos/issues/196).  - -![](https://images.golos.io/DQmRqk6Px8RN9bkqyzvjJtS8dCr4ZZeFMU59AUhFB4kpEjv/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202018-04-05%20%D0%B2%2018.13.25.png) - -[Предложения от @golosio](https://golos.io/golosio/@golosio/golos-io-predlozheniya-po-soderzhaniyu-khardforkov-i-softforkov), которые не вошли в состав хардфорка: - -* внедрить фильтрацию тегов, позволяющую удобно настраивать ленту, искать и выдавать контент, сохранять выбранные теги, дать возможность отказаться от выдачи контента по тегу; -* постраничный вывод информации для оптимизации работы личных сообщений; -* улучшение отображения описания ошибок из блокчейна для понимания пользователей клиента. - -![](https://images.golos.io/DQmYCP87j5T6ycR7EFNAgYnicP564wjqtMnT7WLzbTQ8v3o/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202018-04-05%20%D0%B2%2018.13.10.png) - -# Баунти по хардфорку 18 - -Задачи, перечисленные выше, крайне важны с точки зрения развития приложений на блокчейне Голоса.**Поэтому мы предлагаем сообществу включиться в разработку по данным направлениям**. Код будет проходить рецензирование, на него будет расписана спецификация, по которой и надо будет действовать. - -Golos.io[@golosio](https://golos.io/@golosio)объявляет баунти на разработку и решение задач, перечисленных выше и не вошедших в хардфорк. Мы рассчитываем, что программисты из сообщества Голоса подключаться к решению обозначенных задач через пулл-реквесты. А делегаты Голоса согласятся на то, чтобы реализованные задачи вошли в хардфорк 18. - -Задача «улучшение отображения описания ошибок из блокчейна для понимания пользователей клиента» на баунти программу не выставляется, так как ее выполнение возможно только командой[@goloscore](https://golos.io/@goloscore). - -Помимо этого, мы предлагаем всем желающим в рамках баунти разработать юнит-тесты для упомянутых задач. - -Опыт[@gorox](https://golos.io/@gorox)показал, что эта разработка пошла на пользу блокчейну Голоса, в дополнение к тому, что делается основной командой[@goloscore](https://golos.io/@goloscore), — это хорошая практика.  - -**Очень надеемся на сотрудничество с комьюнити**, и будем рады, если вы[возьмете решение этих задач на себя](https://github.com/GolosChain/advances/issues)\(assign\). - -Иллюстрация: billboard.com. - -— - -Подписывайтесь на официальный аккаунт блог-платформы Golos.io[@golosio](https://golos.io/@golosio), чтобы быть в курсе развития проекта! Телеграм для ваших вопросов —[https://t.me/golos\_support](https://t.me/golos_support). Лучшее на Голосе —[https://t.me/golos\_best](https://t.me/golos_best)Есть предложения, как сделать Golos.io лучше? Пишите предложения в[Issues на нашем Github](https://github.com/GolosChain/tolstoy/)или в наш[Телеграм-канал](https://t.me/golos_support)! - -— - -С уважением, команда Golos.io[@golosio](https://golos.io/@golosio):[@alex-firsov](https://golos.io/@alex-firsov),[@b1acksun](https://golos.io/@b1acksun),[@dan-kinescop](https://golos.io/@dan-kinescop),[@dekol](https://golos.io/@dekol),[@insider](https://golos.io/@insider),[@jevgenika](https://golos.io/@jevgenika),[@chinpu](https://golos.io/@chinpu),[@muhazokotuha](https://golos.io/@muhazokotuha),[@nickshtefan](https://golos.io/@nickshtefan),[@pav](https://golos.io/@pav),[@sualex](https://golos.io/@sualex),[@yulia.rodnikova](https://golos.io/@yulia.rodnikova),[@yuri-vlad](https://golos.io/@yuri-vlad). - - - -[Источник](https://golos.io/golosio/@golosio/khardfork-sostoyalsya-itogi-plany-i-blagodarnosti) - - +# Новости команды Golos.io +Новости команды Golos.io можно прочитать в ленте официального аккаунта https://golos.io/@golosio \ No newline at end of file diff --git a/0-aktualnoe/vakansii-komandi.md b/0-aktualnoe/vakansii-komandi.md index 0493d216..4089fe2c 100644 --- a/0-aktualnoe/vakansii-komandi.md +++ b/0-aktualnoe/vakansii-komandi.md @@ -1,127 +1,3 @@ -###Golos.io: Мы ищем комьюнити-менеджера -Друзья, в связи с расширением команды Golos.io, мы ищем комьюнити-менеджера. - -Наш идеальный кандидат: - -- Умеет общаться с комьюнити и поддерживать репутацию компании; -- Имеет практический опыт ведения сообществ; -- Грамотно общается и обладает отличным чувством юмора. - -Чем у нас нужно будет заниматься: - -- Участвовать в жизни сообщества — общаться с пользователями Golos.io в Телеграм, соцсетях и на платформе; -- Оказывать постоянную информационную поддержку пользователям; -- Взаимодействовать с лидерами мнений; -- Проводить опросы и интервьюировать пользователей; -- Собирать и систематизировать отзывы пользователей; -- Обрабатывать фидбек участников комьюнити; -- Составлять рекомендации для команд разработчиков на основе обратной связи; -- Разработать стратегию реагирования и нивелирование негатива; -- Писать новости в наш блог (пару раз в неделю) о деятельности команды разработки; -- Мониторить тематические ресурсы, реагировать на комментарии и консультировать пользователей в социальных сетях, поддерживать и защищать бренд; -- Создавать и проводить тематические мероприятия внутри проекта; -- Поддерживать и развивать активности сообщества на русском (частично на английском). - -#####Требования: - -- Опыт работы комьюнити или SMM менеджером от года; -- Грамотный письменный английский и русский языки; -- Понимание аудитории, общение с ней на одном языке; -- Стрессоустойчивость и вежливость в общении; -- Развитые коммуникативные навыки, стремление к саморазвитию, внимание к деталям. - - -Будет плюсом: - -- Навыки написания текстов; -- Опыт работы в международных проектах. -- Что мы предлагаем: - -- Возможность работать удаленно в удобном для вас режиме; -- Бесконечные возможности роста; -- Обучение и развитие в самом технологическом сегменте Интернета; - - -Ждем ваше резюме и портфолио на почте pr@golos.io. - -Уровень заработной платы обсуждается отдельно в зависимости от результатов выполнения тестового задания и собеседования. Мы были бы рады видеть на этой позиции представителя нашего сообщества. - -Кроме того, мы все еще [ищем разработчика](https://golos.io/golosio/@golosio/komanda-golos-io-rasshiryaetsya-ishem-talanty). - -Подписывайтесь на официальный аккаунт блог-платформы Golos.io @golosio, чтобы быть в курсе развития проекта! Телеграм для ваших вопросов — https://t.me/golos_support. -Есть предложения, как сделать Golos.io лучше? Пишите предложения в Issues на нашем Github или в наш Телеграм-канал! - - -С уважением, команда Golos.io @golosio: @alex-firsov, @b1acksun, @dan-kinescop, @insider, @jevgenika, @merrymary, @nickshtefan, @pav, @muhazokotuha, @yuri-vlad. - -[Источник](https://golos.io/golosio/@golosio/golos-io-my-ishem-komyuniti-menedzhera) - - -## 💔 Голос в поисках разработчиков мобильного приложения iOS - -##### Общие требования: - -- Разработка и поддержка нового мобильного приложения на iOS устройствах. -- Понимание принципов клиент-серверного взаимодействия; -- Базовый английский язык; -- Стремление к созданию продукта мирового уровня. - -##### Требования для iOS-разработчика: - -- Опыт разработки нативных iOS приложений от 2 лет; -- Опыт Swift, Objective-C, iOS SDK; -- Наличие законченных iOS проектов, ссылки на AppStore; -- Git, CocoaPods, CoreData, AFNetworking, SocketRocket - каждое из этих слов должно быть хорошо знакомо. - -##### Условия: - -- Фултайм. Удаленка. С опытом работы; -- Оплата в биткоинах, 1 числа следующего месяца; -- Бесконечные возможности роста как профессионального так и карьерного; -- Классный коллектив и интересные задачи; -- Опцион по результатам работы. - -##### Полезные ссылки - -- Вики проекта ГОЛОС -- Документация для разработчиков - -Ждем резюме и портфолио на: [marketing@golos.io](mailto:marketing@golos.io) - -@jevgenika, CMO -Команда GOLOS.io - -[Источник](https://golos.io/golos/@golosio/mobile-first-komanda-golosa-v-poiskakh-razrabotchikov-mobilnogo-prilozheniya-ios-android-reactnative) - -## 💔 Вакансия Full Stack Web Developer - -Социальная блог-платформа Golos.io ищет в свою Команду Фулл-стек разработчика! - -Full Stack Web Developer -#####Требования к соискателю: - -- Опыт с React/Redux/Redux-Saga; -- Уверенные знания JavaScript, браузерного API; -- Владение HTML, CSS и кроссбраузерной версткой, адаптивной версткой; -- Опыт работы с Node.js; -- Навыки работы с Git; -- Опыт использования СУБД: MySQL, PostgreSQL‎; -- Портфолио выполненных проектов, тех, в которых вы принимали участие; -- Знание английского языка: не ниже Intermediate. Рабочая переписка, умение вести диалог. Это не обязательное требование! - -#####Основные условия: - -- Удаленная работа -- Работа на сложном и крупном проекте. -- Интересные и разнообразные задачи как по клиентской, так и по серверной разработке; -- Гибкий график; - -Мы не проводим интервью, мы беседуем :-) - -Беседовать будем о твоём опыте и о наших условиях. Если есть что показать или продемонстрировать — будем рады увидеть это через демонстрацию рабочего стола. Беседы проводим по всем ненавистному Скайпу. - -С нами связаться можно: telegram: [@pavitt](tg://resolve?domain=pavitt). - -[Источник](https://golos.io/golos/@golosio/vakansiya-full-stack-web-developer) - +###Вакансии команд Голоса +Информация о вакансиях обновляется. \ No newline at end of file diff --git a/0-aktualnoe/vnimanie-alternativnie-tochki-vhoda.md b/0-aktualnoe/vnimanie-alternativnie-tochki-vhoda.md index b239f2d1..d622c70c 100644 --- a/0-aktualnoe/vnimanie-alternativnie-tochki-vhoda.md +++ b/0-aktualnoe/vnimanie-alternativnie-tochki-vhoda.md @@ -6,3 +6,5 @@ > ##### Существует также **мобильное приложение для Android**. Оно доступно [на Google Play](https://play.google.com/store/apps/details?id=io.golos.golos) и на странице [golos.io/app](https://golos.io/app). +Зеркало сайта Golos.io в TOR - golos4naqn64true.onion + diff --git a/1-introduction/chto-takoe-sila-golosovaniya-i-skolko-postov-mozhno-laikat-za-sutki.md b/1-introduction/chto-takoe-sila-golosovaniya-i-skolko-postov-mozhno-laikat-za-sutki.md index dbe26260..56a92e47 100644 --- a/1-introduction/chto-takoe-sila-golosovaniya-i-skolko-postov-mozhno-laikat-za-sutki.md +++ b/1-introduction/chto-takoe-sila-golosovaniya-i-skolko-postov-mozhno-laikat-za-sutki.md @@ -1,27 +1,9 @@ -Практически все новички пришедшие на платформу блокчейн Голос сразу начинают голосовать \(лайкать\) все посты без разбора, не задумываясь о том, сколько раз они лайкнули. Это **не правильно**! Смотрим первый скриншот ниже, там статистика одного из случайно выбранных пользователей: +Практически все новички, пришедшие на платформу Голос, сразу начинают голосовать \(лайкать\) все посты без разбора, не задумываясь о том, сколько раз они лайкнули. Это **неправильно**. -![](https://imgp.golos.io/0x0/https://i.imgur.com/mv4e5Wt.png) +Каждый раз когда пользователь лайкает чей-либо пост или коммент - его **Мощность Голоса (Voting Power)** снижается. А чем меньше мощность голоса - тем меньше GBG получит автор, которого вы лайкнули и тем меньше получите вы за свой поставленный лайк \(так называемое кураторское вознаграждение\).  -Обратите внимание на параметры 132 votes / 24 hrs и Voting Power. **votes / 24 hrs** - это кол-во голосов в сутки \(сколько раз пользователь лайкнул чей-либо пост или коммент\), а **Voting Power** - это сила вашей голосовалки, так сказать. Чем меньше сила - тем хуже для всех! Каждый раз когда пользователь лайкает чей-либо пост или коммент - **Voting Power** снижается, это значит, что ваша сила голосования падает. А чем меньше сила вашего голосования - тем меньше GBG получит автор, которого вы лайкнули и тем меньше получите вы за свой поставленный лайк \(так называемое кураторское вознаграждение\).  -**Важно!** Не путайте значения "сила голосования" и "Сила Голоса", это разные вещи! +**Уровень своей Мощности голоса (Voting Power) можно посмотреть на сайте golos.io в правом верхнем углу экрана, рядом с вашим логином и аватаром.** -Voting Power нельзя снижать ниже 80%, особенно, если вы ещё новичок и у вас маленькая Сила Голоса. В сутки нужно лайкать не более 40 постов \(или комментов\), это как раз снижает силу вашей голосовалки примерно на 20%, то есть - со 100% снижается до 80%. - -Что же делать, если вы на лайкали уже по 132 \( как на скриншоте выше, к примеру \) поста и ваша сила голосования \(Voting Power\) упала практически к плинтусу? Ответ простой: нужно просто прекратить лайкать посты и комменты на несколько дней... Да и писать посты в это время тоже не желательно. Нужно подождать, пока ваша сила голосования \(Voting Power\) нарастёт хотя бы до 95% и более. В сутки она нарастает \(восполняется\) на 20%. - -Проверять эту статистику можно на сайте [http://golos.steemstats.com/\#/](http://golos.steemstats.com/#/) , там нужно ввести в поле свой ник и нажать клавишу Enter, потом подождать минуту-две \(иногда и больше\) пока статистика полностью синхронизируется. Синхронизация происходит в верхнем правом углу, смотрите скриншот: - -![](https://imgp.golos.io/0x0/https://i.imgur.com/4QFZ9PW.png) - - - -Ещё раз: лайкать нужно не более 40 постов \(или комментов\) в сутки, особенно если вы ещё новичок и ваша **Сила Голоса** не равняется нескольким тысячам. И периодически следить за вот этими процентами, чтобы они не опускались ниже 80. - -Голосуя с таким низким процентом Voting Power \(как у anna-magred, к примеру\) - вы сами не заработаете ничего, да и автор поста за которого голосуете - тоже ничего не получает! Вот вам доказательство этого: ниже показан скриншот со статистикой голосования за конкретный пост. Там отмечены красным те пользователи, которые проголосовали, но пользы от их голосования абсолютно не было. Ни автор, ни они сами не заработали даже копейки, потому что во время голосования у них была очень низкая сила голосования \(Voting Power\). Значение **Author Reward**  - это вознаграждение автору поста, а **Curation Reward**  - это вознаграждение голосовальщику \(куратору\). - -![](https://imgp.golos.io/0x0/https://i.imgur.com/EGwIxUx.png) - -Просто следите за процентами вашей Voting Power, пишите интересные посты и лайкайте до 40 штук в сутки **действительно интересных вам постов**! - -Когда ваша СГ вырастет до определённого значения, то вы сможете сами выбирать с каким процентом Силы Голосования проголосовать за тот или иной пост/коммент. В таком случае можно будет экономить Силу Голосования и лайкать более 40-ка постов/комментов в сутки, но это уже отдельная тема. +Voting Power не стоит снижать ниже 80%, особенно, если вы ещё новичок и у вас маленькая мощность голоса. В сутки нужно лайкать не более 40 постов \(или комментов\), это как раз снижает силу вашей голосовалки примерно на 20%, то есть - со 100% снижается до 80%. +Что же делать, если вы налайкали уже много постов и ваша мощность голоса \(Voting Power\) упала практически к плинтусу? Ответ простой: нужно просто прекратить лайкать посты и комменты на несколько дней... Да и писать посты в это время тоже нежелательно. Нужно подождать, пока ваша мощность голоса \(Voting Power\) нарастёт хотя бы до 95% и более. В сутки она восполняется на 20%. \ No newline at end of file diff --git a/1-introduction/faq.md b/1-introduction/faq.md index 7aed4fa0..9f812bdb 100644 --- a/1-introduction/faq.md +++ b/1-introduction/faq.md @@ -14,7 +14,7 @@ Вы можете посмотреть следующее короткое видео, но у Вас наверняка останутся вопросы, поэтому после просмотра читайте wiki дальше!
-{%youtube%}8a0TPACOu2k{%endyoutube%} +\{\%youtube\%\}8a0TPACOu2k\{\%endyoutube\%\} #### В чем уникальность Голоса? Медиа-платформа с токенами - не инновационное решение. Но у Голоса есть особенности. @@ -66,7 +66,7 @@ Годовая инфляция содержится на уровне 15%, и снижается на 0.01% каждые 250,000 блоков (около 0.5% в год), пока не остановится на 0.95%. #### На каких биржах торгуются токены ГОЛОС и Золотой? -На данный момент проект поддержан биржами: [Bittrex](https://bittrex.com/), [Livecoin](https://www.livecoin.net), [Kuna](https://kuna.io/), [OpenLedger](https://openledger.info/). +На данный момент проект поддержан биржами: [Bittrex](https://bittrex.com/), [Livecoin](https://www.livecoin.net), [Kuna](https://kuna.io/), [OpenLedger](https://openledger.io/) / [RuDEX.org](https://market.rudex.org/). Также возможна продажа токенов ГОЛОС на токены Золотой и обратно [на внутреннем рынке](https://golos.io/market). @@ -87,7 +87,7 @@ #### Чем отличается Голос от других социальных площадок? Голос - это платформа для размещения своего контента. -В чем же отличие от других площадок? Первое отличие - размещая свой контент на Голосе Вы будете получать за него вознаграждение в виде... денег! Также вы сможете вознаграждать других поддерживая их контент (лайкать/курировать его). Ну и третье основное отличие (хотя их еще много), это то что, размещая свой контент на Голосе, вы размещаете его в блокчейне (и в интернете) навсегда. Полностью удалить контент можно только разрушив всю сеть блокчейна. +В чем же отличие от других площадок? Первое отличие - размещая свой контент на Голосе Вы можете получать за него вознаграждение в виде... денег! Также вы сможете вознаграждать других, поддерживая их контент (лайкать/курировать его). Ну и третье основное отличие (хотя их еще много), это то что, размещая свой контент на Голосе, вы размещаете его в блокчейне (и в интернете) навсегда. Полностью удалить контент можно только разрушив всю сеть блокчейна. #### Что такое "форк"? Важно упомянуть, что Голос - это форк Стима (www.steemit.com), социальной площадки в основном для англоязычных пользователей. @@ -143,7 +143,7 @@ Посмотрите это видео (5 минут):
-{%youtube%}TRtHhXOte0o{%endyoutube%} +\{\%youtube\%\}TRtHhXOte0o\{\%endyoutube\%\} #### Что такое криптовалюта? Криптовалюта - это валюта, которая эмитируется технологией блокчейн (описано выше) и является децентрализованной. @@ -159,7 +159,7 @@ Можно сказать, что делегаты / заверители (смотрите выше), так как именно благодаря работе их компьютеров (серверов) и получается награда, из которой 66.66% выделяется на оплату "банкета". #### Что за цифры я вижу под статьей в golos.io? -Это та сумма (в той валюте, в которой Вы выбрали, чтобы отображалась информация на сайте), которую Вы потенциально можете получить после истечения 7-ми дней с момента написания статьи. +Это та сумма (в той валюте, в которой Вы выбрали, чтобы отображалась информация на сайте), которую Вы потенциально можете получить после истечения 7-ми дней с момента публикации статьи. Также выплата является потенциальной по двум причинам: а) человеку может разонравиться Ваша статья и он снимет с неё свой апвоут @@ -169,15 +169,22 @@ #### Как получить мои деньги? Получить свои "кровные" довольно просто. -После того, как вам будет начислена награда, Вы можете это сделать, зайдя во вкладку "кошелек", где увидите свои балансы трех «токенов» (об этом ниже). Вам нужен "токен" Золотой. Нажимаем на стрелку справа от суммы и кнопку "передать". Далее заполняем графу "кому" (биржа получатель), "количество" (с каким не жалко расстаться), "заметка" (часто биржи требуют специальную заметку, берётся с биржи) и нажимаем передать. Вводим свой пароль. +После того, как вам будет начислена награда, Вы можете это сделать, зайдя во вкладку "кошелек", где увидите свои балансы трех «токенов» (об этом ниже). Вам нужен "токен" Золотой или GBG. Нажимаем на стрелку справа от суммы и кнопку "передать". Далее заполняем графу "кому" (биржа получатель), "количество" (с каким не жалко расстаться), "заметка" (часто биржи требуют специальную заметку, берётся с биржи) и нажимаем передать. Вводим свой пароль. На бирже Вы обмениваете монеты на биткоин или другие криптовалюты, и далее на удобную для Вас валюту. После чего биржа предложит несколько способов вывода. Выбираем тот, который Вам удобнее всего и "вуаля" - денежки Ваши. +"Токены" Силы Голоса можно обменять на "токен" Голос, делается это из Вашего кошелька, путем нажатия клавиши "Уменьшить силу Голоса" - далее сумма вашей Силы Голоса будет начисляться Вам в кошелек в виде "токена" Голос 1 раз в неделю в 20 равных частях. То есть Вы будете получать её 20 недель. + +Уменьшать свою Силу Голоса крайне не рекомендуется, так как её стоимость защищена от рыночных спекуляций (читайте подробней про экономику Голоса в [ЧАВО](/1-introduction/faq.html) и в других частях Вики). + +"Токен" Голос, так же можно вывести на биржу и обменять на биткоин и / или другие валюты. + #### Как "голосовать"? Голосовать за контент ("делать апвоут", "курировать") Вы можете путем нажатия на стрелочку в круге, справа от суммы внизу статьи. В случае, когда у Вас есть более определенного количества СГ (Сила Голоса), Вам будет доступна опция "ползунок" или "шкала" - вы сможете регулировать Ваш Голос в размере от 1 до 100%. -Помните, что в день можно голосовать, сколько угодно раз, но с каждым голосованием ваша Сила Голоса будет становиться меньше (соответственно, Ваш "лайк/апвоут" будет стоить меньше). Но не волнуйтесь, Сила Голоса так же постоянно восстанавливается. +Помните, что в день можно голосовать, сколько угодно раз, но с каждым голосованием ваша Сила Голоса будет становиться меньше (соответственно, Ваш "лайк/апвоут" будет стоить меньше). Но не волнуйтесь, Сила Голоса так же постоянно восстанавливается. +Если пользователь много голосовал и сильно посадил батарейку, придется подождать несколько часов или дней, чтобы восстановить мощность аккаунта. Не стоит голосовать больше 40 раз за сутки со 100% силой. #### Что такое Сила Голоса и другие «токены»? В медиаблокчейне Голосе 3 вида "токенов" (монет) - Голос, Сила Голоса и Золотой. @@ -188,13 +195,6 @@ в) Золотой - на сайте выражен в удобной для Вас валюте (можно её выбрать во вкладке "Кошелек" в настройках). Приравнивается к курсу 1 мг золота на рынке (на рынке драгоценных металлов по текущему курсу). -#### Что ещё мне надо знать? -"Токены" Силы Голоса можно обменять на "токен" Голос, делается это из Вашего кошелька, путем нажатия клавиши "Уменьшить силу Голоса" - далее сумма вашей Силы Голоса будет начисляться Вам в кошелек в виде "токена" Голос 1 раз в неделю в 20 равных частях. То есть Вы будете получать её 20 недель. - -Уменьшать свою Силу Голоса крайне не рекомендуется, так как её стоимость защищена от рыночных спекуляций (читайте подробней про экономику Голоса в [ЧАВО](/1-introduction/faq.html) и в других частях Вики). - -"Токен" Голос, так же можно вывести на биржу и обменять на биткоин и / или другие валюты. - #### Кто придумал Голос? За идеей проекта Голос стоит команда [Кибер Фонда](https://cyber.fund/) - это команда русскоязычных разработчиков, управляющих несколькими криптофондами. diff --git a/1-introduction/faq/otveti-komandi.md b/1-introduction/faq/otveti-komandi.md new file mode 100644 index 00000000..ce5e2258 --- /dev/null +++ b/1-introduction/faq/otveti-komandi.md @@ -0,0 +1,193 @@ +## Ответы команды golos.io на вопросы новичков + +Авторы:[ @vp-liganovi4kov](https://golos.io/@vp-liganovi4kov "@vp-liganovi4kov") + +**1. Какие существуют дополнительные инструменты для большей эффективности в Голосе?** + +**Ответ:** +Для эффективного продвижения автора на golos.io необходимо активное участие в жизни платформы, которое может быть выражено в различных действиях: + +* постоянное комментирование материалов других авторов; + +* “перелинковка”, “гиперссылки” - упоминание постов пользователей в своем блоге; + +* увеличение базы подписчиков; + +* увеличение количества просмотров постов непосредственно на платформе; + +* шеринг материалов из Голоса на других платформы, с целью привлечения лояльных читателей; + +* участие в конкурсах, викторинах, эстафетах и т. д. \(Тема недели \(чат в телеграм [https://t.me/temanedeli](https://t.me/temanedeli), список конкурсов можно найти в “Афише” Лиги Авторов” [@liga.avtorov](https://golos.io/@liga.avtorov)\); + +* публикации текстов параллельно со страниц своего блога и со страниц тематических сообществ, с сохранением авторства\). + +**2. Как найти ботов-помощников для работы с голосом? Где их искать?** + +**Ответ:** +Инструменты для работы на Голое частично выложены на странице [https://golos.io/about](https://golos.io/about) и на сайте [http://chainstore.io](http://chainstore.io/), а также в аккаунте [@vik](https://golos.io/@vik) + +**3. Влияет ли время публикации поста на его популярность?** + +**Ответ:** +На этот вопрос нет точного ответа. Голос - платформа международная, и можно наблюдать активность разных регионов планеты в разное время. К примеру, ночью публикуются пользователи, живущие в Штатах, Канаде. Ранним утром - в Сибири и на Дальнем Востоке. Пользователями Golos.io проводятся исследования. Считается, что лучшее время для публикации, это утро \(9-12 часов по Мск\) и вечер \(20-22 часов по Мск\). Именно тогда большинство читателей готовы просмотреть свежие посты, с утра, или накопившиеся за день - вечером. Также популярны посты в середине дня, многие читают ленту в обед. + +**4. Я много голосовала и теперь у меня низкая Сила Голосования - 61.67% Voting Power. Это плохо? Как я могу это поправить? Я комментирую, но больше новичков, такую небольшую поддержку оказываю.** + +**Ответ:** +То, что ваш Voting Power уменьшается при частом голосовании, это нормально. Сила голоса каждого пользователя ограничена по частоте использования и уменьшается с каждым отданным голосом на величину до 5%. Скорость снижения зависит также от частоты голосования: чем чаще вы это делаете, тем быстрее она снижается. Если, к примеру, голосовать один раз в 20 минут \(примерно\), Сила голосования будет снижаться незначительно. Чтобы восстановить ее прежнее значение, вам нужно какое-то время не голосовать, полностью она восстанавливается за 24 - 48 часов. Если “посажена” сильно, то может восстанавливаться в течение недели. + +**5. Где можно посмотреть блоги китов и касаток, какие-нибудь ТОПы? +Стоит ли увеличить свою силу Голоса разовым “вливанием” суммы?** + +**Ответ:** +Дифференцированный поиск пользователей \(в нашем случае, по силе голоса\) на платформе пока не организован. Однако регулярно публикуются топы успешных авторов, популярных тем и т. д., [например](https://golos.io/ru--golos/@aleco/top-golosa-kto-imeet-samyi-bolshoi-ves-na-platforme-15-03-2018). + +Раздел “Популярное” также представляет собой топ наиболее высоко оцененных постов. + +Силу голоса можно увеличить различными способами, в том числе, приобретением токенов на бирже, как и когда вы считаете нужным. + +**6. Можно ли здесь продвинуться быстрее, имея готовые тексты \(стихи, проза\), опыт рерайтинга, корректирования.** + +**Ответ:** +Имея какое-то количество готовых материалов и опыт написания текстов у вас, конечно, есть некоторые преимущества на Golos.io. Поскольку регулярно обновляемый блог с качественным и уникальным контентом имеет больше шансов на успех. Также можно публиковать свои тексты, размещенные ранее на других площадках, верифицируясь в Культуре Голоса \(чат телеграм[https://t.me/kultura\_golosa](https://t.me/kultura_golosa)\), и оставляя ссылку на первоисточник под постом. + +**7. У меня пропала возможность писать комментарии и делать лайки, это что-то не то с сайтом?** + +**Ответ:** +Это могло произойти из-за того, что вы много голосовали \(ставили лайки\), в результате чего [уменьшилась ваша сила голоса.](https://wiki.golos.io/2-rewards/curation_rewards.html) Необходимо либо пополнить силу голоса, докупив или получив от других пользователей токены Golos и переведя их в силу голоса, либо какое-то время не производить на сайте никаких действий. Сила голосования полностью восстанавливается в течение 24 часов, иногда дольше. + +**8. Как увидеть посты того, кто мне интересен? Жму на профиль, там почты есть - жму туда, ничего не происходит... Почему как-то странно считаются посты в блоге, я всего 4 создал, а мне пишет, что у меня их 10?** + +**Ответ:** +При переходе в профиль интересного вам автора открывается страница блога с его публикациями в хронологическом порядке. Переходить в почту не нужно. + +Любой контент, написанный вами и опубликованный - пост или комментарий - в Голосе называется постом. Поэтому цифра в профиле блога зачастую гораздо больше, чем количество публикаций. + +**9. Почему возле некоторых постов появляется логотип голоса и надпись 100% к силе голоса? Как еще выставляются проценты?** + +**Ответ:** +Это означает, что при публикации этих постов вы установили распределение вознаграждения 100% в силу голоса. Есть еще вариант 50/50, он означает, что 50% вознаграждения пойдут в силу голоса, а 50% - в GBG. + +**10. Почему иногда пропадают комментарии и даже опубликованные статьи? Что делать в такой ситуации? Бывало так, что даже показываются на мгновение в ленте, перегружаешь - посты исчезают. Пару раз сталкивалась с тем, что комменты были - и нет их.** + +**Ответ:** +Скорее всего, ваша публикация произошла в неудачный момент “рассинхронизации” нод. Это технические сбои, с которыми мы боремся. Ваш материал просто “не дошел” до блокчейна. В этом случае нужно запостить еще раз. + +[Источник](https://golos.io/golosio/@vp-liganovi4kov/novaya-rubrika-obratnaya-svyaz-otvety-komandy-golos-io-na-voprosy-novichkov) + +### Часть 2. + +**1. Раньше было оптимальным получать награду в выплатах 50/50, как мне объяснили, 50% монетами, 50% в Силу Голоса. Какую позицию выбрать сейчас \(50/50 или 100% в Силу Голоса\), чтобы это было максимально эффективно?** + +**Ответ:** +Вознаграждение за посты теперь начисляется в токенах Голоса, часть из которых впоследствии идет в Силу Голоса. Для начала логично “прокачать” свой аккаунт, чтобы потом он работал на вас и способствовал получению большего вознаграждения. То есть, награду за какое-то количество первых постов лучше переводить в Силу Голоса, а далее уже распределять, как 50/50, для поддержания репутации и получения выплат. + +**2. Чтобы не потерять голоса от флагов, стоит ли их выводить в сейф?** + +**Ответ:** +Сейф предназначен для защиты накоплений в случае воровства аккаунта. +Флаги никак не могут повлиять на Голоса, которые уже хранятся в кошельке. Из-за флагов можно потерять голоса, которые пост получает в течение семидневного окна выплат. +Как только окно выплат закрывается, поставить флаг посту и уменьшить количество полученных голосов нельзя. + +**3. В голосе можно писать личные сообщения? Как и где это делать?** + +**Ответ:** +Система личных сообщений для сайта Golos.io в разработке. Скоро функционал можно будет увидеть на песочнице. +Однако, с реализацией данного сервиса есть некоторые сложности. +Оптимизация работы личных сообщений полностью зависит от реализации API по постраничной выдаче данных блокчейна. Задача не попала в список на текущий ХФ и была выставлена на баунти. + +Любой из разработчиков сообщества Голоса может реализовать данную задачу, награду можно обсудить с командой [@golosio](https://golos.io/@golosio), пишите на почту dev@golos.io или телеграмм [@NickShtefan](https://golos.io/@nickshtefan) + +**4. Я, конечно, давненько не заходил сюда, но с каких это пор голос ругается на изображения свыше 2 мб как "слишком большие" и не дает их загружать?!** + +**Ответ:** +Ограничение по загрузке в пост тяжелых изображений существует с начала функционирования платформы. Чтобы добавить в пост картинку размером свыше 2 Мб, нужно сначала загрузить ее на хостинг, а затем полученную ссылку вставить в пост. + +**5. Как работать с поиском. В нем можно искать по тегам, или по фразе, или по нику?** + +**Ответ:** +На данный момент в блог-платформу Golos.io интегрирован поисковик google. С его помощью можно искать по фразам, отдельным словам и по юзернейму. + +Поисковика непосредственно по сайту Golos.io пока нет, в будущем команда планирует разработку данного функционала. + +**6. Я новичок. Я случайно нажал кнопку "отблагодарить", и все токены, которые у меня были, перевелись автору статьи. Как работает эта кнопка?** + +**Ответ:** +С помощью кнопки “отблагодарить” можно перевести автору поста какое-то количество голосов. Она активна и когда окно выплат поста открыто, то есть он собирает апвоуты, и когда оно уже закрыто. Если вам понравился материал, но проголосовать за него уже нет возможности, то можно отблагодарить автора через эту кнопку. Для этого необходимо ввести в соответствующую строку количество голосов, которые вы готовы передать, написать заметку и подтвердить перевод активным ключом. + +Если у вас перевелись все токены, это означает, что вы не ввели вручную сумму перевода, а нажали на баланс, который в полном объеме отобразился в окне перевода, и подтвердили действие активным ключом. +Напоминаем, для публикации и комментирования используйте постинг ключ. + +**7. Как конвертировать голос в gbg?** + +**Ответ:** +Печать GBG в системе сейчас прекратилась ввиду того, что количество данной валюты набрало критическую массу. Спустя какое-то время GBG снова может начать печататься. Это произойдет, когда количество денежной массы в системе увеличится, и процент GBG относительно всего пула станет меньше. Делистинга в ближайшее время не предвидится, поэтому GBG можно покупать и продавать на биржах: Bittrex, Livecoin, Liqui, Kuna и внутреннем рынке. + +**8. Как лучше поступить с Голосами? Перевести их в Силу голоса? Или пусть так просто лежат в голосах пока?** + +**Ответ:** + +При переводе голосов в Силу Голоса вы усиливаете ее и вес своего апвоута, соответственно, тем самым в перспективе укрепляете свою позицию на платформе и извлекаете больше пользы. Также на голоса, переведенные в Силу Голоса, начисляется процент от эмиссии токенов. + +Однако, если возникнет необходимость перевести криптовалюту в фиатные деньги, с голосами сделать это будет проще, их можно продать на биржах. А вот Силу Голоса сначала нужно перевести в голоса, а этот переход занимает порядка 13 недель. + +Таким образом, переводить ли голоса в Силу Голоса и в каком количестве, зависит от целей конкретного пользователя. + +**9.Почему кошелек иногда отображается только за 2-3 дня, прокрутка не работает дальше, а иногда там можно посмотреть историю даже за неделю?** + +**Ответ:** +Это связано с вашей активностью. Если в последнее время переводов было сделано много, то лента кошелька сокращается до значения “за последние сутки” или “в течение недели”. Если переводов было не много, то она может отображать действия за несколько недель или за месяц. + +**10. Есть ли приложение для Android, работает ли оно корректно, можно ли его ставить, или лучше пользоваться на телефоне браузером?** + +**Ответ:** +Android приложение Golos.io существует, скачать его можно в Google play. + +В мобильных устройствах удобнее пользоваться приложением, нежели открывать сайт платформы через браузер. В приложении есть поиск по тегам, ночной режим, компактная лента, возможность подписаться на автора и многое другое. Оно постоянно обновляется, например, в числе последних апдейтов была добавлена “батарейка” - отображение мощности голоса в профиле пользователя, расширен выбор валют, добавлено отображение для пролистывания изображений в галерее, поиск по пользователям и произведен апдейт профиля пользователя. + +[Источник](https://golos.io/golosio/@vp-liganovi4kov/obratnaya-svyaz-otvety-komandy-golos-io-na-voprosy-novichkov) + +### Часть 3. +**1. Как связаться с пользователем, если у него в аккаунте нет ни одного поста? И в телеграм он не отвечает, видимо, незнакомым аккаунтам.** + +Ответ: Связаться с пользователем можно, отправив ему минимальный перевод, например, 0,001 gbg, через ваш кошелек, и в поле memo написать сообщение или интересующий вас вопрос. + +**2. Я не могу опубликовать пост. Выдает текст что-то типа "У вас не хватает Мощности Голоса", что делать в таком случае?** + +Ответ: Такая ситуация может возникнуть, если вы до этого слишком много голосовали, или опубликовали большое количество постов. Проверьте, стоит ли у вас галочка в окошке "проголосовать за свой пост", если да, попробуйте ее снять. Возможно, это поможет. Если нет, вам необходимо увеличить вашу Силу голоса, либо подождать, когда она повысится, либо увеличить ее посредством приобретения токенов Голос и перевода их в Силу Голоса. Подробнее можно почитать в Вики Голоса, или здесь + +**3. Не могу зарегистрироваться уже третий день. Не приходит ни код, ни смс.** + +Ответ: Если при регистрации не произошла верификация вашего номера, и поля формы, которые нужно заполнить, не стали активными, сделайте скрины процесса и напишите в чат технической поддержки https://t.me/golos_support. + +**4. Прочитал, что сайт golos.io снимает 10% за публикацию через себя. Но я совсем новичок, большинство моих текстов ничего не стоят. Каким образом будет осуществляться этот расчет с нулевых выплат по постам?** + +Ответ: Бенефициарная награда аккаунту @golosio поступает не в токенах Golos, а в Силе Голоса. 10% за публикацию, сделанную через сайт Golos.io, исчисляются из суммы, которую собрал пост. Если выплата за пост нулевая, то и отчисления нулевые. +Сейчас мы работаем над созданием механизма поощрения пользователей, которые публикуют свои материалы через Golos.io. + +**5. Обнаружил в кошельке во вкладке Разрешения уйму ключей. Какие из них мне нужно сохранять? Где почитать про эту страницу?** + +Ответ: Ключи - это ваш “паспорт” в системе блокчейн, пароль не только от аккаунта, где опубликованы посты, но и от кошелька, где могут быть токены. Поэтому относиться внимательно нужно ко всем ключам, и хранить их в нескольких местах, желательно не только в электронном виде, но и на бумаге. +Самый важный - это ключ владельца, он включает в себя функции всех остальных ключей, и необходим для обновления пароля, если есть подозрения, что пароль скомпрометирован. Но без крайней надобности его лучше не использовать. Для постинга и голосования применяйте постинг-ключ, для переводов - активный ключ. +Почитать подробнее о ключах можно в Вики Голоса. + +**6. Почему при моем голосовании выплата автору, которого я поддерживаю, не увеличивается?** + +Ответ: Вероятно, ваша Сила Голоса еще слишком мала, чтобы принести автору доход. Когда она повысится, вы увидите "стоимость" вашего апа, проголосовав за любого автора. + +**7. Вижу под постами интересные цифры - процент силы голосования разный у разных людей. Но у меня нет возможности проголосовать на 50% или 80%. Почему? Она появится когда-нибудь? Такая возможность?** + +Ответ: Ползунок, позволяющий изменять % апвоута, появится со временем, когда ваша Сила Голоса и репутация увеличатся. Сейчас, пока вы новичок, вы не можете регулировать % своего голоса, и в этом нет экономической выгоды, поскольку ваша сила голосования слишком мала. + +**8. Я могу регистрировать несколько аккаунтов? Или только один? Один аккаунт на один номер телефона?** + +Ответ: Да, вы можете иметь несколько аккаунтов. При регистрации через сайт Golos.io для каждого из них потребуется отдельный номер телефона, поскольку подтверждение регистрации происходит по смс. +Подробнее о способах регистрации - здесь. + +**9. Какие действия я могу совершать с минимальной Силой Голоса, той, которая полагается мне после регистрации? Я могу писать посты, комментировать, голосовать?** + +Ответ: Вы можете публиковать посты, комментировать и голосовать за другие материалы. Но не стоит сразу размещать много постов и часто голосовать. Помните, что на платформе есть лимиты: в сутки не более 4 постов и 40 апвоутов со 100% Силой Голоса. +Также обращайте внимание на расход вашей “мощности” голоса, она ограничена по частоте использования и уменьшается с каждым отданным голосом на величину до 5%. Скорость снижения зависит от частоты голосования: чем чаще, тем быстрее она снижается. Отображение этих действий можно увидеть на "батарейке" в шапке сайта. +Чтобы восстановить “мощность“ голоса, нужно какое-то время не голосовать. Полностью она восстанавливается за сутки-двое. Если “посажена” сильно, то может восстанавливаться в течение недели. + +Источник \ No newline at end of file diff --git a/1-introduction/golosfest.md b/1-introduction/golosfest.md index 6714c4cf..5708c46b 100644 --- a/1-introduction/golosfest.md +++ b/1-introduction/golosfest.md @@ -1,5 +1,5 @@ ### Что такое ГОЛОС Фест -{%youtube%}sAT2HwAjUsI{%endyoutube%} +\{\%youtube\%\}sAT2HwAjUsI\{\%endyoutube\%\} Трансляция ГолосФест 2017 2-дневная встреча сообщества блогеров GOLOS.io в Москве 29-30 июля 2017 г., для погружения в мир блокчейна, блоггинга, криптовалют, а также - знакомства, общения и обмена опытом! diff --git a/1-introduction/otveti-komandi-golosio.md b/1-introduction/otveti-komandi-golosio.md new file mode 100644 index 00000000..ce5e2258 --- /dev/null +++ b/1-introduction/otveti-komandi-golosio.md @@ -0,0 +1,193 @@ +## Ответы команды golos.io на вопросы новичков + +Авторы:[ @vp-liganovi4kov](https://golos.io/@vp-liganovi4kov "@vp-liganovi4kov") + +**1. Какие существуют дополнительные инструменты для большей эффективности в Голосе?** + +**Ответ:** +Для эффективного продвижения автора на golos.io необходимо активное участие в жизни платформы, которое может быть выражено в различных действиях: + +* постоянное комментирование материалов других авторов; + +* “перелинковка”, “гиперссылки” - упоминание постов пользователей в своем блоге; + +* увеличение базы подписчиков; + +* увеличение количества просмотров постов непосредственно на платформе; + +* шеринг материалов из Голоса на других платформы, с целью привлечения лояльных читателей; + +* участие в конкурсах, викторинах, эстафетах и т. д. \(Тема недели \(чат в телеграм [https://t.me/temanedeli](https://t.me/temanedeli), список конкурсов можно найти в “Афише” Лиги Авторов” [@liga.avtorov](https://golos.io/@liga.avtorov)\); + +* публикации текстов параллельно со страниц своего блога и со страниц тематических сообществ, с сохранением авторства\). + +**2. Как найти ботов-помощников для работы с голосом? Где их искать?** + +**Ответ:** +Инструменты для работы на Голое частично выложены на странице [https://golos.io/about](https://golos.io/about) и на сайте [http://chainstore.io](http://chainstore.io/), а также в аккаунте [@vik](https://golos.io/@vik) + +**3. Влияет ли время публикации поста на его популярность?** + +**Ответ:** +На этот вопрос нет точного ответа. Голос - платформа международная, и можно наблюдать активность разных регионов планеты в разное время. К примеру, ночью публикуются пользователи, живущие в Штатах, Канаде. Ранним утром - в Сибири и на Дальнем Востоке. Пользователями Golos.io проводятся исследования. Считается, что лучшее время для публикации, это утро \(9-12 часов по Мск\) и вечер \(20-22 часов по Мск\). Именно тогда большинство читателей готовы просмотреть свежие посты, с утра, или накопившиеся за день - вечером. Также популярны посты в середине дня, многие читают ленту в обед. + +**4. Я много голосовала и теперь у меня низкая Сила Голосования - 61.67% Voting Power. Это плохо? Как я могу это поправить? Я комментирую, но больше новичков, такую небольшую поддержку оказываю.** + +**Ответ:** +То, что ваш Voting Power уменьшается при частом голосовании, это нормально. Сила голоса каждого пользователя ограничена по частоте использования и уменьшается с каждым отданным голосом на величину до 5%. Скорость снижения зависит также от частоты голосования: чем чаще вы это делаете, тем быстрее она снижается. Если, к примеру, голосовать один раз в 20 минут \(примерно\), Сила голосования будет снижаться незначительно. Чтобы восстановить ее прежнее значение, вам нужно какое-то время не голосовать, полностью она восстанавливается за 24 - 48 часов. Если “посажена” сильно, то может восстанавливаться в течение недели. + +**5. Где можно посмотреть блоги китов и касаток, какие-нибудь ТОПы? +Стоит ли увеличить свою силу Голоса разовым “вливанием” суммы?** + +**Ответ:** +Дифференцированный поиск пользователей \(в нашем случае, по силе голоса\) на платформе пока не организован. Однако регулярно публикуются топы успешных авторов, популярных тем и т. д., [например](https://golos.io/ru--golos/@aleco/top-golosa-kto-imeet-samyi-bolshoi-ves-na-platforme-15-03-2018). + +Раздел “Популярное” также представляет собой топ наиболее высоко оцененных постов. + +Силу голоса можно увеличить различными способами, в том числе, приобретением токенов на бирже, как и когда вы считаете нужным. + +**6. Можно ли здесь продвинуться быстрее, имея готовые тексты \(стихи, проза\), опыт рерайтинга, корректирования.** + +**Ответ:** +Имея какое-то количество готовых материалов и опыт написания текстов у вас, конечно, есть некоторые преимущества на Golos.io. Поскольку регулярно обновляемый блог с качественным и уникальным контентом имеет больше шансов на успех. Также можно публиковать свои тексты, размещенные ранее на других площадках, верифицируясь в Культуре Голоса \(чат телеграм[https://t.me/kultura\_golosa](https://t.me/kultura_golosa)\), и оставляя ссылку на первоисточник под постом. + +**7. У меня пропала возможность писать комментарии и делать лайки, это что-то не то с сайтом?** + +**Ответ:** +Это могло произойти из-за того, что вы много голосовали \(ставили лайки\), в результате чего [уменьшилась ваша сила голоса.](https://wiki.golos.io/2-rewards/curation_rewards.html) Необходимо либо пополнить силу голоса, докупив или получив от других пользователей токены Golos и переведя их в силу голоса, либо какое-то время не производить на сайте никаких действий. Сила голосования полностью восстанавливается в течение 24 часов, иногда дольше. + +**8. Как увидеть посты того, кто мне интересен? Жму на профиль, там почты есть - жму туда, ничего не происходит... Почему как-то странно считаются посты в блоге, я всего 4 создал, а мне пишет, что у меня их 10?** + +**Ответ:** +При переходе в профиль интересного вам автора открывается страница блога с его публикациями в хронологическом порядке. Переходить в почту не нужно. + +Любой контент, написанный вами и опубликованный - пост или комментарий - в Голосе называется постом. Поэтому цифра в профиле блога зачастую гораздо больше, чем количество публикаций. + +**9. Почему возле некоторых постов появляется логотип голоса и надпись 100% к силе голоса? Как еще выставляются проценты?** + +**Ответ:** +Это означает, что при публикации этих постов вы установили распределение вознаграждения 100% в силу голоса. Есть еще вариант 50/50, он означает, что 50% вознаграждения пойдут в силу голоса, а 50% - в GBG. + +**10. Почему иногда пропадают комментарии и даже опубликованные статьи? Что делать в такой ситуации? Бывало так, что даже показываются на мгновение в ленте, перегружаешь - посты исчезают. Пару раз сталкивалась с тем, что комменты были - и нет их.** + +**Ответ:** +Скорее всего, ваша публикация произошла в неудачный момент “рассинхронизации” нод. Это технические сбои, с которыми мы боремся. Ваш материал просто “не дошел” до блокчейна. В этом случае нужно запостить еще раз. + +[Источник](https://golos.io/golosio/@vp-liganovi4kov/novaya-rubrika-obratnaya-svyaz-otvety-komandy-golos-io-na-voprosy-novichkov) + +### Часть 2. + +**1. Раньше было оптимальным получать награду в выплатах 50/50, как мне объяснили, 50% монетами, 50% в Силу Голоса. Какую позицию выбрать сейчас \(50/50 или 100% в Силу Голоса\), чтобы это было максимально эффективно?** + +**Ответ:** +Вознаграждение за посты теперь начисляется в токенах Голоса, часть из которых впоследствии идет в Силу Голоса. Для начала логично “прокачать” свой аккаунт, чтобы потом он работал на вас и способствовал получению большего вознаграждения. То есть, награду за какое-то количество первых постов лучше переводить в Силу Голоса, а далее уже распределять, как 50/50, для поддержания репутации и получения выплат. + +**2. Чтобы не потерять голоса от флагов, стоит ли их выводить в сейф?** + +**Ответ:** +Сейф предназначен для защиты накоплений в случае воровства аккаунта. +Флаги никак не могут повлиять на Голоса, которые уже хранятся в кошельке. Из-за флагов можно потерять голоса, которые пост получает в течение семидневного окна выплат. +Как только окно выплат закрывается, поставить флаг посту и уменьшить количество полученных голосов нельзя. + +**3. В голосе можно писать личные сообщения? Как и где это делать?** + +**Ответ:** +Система личных сообщений для сайта Golos.io в разработке. Скоро функционал можно будет увидеть на песочнице. +Однако, с реализацией данного сервиса есть некоторые сложности. +Оптимизация работы личных сообщений полностью зависит от реализации API по постраничной выдаче данных блокчейна. Задача не попала в список на текущий ХФ и была выставлена на баунти. + +Любой из разработчиков сообщества Голоса может реализовать данную задачу, награду можно обсудить с командой [@golosio](https://golos.io/@golosio), пишите на почту dev@golos.io или телеграмм [@NickShtefan](https://golos.io/@nickshtefan) + +**4. Я, конечно, давненько не заходил сюда, но с каких это пор голос ругается на изображения свыше 2 мб как "слишком большие" и не дает их загружать?!** + +**Ответ:** +Ограничение по загрузке в пост тяжелых изображений существует с начала функционирования платформы. Чтобы добавить в пост картинку размером свыше 2 Мб, нужно сначала загрузить ее на хостинг, а затем полученную ссылку вставить в пост. + +**5. Как работать с поиском. В нем можно искать по тегам, или по фразе, или по нику?** + +**Ответ:** +На данный момент в блог-платформу Golos.io интегрирован поисковик google. С его помощью можно искать по фразам, отдельным словам и по юзернейму. + +Поисковика непосредственно по сайту Golos.io пока нет, в будущем команда планирует разработку данного функционала. + +**6. Я новичок. Я случайно нажал кнопку "отблагодарить", и все токены, которые у меня были, перевелись автору статьи. Как работает эта кнопка?** + +**Ответ:** +С помощью кнопки “отблагодарить” можно перевести автору поста какое-то количество голосов. Она активна и когда окно выплат поста открыто, то есть он собирает апвоуты, и когда оно уже закрыто. Если вам понравился материал, но проголосовать за него уже нет возможности, то можно отблагодарить автора через эту кнопку. Для этого необходимо ввести в соответствующую строку количество голосов, которые вы готовы передать, написать заметку и подтвердить перевод активным ключом. + +Если у вас перевелись все токены, это означает, что вы не ввели вручную сумму перевода, а нажали на баланс, который в полном объеме отобразился в окне перевода, и подтвердили действие активным ключом. +Напоминаем, для публикации и комментирования используйте постинг ключ. + +**7. Как конвертировать голос в gbg?** + +**Ответ:** +Печать GBG в системе сейчас прекратилась ввиду того, что количество данной валюты набрало критическую массу. Спустя какое-то время GBG снова может начать печататься. Это произойдет, когда количество денежной массы в системе увеличится, и процент GBG относительно всего пула станет меньше. Делистинга в ближайшее время не предвидится, поэтому GBG можно покупать и продавать на биржах: Bittrex, Livecoin, Liqui, Kuna и внутреннем рынке. + +**8. Как лучше поступить с Голосами? Перевести их в Силу голоса? Или пусть так просто лежат в голосах пока?** + +**Ответ:** + +При переводе голосов в Силу Голоса вы усиливаете ее и вес своего апвоута, соответственно, тем самым в перспективе укрепляете свою позицию на платформе и извлекаете больше пользы. Также на голоса, переведенные в Силу Голоса, начисляется процент от эмиссии токенов. + +Однако, если возникнет необходимость перевести криптовалюту в фиатные деньги, с голосами сделать это будет проще, их можно продать на биржах. А вот Силу Голоса сначала нужно перевести в голоса, а этот переход занимает порядка 13 недель. + +Таким образом, переводить ли голоса в Силу Голоса и в каком количестве, зависит от целей конкретного пользователя. + +**9.Почему кошелек иногда отображается только за 2-3 дня, прокрутка не работает дальше, а иногда там можно посмотреть историю даже за неделю?** + +**Ответ:** +Это связано с вашей активностью. Если в последнее время переводов было сделано много, то лента кошелька сокращается до значения “за последние сутки” или “в течение недели”. Если переводов было не много, то она может отображать действия за несколько недель или за месяц. + +**10. Есть ли приложение для Android, работает ли оно корректно, можно ли его ставить, или лучше пользоваться на телефоне браузером?** + +**Ответ:** +Android приложение Golos.io существует, скачать его можно в Google play. + +В мобильных устройствах удобнее пользоваться приложением, нежели открывать сайт платформы через браузер. В приложении есть поиск по тегам, ночной режим, компактная лента, возможность подписаться на автора и многое другое. Оно постоянно обновляется, например, в числе последних апдейтов была добавлена “батарейка” - отображение мощности голоса в профиле пользователя, расширен выбор валют, добавлено отображение для пролистывания изображений в галерее, поиск по пользователям и произведен апдейт профиля пользователя. + +[Источник](https://golos.io/golosio/@vp-liganovi4kov/obratnaya-svyaz-otvety-komandy-golos-io-na-voprosy-novichkov) + +### Часть 3. +**1. Как связаться с пользователем, если у него в аккаунте нет ни одного поста? И в телеграм он не отвечает, видимо, незнакомым аккаунтам.** + +Ответ: Связаться с пользователем можно, отправив ему минимальный перевод, например, 0,001 gbg, через ваш кошелек, и в поле memo написать сообщение или интересующий вас вопрос. + +**2. Я не могу опубликовать пост. Выдает текст что-то типа "У вас не хватает Мощности Голоса", что делать в таком случае?** + +Ответ: Такая ситуация может возникнуть, если вы до этого слишком много голосовали, или опубликовали большое количество постов. Проверьте, стоит ли у вас галочка в окошке "проголосовать за свой пост", если да, попробуйте ее снять. Возможно, это поможет. Если нет, вам необходимо увеличить вашу Силу голоса, либо подождать, когда она повысится, либо увеличить ее посредством приобретения токенов Голос и перевода их в Силу Голоса. Подробнее можно почитать в Вики Голоса, или здесь + +**3. Не могу зарегистрироваться уже третий день. Не приходит ни код, ни смс.** + +Ответ: Если при регистрации не произошла верификация вашего номера, и поля формы, которые нужно заполнить, не стали активными, сделайте скрины процесса и напишите в чат технической поддержки https://t.me/golos_support. + +**4. Прочитал, что сайт golos.io снимает 10% за публикацию через себя. Но я совсем новичок, большинство моих текстов ничего не стоят. Каким образом будет осуществляться этот расчет с нулевых выплат по постам?** + +Ответ: Бенефициарная награда аккаунту @golosio поступает не в токенах Golos, а в Силе Голоса. 10% за публикацию, сделанную через сайт Golos.io, исчисляются из суммы, которую собрал пост. Если выплата за пост нулевая, то и отчисления нулевые. +Сейчас мы работаем над созданием механизма поощрения пользователей, которые публикуют свои материалы через Golos.io. + +**5. Обнаружил в кошельке во вкладке Разрешения уйму ключей. Какие из них мне нужно сохранять? Где почитать про эту страницу?** + +Ответ: Ключи - это ваш “паспорт” в системе блокчейн, пароль не только от аккаунта, где опубликованы посты, но и от кошелька, где могут быть токены. Поэтому относиться внимательно нужно ко всем ключам, и хранить их в нескольких местах, желательно не только в электронном виде, но и на бумаге. +Самый важный - это ключ владельца, он включает в себя функции всех остальных ключей, и необходим для обновления пароля, если есть подозрения, что пароль скомпрометирован. Но без крайней надобности его лучше не использовать. Для постинга и голосования применяйте постинг-ключ, для переводов - активный ключ. +Почитать подробнее о ключах можно в Вики Голоса. + +**6. Почему при моем голосовании выплата автору, которого я поддерживаю, не увеличивается?** + +Ответ: Вероятно, ваша Сила Голоса еще слишком мала, чтобы принести автору доход. Когда она повысится, вы увидите "стоимость" вашего апа, проголосовав за любого автора. + +**7. Вижу под постами интересные цифры - процент силы голосования разный у разных людей. Но у меня нет возможности проголосовать на 50% или 80%. Почему? Она появится когда-нибудь? Такая возможность?** + +Ответ: Ползунок, позволяющий изменять % апвоута, появится со временем, когда ваша Сила Голоса и репутация увеличатся. Сейчас, пока вы новичок, вы не можете регулировать % своего голоса, и в этом нет экономической выгоды, поскольку ваша сила голосования слишком мала. + +**8. Я могу регистрировать несколько аккаунтов? Или только один? Один аккаунт на один номер телефона?** + +Ответ: Да, вы можете иметь несколько аккаунтов. При регистрации через сайт Golos.io для каждого из них потребуется отдельный номер телефона, поскольку подтверждение регистрации происходит по смс. +Подробнее о способах регистрации - здесь. + +**9. Какие действия я могу совершать с минимальной Силой Голоса, той, которая полагается мне после регистрации? Я могу писать посты, комментировать, голосовать?** + +Ответ: Вы можете публиковать посты, комментировать и голосовать за другие материалы. Но не стоит сразу размещать много постов и часто голосовать. Помните, что на платформе есть лимиты: в сутки не более 4 постов и 40 апвоутов со 100% Силой Голоса. +Также обращайте внимание на расход вашей “мощности” голоса, она ограничена по частоте использования и уменьшается с каждым отданным голосом на величину до 5%. Скорость снижения зависит от частоты голосования: чем чаще, тем быстрее она снижается. Отображение этих действий можно увидеть на "батарейке" в шапке сайта. +Чтобы восстановить “мощность“ голоса, нужно какое-то время не голосовать. Полностью она восстанавливается за сутки-двое. Если “посажена” сильно, то может восстанавливаться в течение недели. + +Источник \ No newline at end of file diff --git a/1-introduction/registratsiya/sposobi-registratsii.md b/1-introduction/registratsiya/sposobi-registratsii.md index 5143b179..7d2e7a6f 100644 --- a/1-introduction/registratsiya/sposobi-registratsii.md +++ b/1-introduction/registratsiya/sposobi-registratsii.md @@ -13,7 +13,7 @@ - #####Сайт [Golos.io](https://golos.io) / [Golos.blog](https://golos.blog) Зайдите на [страницу создания аккаунта](https://golos.io/create_account) или [на "зеркало" сайта](https://golos.blog/create_account), укажите номер своего телефона, получите смс с кодом и заполните форму регистрации. -_Контакты:_ разработчик [команда golos.io](https://golos.io/about#team)
форма [обратной связи](https://golos.io/submit.html?type=submit_feedback) на сайте, [чат поддержки](https://t.me/golos_support) в Telegram +_Контакты:_ разработчик [команда golos.io](https://golos.io/about#team),
[чат поддержки](https://t.me/golos_support) в Telegram, почта support@golos.io - #####Сайт [GoldVoice.club](https://goldvoice.club) Зайдите на [страницу регистрации](https://goldvoice.club/registration/), укажите желаемый логин и пароль, а также некоторые данные о себе (не обязательно). Отправка или получение смс не требуется. diff --git a/1-introduction/steemulru.md b/1-introduction/steemulru.md index e4379a36..b16ee833 100644 --- a/1-introduction/steemulru.md +++ b/1-introduction/steemulru.md @@ -1,4 +1,4 @@ -# Дополнительные инструментыля голоса - steemul.ru +# Дополнительные инструменты для голоса - steemul.ru Автор: [@**liga.avtorov**](https://golos.io/@liga.avtorov) / Редактирование и обновление статьи - @aleos. diff --git a/1-introduction/telegram-chati-golosa.md b/1-introduction/telegram-chati-golosa.md index d1a7224e..8c1905ea 100644 --- a/1-introduction/telegram-chati-golosa.md +++ b/1-introduction/telegram-chati-golosa.md @@ -1,18 +1,18 @@ | Ссылка | Описание | | --- | :---: | -| [ГОЛОС](https://t.me/golos_io) | Официальный чат Голоса. Участники пытаются играть в "Мафию" и общаться с огромным количеством ботов, рекомендующих сигнальные чаты | -| [Golos.io Техподдержка](https://t.me/golos_support) | Специально нанятый [@dankinescop](https://t.me/dankinescop) отвечает на вопросы и помогает зарегистрироваться тем, у кого не доходят смс| +| [Golos.io Техподдержка](https://t.me/golos_support) | Специально нанятые ДанКинескоп [@dankinescop](https://t.me/dankinescop) и Алеся [@chinpu](https://t.me/chinpu) отвечают на вопросы | +| [Golos\_Developers](https://t.me/GolosDev) | Чат для разработчиков приложений на блокчейне Голос | | [ROBOT](https://t.me/chain_cf) | Чат [@vik](https://golos.io/@vik)'a с поддержкой его ботов. Адекватные люди и интересные обсуждения | +| [GoldVoice.club](https://t.me/goldvoice) | Чат поддержки альтернативного клиента [goldvoice.club](https://goldvoice.club) от @on1x | +| [Делегаты Голоса \(Публичная Группа, просьба не флудить!\)](https://t.me/golos_delegates) | Публичная группа обсуждения будущего Голоса с делегатами. Иногда заглядывают люди из [@golosfund](https://golos.io/@golosfund) и [@cyberfund](https://golos.io/@cyberfund) | +| [Golos•Core Techchat](https://t.me/goloscoretc) | Чат для технического взаимодействия с командой разработки ядра \(goloscore\) | | [Upvote50\50](https://t.me/joinchat/AsAZwg2Dtj2BSOI_jBLLxQ) | Чат проекта "[апвот 50\50](https://golos.io/trending/ru--apvot50-50)" | | [Голос.io \#Открытый-код](https://t.me/golosOtkrytyijKod) | Проект [@hipster](https://golos.io/@hipster) по поддержке развития инфраструктуры Голоса | | [GolosTools](https://t.me/GolosTools) | Аналог "Открытого кода", только по тегу [\#golostools](https://golos.io/trending/golostools) | | [GolosWikiGroup](https://t.me/goloswikigroup) | Чат рабочей группы редакторов wiki | -| [Golos\_Developers](https://t.me/GolosDev) | Чат для разработчиков приложений на блокчейне Голос | -| [Golos•Core Techchat](https://t.me/goloscoretc) | Чат для технического взаимодействия с командой разработки ядра \(goloscore\) | | [ГОЛОС: поддержка авторского контента](https://t.me/joinchat/AlKeQUQpN8-9oShtaTcY7Q) | Чат проекта "[Голосовалочка](https://golos.io/ru--golosovalochka/@chiliec/golosovalochka)" | -| [GoldVoice.club](https://t.me/goldvoice) | Чат поддержки альтернативного клиента [goldvoice.club](https://goldvoice.club) от @on1x | -| [Делегаты Голоса \(Публичная Группа, просьба не флудить!\)](https://t.me/golos_delegates) | Публичная группа обсуждения будущего Голоса с делегатами. Иногда заглядывают люди из [@golosfund](https://golos.io/@golosfund) и [@cyberfund](https://golos.io/@cyberfund) | | [Vox Populi](https://t.me/Vox_Populi_Centre) | Чат проекта [\#vox-populi](https://golos.io/trending/vox-populi) | +| [ГОЛОС](https://t.me/golos_io) | Участники пытаются играть в "Мафию" и общаться с огромным количеством ботов, рекомендующих сигнальные чаты | | [Жалобы и предложения](https://t.me/golosio_complaints) | Флудилка на разные темы. Осторожно: мат! | diff --git a/1-introduction/video.md b/1-introduction/video.md index cfb7ed68..c7b260f4 100644 --- a/1-introduction/video.md +++ b/1-introduction/video.md @@ -1,16 +1,23 @@ # 👁 Видео-материалы -#### Пошаговая инструкция регистрации на Golos.io -{%youtube%}OzOoS0m8Fss{%endyoutube%} + +https://www.youtube.com/watch?v=8a0TPACOu2k + + #### Как пользоваться платформой ГОЛОС? [Видео урок #1 - Как написать пост на платформе ГОЛОС?](https://golos.io/ru--golos/@serejandmyself/privet-golos-video-o-tom-kak-napisat-post-v-golos) -{%youtube%}uGF2kUcOefg{%endyoutube%} +https://www.youtube.com/watch?v=uGF2kUcOefg + + [Видео урок #2 - Основы главной страницы, опции и возможности меню](https://golos.io/ru--golos/@serejandmyself/video-urok-2-kak-polzovatsya-platformoi-golos) -{%youtube%}5Mvpqeb4qYM{%endyoutube%} +https://www.youtube.com/watch?v=5Mvpqeb4qYM + + + #### Курс обучающих видео @@ -35,15 +42,20 @@ https://www.youtube.com/watch?v=GEXT9kju0M0&list=PL_5Hfjgx8sF7QEkpCIew0hb0QZS4Zw #### Общая информация ##### Что такое Голос? -{%youtube%}8a0TPACOu2k{%endyoutube%} +https://www.youtube.com/watch?v=8a0TPACOu2k + + -
##### Что такое блокчейн? -{%youtube%}TRtHhXOte0o{%endyoutube%} +https://www.youtube.com/watch?v=TRtHhXOte0o + + ##### Трансляция ГолосФест -{%youtube%}sAT2HwAjUsI{%endyoutube%} +https://www.youtube.com/watch?v=sAT2HwAjUsI + + https://www.youtube.com/c/GolosIoru/live @@ -52,7 +64,9 @@ https://www.youtube.com/c/GolosIoru/live Дополнительные материалы: [#яИдуНаГОЛОСфест](https://golos.io/trending/ru--yaidunagolosfest) ##### Mediametrics Live 2 -{%youtube%}hghErLkX5m0{%endyoutube%} +https://www.youtube.com/watch?v=hghErLkX5m0 + + Mediametrics Live 2 Какие выгоды и возможности предоставляет медиаблокчейн Golos для бизнеса diff --git a/1-introduction/ya_zdes_vpervie.md b/1-introduction/ya_zdes_vpervie.md index ec07ed32..f338716f 100644 --- a/1-introduction/ya_zdes_vpervie.md +++ b/1-introduction/ya_zdes_vpervie.md @@ -13,7 +13,7 @@ Вы можете посмотреть следующее короткое видео, но у Вас наверняка останутся вопросы, поэтому после просмотра, советую почитать дальше!
-{%youtube%}8a0TPACOu2k{%endyoutube%} +\{\%youtube\%\}8a0TPACOu2k\{\%endyoutube\%\} #### Что такое "форк"? Перед тем как начнем двигаться дальше, важно упомянуть, что Голос - это форк Стима... ЧТО ЭТО?! @@ -89,7 +89,7 @@ Думаю теперь вы уже готовы к этому видео (5 минут):
-{%youtube%}TRtHhXOte0o{%endyoutube%} +\{\%youtube\%\}TRtHhXOte0o\{\%endyoutube\%\} #### Что такое криптовалюта? Криптовалюта - это валюта, которая эмитируется технологией блокчейн (описано выше) и является децентрализованной. diff --git a/2-rewards/curation_rewards.md b/2-rewards/curation_rewards.md index 7835569d..4428d499 100644 --- a/2-rewards/curation_rewards.md +++ b/2-rewards/curation_rewards.md @@ -41,26 +41,11 @@ _Цель Голоса - стать платформой для обсужден 2. От времени голосования за пост. 3. От количества уже проголосовавших, а, главное, от количества уже набранного вознаграждения за пост (это незначительно действует, если вы кит Голоса). -Теперь давайте более подробно разберемся с этим на сайте golos.steemstats.com, здесь нас интересует колонка Watched Interactions. - -[![5ef0e8530606.png](https://s14.postimg.org/mzotog08h/5ef0e8530606.png)](https://postimg.org/image/rlkxwslrh/) - -Что мы здесь видим? Ваш логин, процент который вы получите за курирование данного поста, от 25% набранного количества кураторских. Ну и само количество Силы Голоса, которое вы заработали, голосуя за определенный пост (SP это и есть Сила Голоса). Хочу подчеркнуть, что все эти цифры зависят от количества вашей Силы Голоса. - -Теперь пожалуй самый сложный момент. Давайте разберем почему за интересный, но мало заметный контент (количество вознаграждения под постом), в плане курирования, намного выгодней отдать свой голос, чем за пост который уже набрал хорошее количество вознаграждения. Ведь сама платформа Голос рассчитана, что "мальки", "селедки", "кильки" могут заработать Силу Голоса, курируя одними из первых. А что же киты? А киты в любом случае заработают на курировании, их Сила Голоса это позволяет. Так устроена система. - -Пример: -Повторяю, все зависит от вашей Силы Голоса. Если бы вы, со своей Силой Голоса проголосовали в это время вместо меня, цифры вознаграждения были бы другими. - -Как мы видим, здесь два топовых поста. За первый пост я заработал, можно сказать, 0 Силы Голоса. За второй 43 Силы Голоса. За оба поста я проголосовал приблизительно в одно и тоже время, где то на 35 минуте. Так в чем же причина такого расхождения? - -За первый пост я отдал свой голос, когда под постом уже было 500 рублей, и мой голос оказался размытым, но если бы я проголосовал за пост на 2-5 минуте, курирование принесло бы мне гораздо больше Силы Голоса. -За второй пост я отдал голос, когда под постом было всего-лишь 1.5 рублей (а значит, я один из тех, кто курировал данный пост). Материал взят [отсюда](https://golos.io/ru--golos/@haster100/kuratorstvo-na-golose-kak-eto-rabotaet-sait-golos-steemstats-com) #### Голосование за посты -Пользователи с Силой Голоса имеют возможность голосовать за посты. Сила голоса каждого пользователя ограничена по частоте использования и уменьшается с каждым отданным голосом на величину до 5%. Ваша способность влиять на вознаграждение зависит от силы вашего голоса и количества Силы Голоса. +Пользователи с Силой Голоса имеют возможность голосовать за посты. Сила голоса каждого пользователя ограничена по частоте использования и уменьшается с каждым отданным голосом на величину до 5%. Ваша способность влиять на вознаграждение зависит от количества Силы Голоса, которое есть у аккаунта. #### Механика процесса Каждый раз, когда пост получает вознаграждение, до 25% вознаграждения направляется тем, кто внёс наибольший вклад в увеличение общей суммы вознаграждения. Для максимизации собственного вознаграждения рекомендуется следовать следующим правилам: @@ -74,60 +59,3 @@ _Цель Голоса - стать платформой для обсужден Если бы ГОЛОС просто вознаграждал голосование, то технически подкованные пользователи сразу бы стали голосовать за все подряд для максимизации своего результата. Такое поведение отрицательно отразилось бы на развитии платформы, так как повлияло бы отрицательно на качество контента. Алгоритм вознаграждения должен обеспечивать распределение вознаграждения за размещение, прочтение и обсуждение качественной информации, препятствуя автоматизации процесса голосования. -#### Процентное увеличение вознаграждения при голосовании -Разработанный алгоритм нацелен на минимизацию влияния автоматизированных алгоритмов голосования. В частности, мы хотим вознаграждать тех, кто голосует за посты, о которых социальная сеть имеет мало информации. Это означает, что будучи первым человеком, проголосовавшим за тот или иной пост, вы получаете максимально возможный вес в пользу своей Силы ГОЛОСА. - -Пользователи имеют большие шансы предсказать успех случайного поста при отсутствии голосов, чем компьютер. В лучшем случае компьютер может использовать исторические данные для прогнозирования популярности. Для результативности требуется построить достаточно сложный алгоритм. При этом на компьютер будет накладываться то же самое ограничение по Силе ГОЛОСА. - -Тот, кто голосует за пост, набравший 99 голосов, получает вес 0.01. С другой стороны, тот, кто добавляет 99 голосов посту, который уже имеет 99 голосов, получает вес 25. - -Порядок голосования имеет значение. Для 4-х пользователей с 1-м голосом и 1 пользователя с 4 голосами размер вознаграждения может существенно отличаться. Если пользователи, имеющие 1 голос, голосуют первыми, то их вес составит: - -Голос: 1, 1, 1, 1, 4 -Вес: 100, 25, 9, 6, 25 -Процент: 60%, 15%, 5%, 3%, 15% - -Если изменить порядок, то весовые коэффициенты будут следующими: - -Голос: 4, 1, 1, 1, 1 -Вес: 100, 4, 3, 2, 2 -Процент: 90%, 3%, 2%, 2%, 2% - -#### Вознаграждение за фокусировку -Количество контента, который может потребить человек в сутки, ограничено. Компьютерная программа, которая запрограммирована голосовать за все подряд, в конечном итоге проголосует за большее количество постов, чем человек, который читает посты. - -Эта фокусировка и голосование за качественный контент автоматически вознаграждается, основываясь на процентном увеличении общего количества голосов. При этом существует одно исключение: -"те, кто голосуют первыми, могут получить очень большое процентное увеличение при низких затратах." - -Представьте себе пользователя, который имеет 4 учетных записи с Силой ГОЛОСА 1, 2, 3 и 6. Если он голосует последовательно, то каждая запись получит увеличение на 50%, кроме первой, которая получит 100%. Если бы мы распределяли веса, опираясь исключительно на (процентное увеличение)2, злоумышленник начал бы с 1.75, а не с 1.0 путем голосования с учетной записи, сила ГОЛОСА которой равна 12. - -В идеале всегда должно быть более выгодно голосовать с одной учетной записи, чем использовать множество учетных записей. Для достижения этой цели мы умножаем (процентное увеличение)2 на силу ГОЛОСА. Это дает следующие весовые коэффициенты: - -Несколько учетных записей: 1 + 1 + 1.5 + 3 => 6.5 -Одна учетная запись: 12 - -Вывод состоит в том, что тот, кто голосует с одной записи, получает почти в два раза большее вознаграждение, чем при голосовании с нескольких учетных записей. При этом известное утверждение о том, что богатый богатеет, остается верным применительно к одному посту. В целом же, возможности для получения вознаграждения существуют для всех. - -Вне зависимости от богатства, количества контента, которое могут оценить индивидуумы, ограничено. При этом богатый больше всего теряет при неудачном голосовании. - -#### Математическая логика -Голос автоматически делит 75% всего вознаграждения между всеми пользователями, которые проголосовали за пост, на пропорциональной основе, используя следующее уравнение для определение весового коэффициента каждого пользователя: - -``` -пусть total_vote_reward = 75% от общего вознаграждения за пост - -пусть steem_power = сила ГОЛОСА для голоса - -пусть current_total_steem_power = общая сила ГОЛОСА за все прошлые голоса - -пусть new_total_steem_power = current_total_steem_power + steem_power; - -пусть vote_payout_weight = steem_power * (steem_power / new_total_steem_power) ^ 2 - -пусть total_vote_payout_weight = сумма vote_payout_weight для всех голосов на пост - -пусть vote_payout = total_vote_reward * vote_payout_weight / total_vote_payout_weight -``` - -_**Оговорка:**_ -_Любые числа или уравнения, приведенные выше, являются условными и могут содержать ошибки. Фактическое вознаграждение определяется с помощью программного обеспечения с открытым исходным кодом. На пользователях лежит ответственность разобраться с кодом или нанять профессионала для этого._ diff --git a/2-rewards/mining_rewards.md b/2-rewards/mining_rewards.md index abb90fcf..0e996cb6 100644 --- a/2-rewards/mining_rewards.md +++ b/2-rewards/mining_rewards.md @@ -10,7 +10,7 @@ _Получай токены Голоса, присоединившись к п _Голос выплачивает майнерам ежегодно 1% от своей рыночной капитализации._ -В системе 6.66% от вознаграждения, предназначенного майнерам, равномерно распределяется между лучшими 19 майнинговыми пулами путем голосования через механизм «доказательства работы» \(proof of work\). При этом в сети гарантируется, что каждому пулу предоставляется только один слот для производства блока в каждом раунде. При этом каждый раунд состоит из 21 блока производимых равномерно каждые 3 секунды. Если ни один из майнеров не пропускает своего слота, то каждый из 21 блоков будет производен уникальным майнером. +В системе 6.66% от вознаграждения, предназначенного майнерам, равномерно распределяется между лучшими 19 майнинговыми пулами путем голосования через механизм «доказательства работы» \(proof of work\). При этом в сети гарантируется, что каждому пулу предоставляется только один слот для производства блока в каждом раунде. При этом каждый раунд состоит из 21 блока производимых равномерно каждые 3 секунды. Если ни один из майнеров не пропускает своего слота, то каждый из 21 блоков будет произведен уникальным майнером. Вознаграждение за майнинг выплачивается в виде Силы Голоса, которая может быть преобразована в токены Голоса еженедельно в течение 13 недель равномерными частями. @@ -46,7 +46,7 @@ _Голос выплачивает майнерам ежегодно 1% от с Пусть K = RECOVER\_PUBLIC\_KEY \(H2, S\) Пусть POW = SHA256 \(K\) -Для того, чтобы быть действительным POW должно быть меньше заданной трудности и RECOVER\_PUBLIC\_KEY \(H2, S\) должно равняться PUB. Случайность задается майнером либо путём случайного выбора нонс либо при генерации подписи методом эллиптической кривой. Это в сочетании с выбором приватного ключа должно обеспечить, что каждый майнер работает над своим вычислением. +Для того, чтобы быть действительным POW должно быть меньше заданной трудности и RECOVER\_PUBLIC\_KEY \(H2, S\) должно равняться PUB. Случайность задается майнером либо путём случайного выбора нонс, либо при генерации подписи методом эллиптической кривой. Это в сочетании с выбором приватного ключа должно обеспечить, что каждый майнер работает над своим вычислением. Начиная и заканчивая POW с криптографически защищенной хэш-функцией мы можем гарантировать, что любые уязвимости или вычислительные сокращения, которые могут существовать в алгоритме RECOVER\_PUBLIC\_KEY или алгоритме SIGN, в конечном счете вернут алгоритм POW к простому POW, основанному на хэш-функции. @@ -56,7 +56,7 @@ _Голос выплачивает майнерам ежегодно 1% от с `W = P * t` -В целом работой можно считать деятельность, за которую люди получают вознаграждение. Если оплаты нет, то работы не проделано. Механизм доказательства работой в системе биткоина удовлетворяет обоим определениям. Никто не будет тратить деньги, устанавливать специализированное оборудование, расходовать электроэнергию и совершать вычисления без вознаграждения. Таким образом, сложность вычисления хеш-функции блока биткоина является математическим доказательством того, что определённая работа, оценённая в 12,5 BTC, выполнена. При установлении фиксированной суммы вознаграждения за определённые действия на конкурентном рынке, конкуренция со стороны многих игроков будет уравнивать стоимость работы со суммой вознаграждения. +В целом работой можно считать деятельность, за которую люди получают вознаграждение. Если оплаты нет, то работы не проделано. Механизм доказательства работой в системе биткоина удовлетворяет обоим определениям. Никто не будет тратить деньги, устанавливать специализированное оборудование, расходовать электроэнергию и совершать вычисления без вознаграждения. Таким образом, сложность вычисления хеш-функции блока биткоина является математическим доказательством того, что определённая работа, оценённая в 12,5 BTC, выполнена. При установлении фиксированной суммы вознаграждения за определённые действия на конкурентном рынке, конкуренция со стороны многих игроков будет уравнивать стоимость работы с суммой вознаграждения. Можно рассматривать работу в сети биткоина как сложность или как сложность хеш-функции \(hash power\), умноженная на 10 минут. diff --git a/2-rewards/posting_rewards.md b/2-rewards/posting_rewards.md index bbd1dc7a..c8ec12f9 100644 --- a/2-rewards/posting_rewards.md +++ b/2-rewards/posting_rewards.md @@ -5,23 +5,20 @@ #### Вознаграждение за посты _Получай ГОЛОС за каждый пост, который оценен другими._ -За каждый пост, размещенный на Голосе, голосуют пользователи, заинтересованные в долгосрочном развитии Голоса. Чем больше голосов отдано за пост, тем больше средств получает автор. Вознаграждение также начисляется при голосовании за качественные комментарии. +За каждый пост, размещенный на Голосе, могут проголосовать пользователи, заинтересованные в долгосрочном развитии Голоса. Чем больше голосов отдано за пост, тем больше средств получает автор. Вознаграждение также начисляется при голосовании за комментарии. #### Как мне написать первый пост? -Подробнее об этом можно узнать в разделе [Видео-уроки](https://wiki.golos.io/1-introduction/video.html#как-пользоваться-платформой-голос) -Настоятельно рекомендуется к прочтению статья [Как создать пост на платформе Голос]( +Подробнее об этом можно узнать в разделе [Видео-материалы](1-introduction/video.md) + +Рекомендуется к прочтению статья [Как создать пост на платформе Голос]( https://golos.io/ru--knigagolos/@aleksandraz/kniga-pro-golos-kak-sozdat-post-na-platforme-golos) #### Вознаграждение за обсуждения Одна из основных задач Голоса - поощрение качественных дискуссий на разные темы. Каждый год 66.66% от рыночной капитализации Голоса распределяется между пользователями, которые размещают, голосуют и комментируют посты. #### Распределение вознаграждения -Фактическое распределение зависит от того, как голосуют пользователи, но с высокой вероятностью, существенные суммы вознаграждения будут приходится на самый популярный контент. В Голосе распределение вознаграждения происходит пропорционально n2 количеству голосов, отданных за пост. Другими словами, пост номер х получит выплаты пропорционально голосам [х]2 / (сумма голосов [0 ... п])2 . - -Закон Ципфа является одним из тех эмпирических правил, которые удивительно точно характеризуют разнообразное количество явлений реального мира. Согласно данному правилу при упорядочивании некого множества по размеру или популярности, второй элемент будет наполовину меньше первого, третий будет составлять примерно треть от первого и так далее. Соответственно, k-й элемент будет равняться `1/k` от первого элемента. - -Воспринимая популярность как оценку ценности, мы определяем ценность поста по закону Ципфа. Соответственно, при наличии 1 миллиона постов, на 100 наиболее популярных постов будет приходиться треть от общего распределенного вознаграждения, на следующую 10000 - еще одна треть, а на остальные 989900 - оставшаяся треть. Общая стоимость `n` постов пропорциональна `log(n)`. +Фактическое распределение зависит от того, как голосуют пользователи, но с высокой вероятностью, существенные суммы вознаграждения будут приходится на самый популярный контент. В Голосе распределение вознаграждения происходит пропорционально количеству голосов, отданных за пост. Смысл такой системы распределения в поощрении качественного и популярного контента при одновременном вознаграждении всех пользователей, регулярно размещающих материалы на сайте. @@ -31,14 +28,15 @@ https://golos.io/ru--knigagolos/@aleksandraz/kniga-pro-golos-kak-sozdat-post-na- Стоит помнить что _**размещение иррелевантных комментариев с высокой вероятностью повлечет за собой минусовое голосование.**_ #### Вознаграждение -При плюсовом голосовании, по умолчанию, пост получает вознаграждение в следующей форме: 50% - Золотые, обеспеченные ГОЛОСОМ, 50% - отложенные ГОЛОСА (Сила ГОЛОСА). Сила Голоса повышает «вес» голоса пользователя, в то время как Золотые представляют собой непосредственную и немедленно получаемую выгоду. И на Золотые, и на отложенные голоса начисляются проценты при сохранении их на аккаунте. +Пост получает вознаграждение в следующей форме: +50% - либо в Голосах (Golos), либо в Золотых (GBG), при условии, что общая масса GBG в системе не более 5%; +50% - отложенные ГОЛОСА (Сила ГОЛОСА). + +Сила Голоса повышает «вес» голоса пользователя, в то время как Голос и Золотой представляют собой непосредственную и немедленно получаемую выгоду. К тому же, на Золотой, и на Силу голоса начисляются проценты при сохранении их на аккаунте. #### Минусование постов (флаги) В отличие от плюсования минусование невыгодно минусующему. По сути, минусовое голосование представляет собой упущенную выгоду от голосования за себя. - -В идеальном мире мы бы вознаграждали посты, имеющие как можно меньше минусовых голосов, поскольку при таком раскладе меньше риск обмана. - -В реальности отношение индивидуума к другим имеет значение. Лучше поддерживать то, что симпатично или близко человеку, чем стараться уничтожить то, что не нравится. Кроме того, выявление контента, который не нравится, более затратно, чем голосование за то, что симпатично. +Обсуждение того, в каких случаях уместно ставить флаг, можно прочитать здесь. #### Алгоритм голосования Когда пользователь постит на Голосе, другие участники могут проголосовать за (или против) – плюсануть (апвоутить, лайкнуть) или минусануть (флаговать). Голоса пользователей соотносятся с тем весом (объемом) Силы ГОЛОСА, который имеют пользователи. @@ -49,9 +47,7 @@ https://golos.io/ru--knigagolos/@aleksandraz/kniga-pro-golos-kak-sozdat-post-na- Этот алгоритм был разработан таким образом, чтобы предотвратить голосование за самого себя. Если бы голоса не соотносились с весом, возведенным в квадрат, то пользователю было бы более выгодно голосовать за себя, чем за других. #### Ограничение частоты голосования -Каждая учетная запись имеет ограничение по частоте голосования. Это сделано для того, чтобы не допустить (усложнить) использование скриптов для автоматического голосования вместо личного голосования. Это ограничение работает путём деления общего веса голоса, ассоциированного с учётной записью, на количество его использований в течение суток. - -Попытки обойти данное ограничение путем создания нескольких учетных записей не приведут к успеху, поскольку токены распределяются на несколько учетных записей (_см. квадратичное голосование_) +Каждая учетная запись имеет ограничение по частоте голосования. Это сделано для того, чтобы не допустить (усложнить) использование скриптов для автоматического голосования вместо личного голосования. #### Поощрение распределенного голосования Каждая учетная запись имеет лимит на вес голоса. Голосовать со 100% силой, можно до 40 раз в течении 24 часов. При каждом отданном голосе, вес Силы Голоса снижается. diff --git a/2-rewards/savings_rewards.md b/2-rewards/savings_rewards.md index 2ec7cd7e..f1f6f054 100644 --- a/2-rewards/savings_rewards.md +++ b/2-rewards/savings_rewards.md @@ -2,10 +2,11 @@ #### Вознаграждения за сбережения _Сбережения в ГОЛОСе приносят стабильность_ -Сбережения в токенах ГОЛОС – это новый подход к созданию надежной, не зависящей от контрагентов, привязанной к золоту валюты. Держателям сбережений в ГОЛОСе платятся проценты. Золотой, обеспеченный ГОЛОСОМ (GBG) всегда конвертируется в 1,00 миллиграмм золота в ГОЛОСах, по средней цене за неделю в системе. +Сбережения в токенах ГОЛОС – это новый подход к созданию надежной, не зависящей от контрагентов, привязанной к золоту валюты. Держателям сбережений в Силе Голоса (отложенных голосах) и в Золотом (GBG) выплачиваются проценты. +Золотой, обеспеченный ГОЛОСОМ (GBG) всегда конвертируется в 1,00 миллиграмм золота в ГОЛОСах, по средней цене за неделю в системе. #### Предыстория -Криптовалюты уникальны тем, что они являются цифровым активом, не являясь при этом чьим бы то ни было обязательством. Они являются активом, которым можно обменивать, который децентрализован, и имеет ценность соотносимую с ценностью сети пользователей, которые им пользуются. Исторически криптовалюты имеют высокую волатильность и покупаются/продаются в спекулятивных целях. +Криптовалюты уникальны тем, что они являются цифровым активом, не являясь при этом чьим бы то ни было обязательством. Они являются активом, которыq можно обменивать, который децентрализован, и имеет ценность соотносимую с ценностью сети пользователей, которые им пользуются. Исторически криптовалюты имеют высокую волатильность и покупаются/продаются в спекулятивных целях. В Голосе используется принцип конвертируемых долговых обязательств. Конвертируемые долговые обязательства структурируются по-разному, но основная идея заключается в том, что их стоимость равняется 1,00 акций по оценке в будущем. Золотой, обеспеченный ГОЛОСом (GBG) конвертируется в криптовалюту, а не в акции компании. Цена, по которой происходит конвертация Золотого, обеспеченного ГОЛОСом в ГОЛОС, берется из надежного децентрализованного потока цен. diff --git a/5-development/roadmap.md b/5-development/roadmap.md index 40a895e6..6c973a4d 100644 --- a/5-development/roadmap.md +++ b/5-development/roadmap.md @@ -8,7 +8,7 @@ ### Конференция разработчиков Голоса, апрель 2017 г. -{%youtube%}9Bh-v_KBobc{%endyoutube%} +\{\%youtube\%\}9Bh-v_KBobc\{\%endyoutube\%\} Видео доклада Димы Стародубцева ([@hipster](https://golos.io/@hipster)) "Возможности для разработчиков". diff --git a/README.md b/README.md index 495f9f20..1699e051 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# База знаний проекта Медиаблокчейн ГОЛОС +# База знаний проекта Медиаблокчейн ГОЛОС
[![Логотип Голос](https://raw.githubusercontent.com/GolosChain/wiki/master/_images/golos_logo.png)](https://golos.io/) @@ -6,9 +6,10 @@ - Эта wiki - центральная точка для сбора и распространения знаний по проекту **Медиаблокчейн Голос**. Вики доступна по адресу [wiki.golos.io](https://wiki.golos.io). -- Начните свое изучение Голоса с раздела **[🚀 НОВИЧКАМ](//1-introduction/welcome.html)**. +- Начните свое изучение Голоса с раздела **[🚀 НОВИЧКАМ](/1-introduction/welcome.md)**. - Если вас интересует разработка программного обеспечения для Голоса и на Голосе, обратитесь к разделу **[💻 РАЗРАБОТЧИКАМ](/razrabotchikam.md)**. -- Golos Wiki является результатом коллективного труда. Каждый может [поучаствовать в ее развитии](//uchastie-v-viki-golosa.html). -- Обращайтесь с [вопросами и предложениями](//kontakti.html) \ No newline at end of file +- Golos Wiki является результатом коллективного труда. Каждый может [поучаствовать в ее развитии](/uchastie-v-viki-golosa.md). +- Обращайтесь с [вопросами и предложениями](/kontakti.md) + diff --git a/SUMMARY.md b/SUMMARY.md index b5e7528b..2ddf3f71 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -7,7 +7,7 @@ * [🚀 Новости Golos.io](0-aktualnoe/o-razvitii-golos.md) * [⚙️ Новости Golos.Core](0-aktualnoe/hf-02.md) * [✔ Связь с Golos.Core](0-aktualnoe/svyaz-s-goloscore.md) - * [💔 Вакансии Команды](0-aktualnoe/vakansii-komandi.md) + * [💔 Вакансии Команд Голоса](0-aktualnoe/vakansii-komandi.md) * [🚀 НОВИЧКАМ](novichkam.md) * [➊ Начни отсюда](1-introduction/welcome.md) * [Способы регистрации](1-introduction/registratsiya/sposobi-registratsii.md) @@ -18,28 +18,25 @@ * [Интерфейс golos.io](1-introduction/interfeis-golosio.md) * [Публикация в блоге](/1-introduction/posting.md) * [Кошелек, ключи, выплаты](1-introduction/koshelek-klyuchi-viplati.md) + * [Благодарность пользователю](kak-bistro-otblagodarit-avtorov-ponravivshihsya-postov-i-otvetov.md) + * [Жалоба на пользователя](kak-pozhalovatsya-na-polzovatelya-ili-ego-posti.md) + * [Добавление пользователя в игнор](dobavlenie-polzovatelei-v-ignor-kak-eto-rabotaet.md) * [Внутренний рынок](1-introduction/vnutrennii-rinok.md) - * [Рокет-чат](1-introduction/instrumenti-roket-chat.md) * [Телеграм группы \(чаты\) Голоса](1-introduction/telegram-chati-golosa.md) * [🔠 Терминология](1-introduction/terminologiya.md) * [❓❗ Вопросы и ответы](1-introduction/faq.md) + * [Ответы команды Golos.io](1-introduction/faq/otveti-komandi.md) * [👁 Видео-материалы](1-introduction/video.md) * [🎯 Полезные статьи](stati.md) - * [Новичкам \(PDF\)](1-introduction/instruktsiya-dlya-novichkov-pdf.md) * [Способы заработка](1-introduction/zarabotok.md) * [Просто о блокчейне](1-introduction/prosto-o-blokcheine.md) * [КриптоТермины ](1-introduction/kriptotermini.md) * [Смайлики на Голосе](1-introduction/smailiki-na-golose.md) - * [golosd.com](1-introduction/instrumenti-golosdcom.md) - * [golosdb.com](1-introduction/instrumenti-golosdbcom.md) - * [steemul.ru](1-introduction/steemulru.md) - * [golos.steemstats.com](1-introduction/instrumenti-golossteemstatscom.md) - * [golos.cf/history](1-introduction/goloscfhistory.md) + * [Сервис steemul.ru](1-introduction/steemulru.md) + * [Сервис golos.cf/history](1-introduction/goloscfhistory.md) * [Сила при голосовании](/1-introduction/chto-takoe-sila-golosovaniya-i-skolko-postov-mozhno-laikat-za-sutki.md) * [Выбор силы голосования](//1-introduction/The choice of the Power of the vote.md) - * [Благодарность пользователю](kak-bistro-otblagodarit-avtorov-ponravivshihsya-postov-i-otvetov.md) - * [Жалоба на пользователя](kak-pozhalovatsya-na-polzovatelya-ili-ego-posti.md) - * [Добавление пользователя в игнор](dobavlenie-polzovatelei-v-ignor-kak-eto-rabotaet.md) + * [Ответы команды golos.io](1-introduction/otveti-komandi-golosio.md) * [💯 ЭКОНОМИКА](instruktsii.md) * [Постинг \(публикация\)](2-rewards/posting_rewards.md) * [Курирование \(лайки\)](2-rewards/curation_rewards.md) @@ -91,15 +88,22 @@ * [Пример запуска тестовой сети \#2](golosd/howto/testnet2.md) * [Генерация ключей аккаунта](golosd/howto/generate-keys.md) * [Расчёт награды в зависимости от вклада апвоута](golosd/howto/reward-calculation.md) + * [Вычисление кураторских вознаграждений](golosd/howto/vichislenie-kuratorskih-voznagrazhdenii.md) + * [HardFork HF18](hardfork-dokumentatsiya.md) + * [HF18: Изменения в API](golosd/HardFork/New_HardFork-HF18.md) + * [HF18: Релиз-кандидат RC2](golosd/HardFork/RC2-HF18.md) + * [HF18: Новые возможности блокчейна](golosd/HardFork/HF18_ReleaseNotice-rus.md) + * [HF18: Изменения в cli\_wallet](golosd/HardFork/HF18_cli_wallet_changes-rus.md) + * [HF18: Руководство по установке](golosd/HardFork/HF18_BuildInstruction-rus.md) * [👍 ДЕЛЕГАТАМ](delegatam.md) * [Делегатство](2-rewards/delegatstvo.md) * [Установка ноды делегата](golosd/howto/witness-node.md) * [Запуск golos ноды в контейнере docker](golosd/howto/zapusk-golos-nodi-v-konteinere-docker.md) * [Скрипты для делегатов](7-witness/witness-scripts.md) * [💡 ПОЛЕЗНОЕ](poleznoe.md) - * [Полезные ссылки](useful_links.md) * [Участие в вики](uchastie-v-viki-golosa.md) * [Контакты](kontakti.md) * [История](istoriya.md) * [Текущая экономическая модель выплат за посты на Голосе](tekuschaya-ekonomicheskaya-model-viplat-za-posti-na-golose.md) + diff --git a/dokumenti.md b/dokumenti.md index 50ce3488..9de3cd84 100644 --- a/dokumenti.md +++ b/dokumenti.md @@ -3,9 +3,13 @@ > Тексты основополагающих документов * [Белая бумага Голоса](1-introduction/golos_whitepaper.md) -* [Дорожная карта](5-development/roadmap.md) -* [White Paper Steem на Русском](1-introduction/steem_whitepaper.md) * [Белая бумага Голос•Фонда](1-introduction/belaya-bumaga-golosfonda.md) +* [Белая бумага по DPOS](4-documentation/belaya-bumaga-po-dpos.md) +* [White Paper Steem на Русском](1-introduction/steem_whitepaper.md) +* [Blue Paper Steem на русском](4-documentation/blue-paper-steem-na-russkom.md) +* [Дорожная карта](5-development/roadmap.md) + + diff --git a/golosd/HardFork/HF18_BuildInstruction-rus.md b/golosd/HardFork/HF18_BuildInstruction-rus.md new file mode 100644 index 00000000..9a4f10a9 --- /dev/null +++ b/golosd/HardFork/HF18_BuildInstruction-rus.md @@ -0,0 +1,546 @@ +# H18: Руководство по установке +## Аннотация +Настоящее руководство предназначено для [делегатов](#bld_44) и [майнеров](#bld_47) блокчейна Golos, а также персонала, занимающегося разработкой скриптов для взаимодействия с [блокчейном](#bld_42) по API-запросам и использования их для биржевых целей. + + +Документ содержит инструкцию по начальной установке и запуску, а также обновлению программного продукта GolosChain на сервере под управлением операционной системы Ubuntu 16.04 либо иной системы семейства Linux с помощью программного обеспечения Docker. + + +Стиль изложения руководства предполагает, что персонал имеет навыки работы с компьютерным оборудованием и знаком с блокчейн-технологией. + + + + + +*** +## Раздел_1 Общее +### Назначение +Программный продукт GolosChain версии HF•18 (далее — HF•18) предназначен для поддержки блокчейна Golos, используемого для обработки блоков публикуемой информации и проведения криптовалютных операций. +### Отличия версии HF•18 от предыдущих +В версии HF•18 устранены недостатки, выявленные в предыдущих версиях, и реализованы новые функциональные возможности. +### Способы установки HF•18 +Установку HF•18 на сервер можно выполнить в одном из следующих вариантов: +1. установка с использованием доступной платформы [Docker](#bld_412); +2. изначальное построение непосредственно из исходников golosd под управлением операционной системы Ubuntu; +3. обновление GolosChain до версии HF•18 из исходников golosd под управлением операционной системы Ubuntu. + + +Инструкции по установке HF•18 в вариантах 1-3 изложены в разделах [2](#bld_2), [3](#bld_3) и [4](#bld_4) соответственно. + + +Рекомендуется установку HF•18 выполнять в варианте 1, поскольку использование платформы Docker обеспечивает: +* создание необходимого программного окружения, в том числе необходимого перечня библиотек, независимо от версии операционной системы; +* создание среды, изолированной от ненужных временных файлов, сохраняемых системой в строящемся пространстве. + +### Рекомендации к характеристикам аппаратных и программных средств +Сервер, на который устанавливается HF•18, должен иметь характеристики не хуже: +* объем оперативной памяти: + * 16 ГБ для [делегатского Узла](#bld_410) в варианте конфигурации LOWMEM; + * 64 ГБ для [API Узла](#bld_411) в полной конфигурации; +* объем дисковой памяти: 80 ГБ для API Узла в полной конфигурации; +* операционная система: + * Ubuntu версии 16.04 (или более поздней); + * Linux-система (для установки HF•18 с использованием платформы Docker). + +Программный код golosd поддерживает следующие программные обеспечения: +* базовая библиотека: boost версии 1.58; +* компилятор GCC версии 5.х (с поддержкой стандарта С++14). + +### Иные рекомендации +Перед началом выполнения приведенных в руководстве действий настоятельно рекомендуется: +* сохранить код личного ключа; +* отключить функцию подписания блоков отключением [плагина](#bld_48) witness; +* остановить и удалить предыдущую версию GolosChain (только для обновления версии), используя следующие команды: +``` +docker stop golos-default +docker rm golos-default +``` + + +## Раздел_2 Установка HF•18 с использованием платформы Docker + +Для построения HF•18 требуется сервер с операционной системой Ubuntu 16.04 и определенным набором библиотек. +В случае отсутствия сервера с требуемой операционной системой следует воспользоваться сервером с операционной системой семейства Linux. +Имеется возможность установки HF•18 на такой сервер с помощью платформы Docker, обеспечивающий создание необходимого окружения, независимо от версии системы Linux. + + +Установка и функционирование HF•18 на сервер под управлением каких-либо иных классов систем не поддерживается. + + +Для установки HF•18 на сервер с использованием платформы Docker необходимо выполнить следующие операции: +1. сконфигурировать [Docker-образ](#bld_413) в отдельном пространстве; +2. создать [контейнер](#bld_46) с использованием Docker-образа. Контейнер можно размещать как на локальном компьютере, так и на удаленном или виртуальном; +3. [воспроизвести блокчейн](#bld_43). + +### Конфигурирование Docker-образа + +**1.** Создать репозиторий `golosd` в отдельном пространстве и установить значения переменных в конфигурационных файлах. + + +**2.** В командном окне войти в директорию, в которой будет создан Docker-образ, и исполнить: +``` +git clone https://github.com/GolosChain/golos.git +``` +В пространство, из которого была исполнена команда, должен скопироваться каталог `golos` с его содержимым. В процессе копирования не должны появляться сообщения об ошибках. + + +**3.** Создать отдельную директорию для конфигурационных файлов, исполнив: +``` +sudo mkdir -p /etc/golosd +``` +**4.** В созданную директорию `/etc/golosd` скопировать конфигурационные файлы. Используемые для копирования команды: +``` +cd golos +sudo cp share/golosd/seednodes /etc/golosd/ +sudo cp share/golosd/config/config.ini /etc/golosd/ +``` + +В директории `golosd` находятся несколько конфигурационных файлов, данные которых можно использовать в качестве базовых для создания необходимого окружения. В следующей таблице приведен перечень основных конфигурационных файлов и их назначение. + + +Конфигурационный файл | Назначение +:-----------|:------- +share/golosd/config/config.ini | Содержит набор переменных для создания API Узла в полной его конфигурации со всеми включенными плагинами +share/golosd/config/config_witness.ini | Содержит набор переменных для создания делегатского Узла в конфигурации по умолчанию. Используется делегатами для подписания блоков +share/golosd/config/config_stock_exchange.ini | Содержит набор переменных для создания Узла для биржевых операций в конфигурации по умолчанию + + +Поскольку golosd обрабатывает конфигурационный файл только с именем `config.ini`, то в зависимости от решаемой задачи следует выбрать необходимый конфигурационный файл и скопировать значения его переменных окружения в `share/golosd/config/config.ini`. + + +В следующей таблице приведен рекомендуемый перечень переменных окружения, значения которых необходимо установить. + +Переменная окружения | Назначение +:---------- |:------- +witness | Устанавливает имя [аккаунта](#bld_41) делегата (для делегатского Узла) +private-key | Задает код личного ключа `active` (для делегатского Узла). Тип ключа может быть отличным от `active` +plugin | Определяет перечень плагинов. Неиспользуемые плагины могут быть удалены + + +Количество задаваемых плагинов в переменной `plugin` влияет на объем используемой памяти, а также быстродействие Узла. Минимальный набор плагинов приведен в файле `config_witness.ini`. + +**5.** Создать директорию для размещения в ней блокчейна, исполнив: +``` +sudo mkdir -p /var/lib/golosd/ +``` +**6.** В созданную директорию скопировать исходный genesis-файл, исполнив: +``` +sudo cp share/golosd/snapshot5392323.json /var/lib/golosd/ +``` + +### Запуск Docker-образа из GolosCore +Docker-образ размещается на общедоступном реестре Docker Hub либо создается локально из исходников GolosCore. Из Docker-образа можно создать контейнер на физическом устройстве, на котором установлен Docker. Docker-образ представляет собой тиражируемый образ некоторого объекта, а создаваемый контейнер является самим объектом, который можно запускать и останавливать. Контейнер является изолированным от внешней среды со своими переменными окружения и параметрами запуска. В среде контейнера исполняется [Узел](#bld_49). Для запуска одного и того же Узла требуется создание другого контейнера. + + +Для запуска Docker-образа из GolosCore и создания контейнера исполнить следующую командную строку: +``` +sudo docker run -d \ + -p 4243:4243 \ + -p 8090:8090 \ + -p 8091:8091 \ + -v /etc/golosd:/etc/golosd \ + -v /var/lib/golosd:/var/lib/golosd \ + --name golos-default goloschain/golos:latest +``` +где: + `-d` — устанавливает запуск контейнера в фоновом режиме; + `-p` — устанавливает привязку конкретных портов хоста к портам контейнера; + `--name` — задает имя контейнера (`golos-default`); + `latest` — задает последнюю официальную версию golosd. + + +Для проверки успешного запуска контейнера исполнить команду +``` +sudo docker ps +``` +Создание контейнера считается успешным, если в тексте лог-файла не было сообщений об ошибках и в выдаче этой команды появится имя контейнера golos-default с соответствующими портами. + +### Воспроизведение блокчейна +Перед тем, как приступить к непосредственному воспроизведению блокчейна, убедиться в наличии файлов `/var/lib/golosd/blockchain/block_log` и `/var/lib/blockchain/block_log.index`. + + +В файле `block_log` хранится список подписанных блоков с транзакциями. В каждой из транзакций содержится перечень операций, которые необходимо выполнить для восстановления состояния системы. Все блоки взаимосвязаны между собой. В процессе появления новых блоков они считываются по сети, добавляются в этот файл и могут быть использованы в дальнейшем. Файл представляет собой протокол всех операций, как ранее совершенных системой,так и последующих. + + +В файле `shared_memory.bin` хранятся данные о состоянии системы, а также непосредственно база данных, в том числе таблицы с записями и индексы, по которым происходит обращение к ячейкам таблицы. + + +В каждом из плагинов, подобно структуре файла `shared_memory.bin`, содержатся таблицы и индексы, требующие из наполнения с самого начала истории. Во время включения дополнительного плагина его поля остаются пустыми и для их заполнения требуется воспроизведение всех операций из `block_log` с самого начала. Этот процесс состоит из множества операций, требующий обработку каждого блока. + + +Поскольку операция считывания отдельного блока по сети значительно превышает по времени операцию считывания из локальной области, использование `block_log` значительно сокращает время процессов блокчейна. + + +Для воспроизведения блокчейна необходимо следовать следующим указаниям. + + +**1.** Убедиться, что процессы контейнера golos-default завершены, используя следующую командную строку: +``` +sudo docker ps | grep golos-default +``` +Если имеется незавершенный процесс, его необходимо остановить, исполнив: +``` +sudo docker stop golos-default +``` + + +**2.** Запустить контейнер, используя в качестве основы образ, исполнив: +``` +sudo docker run -d \ + -p 4243:4243 \ + -p 8090:8090 \ + -p 8091:8091 \ + -v /etc/golosd:/etc/golosd \ + -v /var/lib/golosd:/var/lib/golosd \ + --name golos-default goloschain/golos:latest +``` +где: +`golos-default` — имя контейнера; +`latest` — задает последнюю официальную версию golosd. + + +**3.** Воспроизвести блокчейн посредством запуска скрипта `golosdctl` внутри запущенного контейнера `golos-default`: +``` +sudo docker exec golos-default /usr/local/bin/golosdctl replay +``` + + +**4.** Выполнить проверку успешной установки Узла. +* Открыть лог-файл и убедиться в следующих фактах: + * в файл прекращено поступление новой информации; + * текст файла не содержит сообщения об ошибках. +* Подключиться к Узлу через `cli_wallet` по порту 8091, исполнив: +``` +sudo docker exec -ti golos-default \ + /usr/local/bin/cli_wallet \ + --wallet="/var/lib/golosd/wallet.json" \ + --server-rpc-endpoint="ws://127.0.0.1:8091" +``` +Успешное подключение будет означать успешную установку Узла. + +### Построение Docker-образа с использованием Docker-файла +В этом разделе приведена инструкция по построению Docker-образа с использованием различных [Docker-файлов](#bld_414). + + +Docker-файл представляет собой текстовый файл с инструкциями, необходимыми для создания образа контейнера. Образ строится автоматически последовательным выполнением команд, приведенных в файле. + + +Docker-образ образует многоуровневую последовательность операций, каждый уровень которой представляет собой инструкции Docker-файла. Каждая инструкция создает отдельный уровень Docker-образа. При запуске Docker-образа и создании контейнера добавляется очередной уровень для записи изменений поверх нижнего уровня. + + +В зависимости от решаемой задачи можно построить Узел с соответствующими для этой задачи параметрами. В этом случае Docker-образ может быть построен с использованием одного из Docker-файлов, размещенных в каталоге `share/golosd/docker/`. Пользователю также предоставляется возможность самостоятельно создавать Docker-файл с необходимыми для его нужд параметрами для построения соответствующего контейнера. + + +В следующей таблице приведен перечень основных Docker-файлов и их назначение. + + +Docker-файл | Назначение +:-------- |:-------- +Dockerfile | Содержит набор инструкций и переменных для создания Docker-образа по умолчанию +share/golosd/docker/Dockerfile-small | Docker-файл с инструкциями одного уровня. Позволяет создать Docker-образ меньшего размера относительно Docker-образа, построенного по умолчанию +share/golosd/docker/Dockerfile-lowmem | Содержит набор переменных, направленных на экономию ресурсов, в том числе потребление памяти. Позволяют сконфигурировать Узел, не сохраняющий посты и комментарии +share/golosd/docker/Dockerfile-lowmem-small | Docker-файл с инструкциями одного уровня. Содержит набор переменных, позволяющих снизить потребление памяти + + +Для построения Docker-образа необходимо следовать следующим указаниям. + + +**1.** Удалить ранее установленный образ, исполнив: +``` +sudo docker image rm local/golos +``` + +**2.** Выбрать из размещенного в каталоге `share/golosd/docker/` набора нужный Docker-файл и построить Docker-образ, используя следующую команду: +``` +sudo docker build -t local/golos -f Dockerfile +``` +**3.** Запустить контейнер, исполнив: +``` +sudo docker run -d \ + -p 4243:4243 \ + -p 8090:8090 \ + -p 8091:8091 \ + -v /etc/golosd:/etc/golosd \ + -v /var/lib/golosd:/var/lib/golosd \ + --name golos-default local/golos +``` + +где: +`golos-default` — имя запущенного контейнера; +`local/golos` — показывает, что построение Docker-образа выполняется с использованием сети. + +### Перечень команд, применяемых к любому виду контейнера +**1.** Доступ к контейнеру: +``` +sudo docker exec -ti golos-default /bin/bash +``` +**2.** Получение текста лог-файла о контейнере: +``` +sudo docker logs --tail 10 -f golos-default +``` +**3.** Воспроизведение контейнера: +``` +sudo docker exec golos-default /usr/local/bin/golosdctl replay +``` +**4.** Подключение через cli_wallet к Узлу для проверки его функционирования: +``` +sudo docker exec -ti golos-default \ + /usr/local/bin/cli_wallet \ + --wallet="/var/lib/golosd/wallet.json" \ + --server-rpc-endpoint="ws://127.0.0.1:8091" +``` + +**5.** Запуск контейнера: +``` +sudo docker start golos-default +``` +**6.** Останов контейнера: +``` +sudo docker stop golos-default +``` + +## Раздел_3 Обновление GolosChain до новой версии +В этом разделе приведена инструкция по обновлению ранее установленного GolosChain до его новой версии HF•18. Предполагается, что ранее установленная версия GolosChain управляется операционной системой Ubuntu 16.04. + + +Для обновления GolosChain необходимо следовать следующим указаниям. + + +**1.** Обновить исходные файлы GolosChain, исполнив: +``` +git clone https://github.com/GolosChain/golos.git +cd golos +git submodule update --init --recursive -f +``` + +**2.** Задать значения макро-переменных и сконфигурировать проект, исполнив: +``` +mkdir build +cd build +cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_GOLOS_TESTNET=FALSE \ + -DBUILD_SHARED_LIBRARIES=FALSE \ + -DLOW_MEMORY_NODE=FALSE \ + -DCHAINBASE_CHECK_LOCKING=FALSE \ + .. +``` + +**3.** Построить проект с установкой [демона](#bld_45) в `/usr/local/`, исполнив: +``` +make -j $(nproc) +sudo make install +``` + +**4.** Открыть конфигурационный файл `share/golosd/config/config.ini` и установить в нем значения переменных окружения. В зависимости от решаемых задач можно установить значения переменных окружения, обеспечивающих создание Узлов следующих типов: + * API Узел в полной конфигурации со всеми включенными плагинами; + * Узел делегатский, содержащий минимальный набор включенных плагинов; + * Узел в произвольной конфигурации с произвольным набором включенных плагинов. + + +В следующей таблице приведен рекомендуемый перечень переменных окружения, значения которых необходимо установить. + + +Переменная окружения | Назначение +:-------- |:------- +witness | Устанавливает имя аккаунта делегата (для делегатского Узла) +private-key | Задает код личного ключа `active` (для делегатского Узла). Тип ключа может быть отличным от `active` +plugin | Определяет перечень плагинов. Неиспользуемые плагины могут быть удалены + + +Количество задаваемых плагинов в переменной `plugin` влияет на объем используемой памяти, а также быстродействие Узла. Минимальный набор плагинов приведен в файле `config_witness.ini`. + + +**5.** Остановить незавершенные процессы старой версии GolosChain на демоне. В зависимости от конфигурации останов может быть выполнен различными способами, например, с помощью следующих команд: +``` +pkill -15 golosd +sudo sv stop golosd +``` + +**6.** Воспроизвести блокчейн. Предварительно убедиться в наличии файлов `/var/lib/golosd/blockchain/block_log` и `/var/lib/blockchain/block_log.index`, в которых хранятся блоки и данные о состоянии системы и плагинов. Использование данных этих файлов избавляет от выполнения длительной операции синхронизации блоков по сети и, следовательно, сокращает время воспроизведения блокчейна. + + +Исполнить: +``` +/usr/local/bin/golosd --replay-blockchain +``` + + +**7.** Выполнить проверку успешного обновления GolosChain +* Открыть лог-файл и убедиться в следующих фактах: + * в файл прекращено поступление новой информации; + * текст файла не содержит сообщения об ошибках. +* Подключиться к Узлу через cli_wallet по порту 8091, исполнив: +``` +/usr/local/bin/cli_wallet \ + --wallet="/var/lib/golosd/wallet.json" \ + --server-rpc-endpoint="ws://127.0.0.1:8091" +``` +Успешное подключение к Узлу будет означать успешное обновление GolosChain. + + +## Раздел_4 Изначальная установка блокчейна +В этом разделе приведена инструкция по установке GolosChain обновленной версии. Предполагается, что GolosChain устанавливается изначально на сервер под управлением операционной системы Ubuntu 16.04. + + +Для установки обновленной версии GolosChain необходимо следовать следующим указаниям. + + +**1.** Создать на сервере пространство для размещения в нем репозитория golosd. + + +**2.** Установить необходимые пакеты. Система Ubuntu 16.04 обеспечивает автоматический поиск в сети требуемого набора пакетов и загрузку их в соответствующие им директории. Для этого необходимо исполнить: +``` +sudo apt-get install -y \ + autoconf \ + automake \ + autotools-dev \ + bsdmainutils \ + build-essential \ + cmake \ + doxygen \ + git \ + ccache \ + libboost-all-dev \ + libreadline-dev \ + libssl-dev \ + libtool \ + ncurses-dev \ + pbzip2 \ + pkg-config \ + python3 \ + python3-dev \ + python3-pip \ + runit +sudo pip3 install gcovr +``` + + +**3.** В отведенное для репозитория место скопировать исходные файлы из github, используя следующие команды: +``` +git clone https://github.com/GolosChain/golos.git +cd golos +git submodule update --init --recursive -f +``` +В процессе копирования не должны появляться сообщения об ошибках. + + +**4.** Задать значения макро-переменных и сконфигурировать проект, используя следующие команды: +``` +mkdir build +cd build +cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_GOLOS_TESTNET=FALSE \ + -DBUILD_SHARED_LIBRARIES=FALSE \ + -DLOW_MEMORY_NODE=FALSE \ + -DCHAINBASE_CHECK_LOCKING=FALSE \ + .. +``` + + +**5.** Построить проект с установкой демона в `/usr/local/`, исполнив: +``` +make -j $(nproc) +sudo make install +``` + + +**6.** Создать пользователя с именем golosd для демона: +``` +sudo useradd -s /bin/bash -m -d /var/lib/golosd golosd +``` + +**7.** Скопировать исходный файл genesis формата JSON для блокчейна, исполнив: +``` +sudo cp ../share/golosd/snapshot5392323.json /var/lib/golosd/ +``` + +**8.** Создать директорию golosd в `/etc/` и скопировать в нее конфигурационные файлы: +``` +sudo mkdir -p /etc/golosd +sudo cp ../share/golosd/seednodes /etc/golosd/ +sudo cp ../share/golosd/config/config.ini /etc/golosd/ +``` + + +**9.** Сменить имя владельца скопированным конфигурационным файлам: +``` +sudo chown golosd:golosd -R /etc/golosd/ +``` + +**10.** Создать сервисный файл для демона: +``` +sudo mkdir -p /etc/service/golosd +sudo cp ../share/golosd/golosd.sh /etc/service/golosd/run +sudo chmod +x /etc/service/golosd/run +``` + +**11.** Запустить функционирование GolosChain, исполнив: +``` +sudo sv start golosd +``` + + +**12.** Выполнить проверку успешной установки GolosChain. +* Открыть лог-файл и убедиться в следующих фактах: + * в файл прекращено поступление новой информации; + * текст файла не содержит сообщения об ошибках. +* Подключиться к Узлу через cli_wallet по порту 8091, исполнив: +``` +/usr/local/bin/cli_wallet \ + --wallet="/var/lib/golosd/wallet.json" \ + --server-rpc-endpoint="ws://127.0.0.1:8091" +``` + +Успешное подключение к Узлу будет означать успешную установку GolosChain. + +## Используемая терминология + **Аккаунт** (англ. account) — хранимая в системе учетная запись пользователя для его опознавания (аутентификации) и предоставления доступа к его личным данным и настройкам. + + + **Блокчейн** (англ. block chain) — строго структурированная база данных с определенными правилами построения цепочек транзакций и доступа к информации, которая исключает кражу данных, мошенничество, нарушение имущественных прав и т. д. + + + **Воспроизведение блокчейна** (англ. replaying the blockchain) — возобновление функционирования блокчейна, аналог операции перезагрузки. + + + **Делегат** (англ. witness) — пользователь блокчейна, наделенный определенными полномочиями. Используя свое (арендованное) оборудование, обеспечивает функционирование Узлов (нод) сети, создает и подписывает новые блоки, обеспечивая безопасность сети. + + + **Демон** (англ. daemon) — программа в системах семейства Linux, запускаемая самой системой и работающая в фоновом режиме без прямого взаимодействия с пользователем. + + + **Контейнер** — объект, создаваемый с помощью Docker-образа и содержащий все необходимые компоненты для работы приложения. Контейнер является безопасной платформой для функционирования приложения. + + + **Майнер** (англ. miner) — пользователь блокчейна, функциями которого являются получение криптовалюты путем использования ресурсов специального оборудования и программного обеспечения, а также подписание блоков. + + + **Плагин** (англ. plugin) — программный компонент, выполненный в виде отдельного модуля и являющийся дополнением к основной программе. + + + **Узел** (англ. node) — отдельное (программное) устройство, подключаемое к сети блокчейн по схеме клиент-сервер. Узлы являются активными элементами и составляют основу технологии сети блокчейн. + + + **Узел делегатский** (англ. witness node) — Узел, построенный с использованием конфигурационного файла `config_witness.ini`, содержащего минимальный набор включенных плагинов. + + + **Узел API** (англ. API node) — Узел, построенный с использованием конфигурационного файла `config.ini`, содержащего полную конфигурацию со всем набором включенных плагинов. + + + **Docker** — программное обеспечение для автоматизации установки приложения в среде виртуализации на уровне операционной системы. Обеспечивает установку приложения со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнером. + + + **Docker-образ** — шаблон платформы Docker, доступный только по чтению и используемый для создания контейнеров. + + + **Docker-файл** (англ. dockerfile) — файл, содержащий инструкции и параметры для создания Docker-образа под конкретные задачи. + + + +**Полезные ссылки:** +https://golos.io/ru--golos/@vik/ustanovka-i-nastroika-rezervnykh-nod-vozmozhnost-obkhoditsya-bez-nikh-ne-narushaya-rabotu-golosa +https://wiki.golos.io/golosd/HardFork/HF18_ReleaseNotice-rus.html + +*** diff --git a/golosd/HardFork/HF18_ReleaseNotice-rus.md b/golosd/HardFork/HF18_ReleaseNotice-rus.md new file mode 100644 index 00000000..45f4918a --- /dev/null +++ b/golosd/HardFork/HF18_ReleaseNotice-rus.md @@ -0,0 +1,322 @@ +## GOLOS·CORE +## Новые функциональные и технические возможности блокчейна HardFork HF·18 + +> ***Golos·Core выпустил очередную версию блокчейна HardFork HF·18, в которой реализованы новые функциональные и технические возможности, а также устранены недостатки предыдущих версий. Обновления поддержаны большинством голосов делегатов.*** + +### Рекомендация пользователям +**Новые функциональные и технические возможности вносят изменения в правила экономической модели блокчейна. Поскольку измененные правила в обновленном блокчейне отменяют действия старых правил, всем всем пользователям системы следует обновить кодовую базу на своих серверах до версии HF•18.** + + +### На этой странице: + +* [1. Делегирование Силы Голоса](#1-делегирование-силы-голоса) + * [1.1. Операция делегирования Силы Голоса](#11-операция-делегирования-силы-голоса) + * [1.2. Изменение или возврат делегированной Силы Голоса](#12-изменение-или-возврат-делегированной-силы-голоса) + * [1.3. Создание аккаунта с делегированной Силой Голоса](#13-создание-аккаунта-с-делегированной-силой-голоса) +* [2. Предотвращение злоупотреблений делегированием Силы Голоса с целью обогащения](#2-предотвращение-злоупотреблений-делегированием-силы-голоса-с-целью-обогащения) +* [3. Улучшение способа определения биржевого курса и соотношения криптовалют](#3-улучшение-способа-определения-биржевого-курса-и-соотношения-криптовалют) +* [4. Редактирование профиля пользователя с использованием ключа posting](#4-редактирование-профиля-пользователя-с-использованием-ключа-posting) +* [5. Предложение на транзакцию, состоящей из нескольких операций](#5-предложение-на-транзакцию-состоящей-из-нескольких-операций) + * [5.1. Предложение на транзакцию](#51-предложение-на-транзакцию) + * [5.2. Обновление предложенной транзакции](#52-обновление-предложенной-транзакции) + * [5.3. Удаление предложенной транзакции](#53-удаление-предложенной-транзакции) + * [5.4. Эффективность предложенной транзакции](#54-эффективность-предложенной-транзакции) +* [6. Редактирование постов и комментариев к ним независимо от времени их публикации](#6-редактирование-постов-и-комментариев-к-ним-независимо-от-времени-их-публикации) +* [7. Расширение перечня параметров блокчейна, значения которых определяются голосованием](#7-расширение-перечня-параметров-блокчейна-значения-которых-определяются-голосованием) +* [8. Повышение быстродействия системы за счет размещения в разных объектах полей с часто и редко используемыми данными](#8-повышение-быстродействия-системы-за-счет-размещения-в-разных-объектах-полей-с-часто-и-редко-используемыми-данными) +* [9. Повышение производительности API протокола за счет удаления неиспользуемых полей из методов плагинов, а также за счет перераспределения методов между плагинами для более эффективного их использования](#9-повышение-производительности-api-протокола-за-счет-удаления-неиспользуемых-полей-из-методов-плагинов-а-также-за-счет-перераспределения-методов-между-плагинами-для-более-эффективного-их-использования) + * [9.1. Удаление неиспользуемых полей из методов плагинов](#91-удаление-неиспользуемых-полей-из-методов-плагинов) + * [9.2. Размещение индексных операций по блокам и аккаунтам в отдельных плагинах](#92-размещение-индексных-операций-по-блокам-и-аккаунтам-в-отдельных-плагинах) +* [10. Использование тэгов при формировании запросов на получение необходимой информации](#10-использование-тэгов-при-формировании-запросов-на-получение-необходимой-информации) +* [11. Получение информации о текущем статусе разделяемой памяти](#11-получение-информации-о-текущем-статусе-разделяемой-памяти) +* [12. Постраничный просмотр личных сообщений пользователя](#12-постраничный-просмотр-личных-сообщений-пользователя) +* [13. Улучшения в подсистеме хранения блоков цепочки](#13-улучшения-в-подсистеме-хранения-блоков-цепочки) + + +*** + + +### 1. Делегирование Силы Голоса + + +#### 1.1. Операция делегирования Силы Голоса +На балансе кошельке пользователя могут храниться три вида криптовалюты — Голос, Сила Голоса и Золотой. Пользователь может за Голос приобрести Силу Голоса, что позволит ему более эффективно проводить голосование за интересующие посты. В зависимости от наличия на балансе кошелька количества Силы Голоса на момент голосования за какой-либо пост определяется размер бонуса по завершению процесса голосования. То есть размер бонуса, получаемого по результатам голосования за пост, пропорционален количеству Силы Голоса на балансе кошелька на момент голосования. + + +Пользователь (кредитор) может неиспользуемую часть Силы Голоса кредитовать на время (делегировать) другому пользователю, который также может ее использовать по своему усмотрению. Кредитор Силы Голоса при этом получает дополнительную возможность голосования за пост и, следовательно, возможность получения дополнительного бонуса. + + +Для выполнения операции делегирования кредитору Силы Голоса необходимо сформировать массив значений — блок делегирования с указанием типа операции, отправителя, получателя, сумма делегирования и пр. + + +Минимально возможное количество криптовалюты, необходимое для делегирования, является плавающей величиной и зависит от результатов голосования делегатов. + + +В блокчейне реализована блокировка различного рода злоупотреблений, связанных с использованием переводов криптовалюты из одного ее вида в другой и перечислением ее со счета на счет с целью обогащения. + + +#### 1.2. Изменение или возврат делегированной Силы Голоса +Кредитор Силы Голоса в случае каких-либо обстоятельств может изменить количество делегированного как в сторону его увеличения, так и уменьшения, а также осуществить возврат делегированного в полном объеме. + + +Для выполнения этой операции в сформированном блоке делегирования необходимо задать новое значение количества делегированной Силы Голоса. В случае полного ее возврата следует задать значение вида “0.000000 GESTS”. При изменении значения в сторону уменьшения делегированная Сила Голоса сразу снимается с аккаунта-получателя и переходит в «замороженное» состояние сроком на 7 дней. + + +Для выполнения этой операции требуется авторизация с помощью ключа `active`. + + +#### 1.3. Создание аккаунта с делегированной Силой Голоса +Пользователь может создать новый аккаунт, на балансе кошелька которого будет находиться Сила Голоса. За создание аккаунта в качестве комиссионных отчислений с баланса кошелька автора снимается определенная сумма. Величина этих отчислений не может быть меньше значения параметра `fee`, устанавливаемого по результатам голосования делегатов. Параметр `fee` показывает изначальный базовый баланс кошелька аккаунта, необходимый для его существования в системе. + + +Для того, чтобы пользователь нового аккаунта мог создавать посты, комментарии, а также участвовать в голосовании, необходимо, чтобы на балансе кошелька нового аккаунта появилась криптовалюта Сила Голоса в количестве не менее базового значения `fee`. Для этого с баланса кошелька создателя аккаунта снимается криптовалюта в виде Голоса и зачисляется на баланс кошелька нового аккаунта в виде Силы Голоса. + + +Вводится параметр `bandwidth`, устанавливающий пропускную способность аккаунта — количество операций, выполняемых пользователем за определенный период времени. Этот параметр зависит только от баланса Силы Голоса. Наличие в кошельке других видов криптовалюты (Голоса и Золотого) не оказывает на него влияния. Этот параметр ограничивает активность пользователя и не позволяет ему слишком часто создавать комментарии, принимать участие в голосовании или выполнять какие-либо другие операции. + + +Для операции создания аккаунта с делегированием необходима подпись ключом `active`. Созданный аккаунт может иметь ключи owner, `active`, `posting` и `memo`. + + +**Примечания:** +1. Затрачиваемое на создание аккаунта количество криптовалюты не может быть возвращено обратно в кошелек создателя. + + +2. Создатель аккаунта может делегировать часть Силы Голоса на новый аккаунт. В этом случае делегированная часть будет также списана с баланса Силы Голоса его кошелька и зачислена на баланс Силы Голоса нового аккаунта. Делегированная Сила Голоса может быть возвращена в кошелек создателя через определенный период, длительность которого определяется голосованием. + + +### 2. Предотвращение злоупотреблений делегированием Силы Голоса с целью обогащения +Для предотвращения злоупотреблений делегированием Силы Голоса, связанных с быстрыми перечислениями криптовалюты с баланса кошелька кредитора на баланс кошелька заемщика и конвертацией Силы Голоса в Голос, в блокчейне реализовано решение, предотвращающее такие действия. Решение основано на задержке операции конвертации Силы Голоса в Голос. + + +Обналичивание Голоса в Силу Голоса осуществляется без задержки и, напротив, обналичивание Силы Голоса в Голос осуществляется по истечении семи дней. + + +В случае аннулирования кредитором делегированной Силы Голоса, она немедленно будет снята с кошелька заемщика в полном объеме, но возвращена в кошелек кредитора также по истечении семи дней. + + +### 3. Улучшение способа определения биржевого курса и соотношения криптовалют +Криптовалюты Голос и Золотой могут выставляться на биржевых торгах. В экономической составляющей блокчейна реализован динамический параметр, показывающий соотношение этих двух видов криптовалют, то есть их биржевой курс. Значение этого соотношения определяется делегатами системы. Каждый из них публикует свое значение курса, которое на его взгляд считается наиболее валидным. Значения курсов сохраняются в базе данных блокчейна, где они сортируются в порядке убывания. За результирующее значение курса криптовалют принимается их медианное значение. + + +В предыдущих версиях в процессе определения результирующего значение курса криптовалют использовались как новые предложенные данные от делегатов, так и старые, хранящиеся в базе данных блокчейна. Наличие последних в определении курса вносило неточность в итоговый результат. + + +В версии HF•18 старые значения курса удаляются из базы данных блокчейна и не участвуют в определении текущего курса криптовалют. Данная реализация обеспечивает более правильную ценовую политику Голоса и Золотого на биржевых торгах. + + +### 4. Редактирование профиля пользователя с использованием ключа posting +В предыдущих версиях блокчейна редактирование любого поля профиля пользователя возможно было только с использованием ключа `active`. Поскольку этот ключ предназначен для выполнения наиболее ответственных операций, его использование для редактирования часто используемых полей профиля не всегда было приемлемым. + + +Для устранения этого недостатка в версии HF•18 принято решение разделить поля профиля на две группы. В состав первой группы вошли поля с наиболее значимыми данными профиля (ключи: `posting`, `active`, `owner` и `memo`), а в другую — с менее значимыми, но часто используемыми (аватар, пол, местонахождение и пр.). Процедура изменения полей первой группы сохранена и возможна только с использованием ключа `active`. Процедура редактирования полей второй группы изменена и возможна с использованием ключа `posting`, что является наиболее приемлемым для пользователя. + + +### 5. Предложение на транзакцию, состоящей из нескольких операций + + +#### 5.1. Предложение на транзакцию +Пользователю предоставляется возможность предлагать транзакцию на блокчейне, в состав которой входят несколько отдельных операций, на выполнение каждой из которых требуется одобрение от других пользователей. + + +Предложение на транзакцию создается в виде блока, в который автор транзакции вводит информацию, необходимую для ее проведения. Этот блок отправляется в блокчейн, после чего пользователи видят информацию о предложенной транзакции в своих кошельках. Каждая операция из транзакции закрепляется за конкретным пользователем — участником транзакции, который может либо дать согласие на ее выполнение, либо отказаться, подписавшись соответствующим ключом. + + +Все подписи от участников транзакции отправляются на сервер и, в случае получения необходимого количества подписей, предложенная транзакция выполняется. На получение подписей, а также на выполнение транзакции отводится определенное время. + + +Право проставления подписи на выполнение любой из операций транзакции имеет каждый из участников транзакции. Например, операция публикации поста может быть назначена одному участнику транзакции, а операция перечисления вознаграждения за нее — другому. В случае несогласия другого участника с выполнением второй операции он может удалить уже поставившую подпись на выполнение первой операции данной транзакции. + + +Отдельная операция из перечня транзакции может рассматриваться как комплексная и на ее выполнение может быть также предложена отдельная транзакция, содержащая более одной операции. В этом случае формируется комплексная транзакция. Количество уровней вложенности комплексной транзакции ограничено и не может быть более двух. Такое ограничение вводится с целью снижения нагрузки на серверы и, соответственно, уменьшения времени выполнения транзакции. + + +#### 5.2. Обновление предложенной транзакции +Автору, а также участникам транзакции, предоставляется возможность менять свое решение и обновлять уже проставленные подписи до истечения времени, отводимого на транзакцию. + + +Время на принятие решения участников транзакции ограничено и не может превышать максимально отведенное время на выполнение транзакции. +Если транзакция не получает одобрения на выполнение какой-либо из операций, эта транзакция не отменяется и ее актуальность будет сохраняться до отведенного на ее выполнение времени. Как только все необходимые подписи будут получены, транзакция незамедлительно будет выполняться и, независимо от дальнейших решений участников транзакции, все последующие обновления будут считаться недействительными. + + +#### 5.3. Удаление предложенной транзакции +В случае отказа кого-либо из участников транзакции на выполнение операции он может сформировать на блокчейне запрос на удаление предложенной транзакции. Удалить предложенную транзакцию может как ее автор, так и любой ее участник, имеющий право на подпись. Если хотя бы один из участников транзакции формирует запрос на ее удаление, то, независимо от подписей остальных участников, данная транзакция будет удалена. + + +#### 5.4. Эффективность предложенной транзакции +Независимо от того, содержит ли транзакция одну операцию или несколько, для ее выполнения требуется получение необходимого количества голосов. На выполнение нескольких операций можно последовательно сформировать столько же простых транзакций. Суммарное время сбора подписей на выполнение всех транзакций будет состоять из отдельных последовательных периодов. + + +Предложение на транзакцию с несколькими операциями является более эффективным ввиду того, что участники транзакции одновременно получают уведомления на разрешение выполнения всех операций. В этом случае на сбор подписей отводится всего один период, а не цепочка из отдельных последовательных периодов. + + +### 6. Редактирование постов и комментариев к ним независимо от времени их публикации +В предыдущих версиях блокчейна на редактирование постов и комментариев к ним отводился определенный период, по истечении которого внесение изменений в них было невозможным. По этой причине посты со временем могли терять свою актуальность и их авторам вместо их обновления приходилось дополнительно создавать аналогичные посты в соответствии с текущей ситуацией. + + +В версии HF•18 этот недостаток устранен. Ограничение на выделенное для редактирования время не действует и, следовательно, в комментарии и посты всегда можно вносить свежую информацию и содержать их в актуальном состоянии. + + +### 7. Расширение перечня параметров блокчейна, значения которых определяются голосованием +Предыдущие версии блокчейна обеспечивали поддержку операции `witness_update`, с помощью которой определялись значения некоторых параметров делегатами Голоса по результатам голосования. В этот перечень входили следующие параметры: +1. `account_creation_fee` — размер комиссионных отчислений, требуемых на создание аккаунта без делегирования; +2. `maximum_block_size` — максимальный размер блока блокчейна; +3. `sbd_interest_rate` — процент, начисляемый на SBD. + + +Недостаток заключался в том, что использование операции `witness_update` не позволяло расширить перечень таких параметров. + + +В версии HF•18 реализована новая операция `chain_properties_update`, которая поддерживает более расширенный перечень параметров, значения которых определяются голосованием делегатов Голоса, и позволяет наращивать его в будущем. В новый перечень входят следующие параметры: +1. `account_creation_fee` — размер комиссионных отчислений, требуемых на создание аккаунта без делегирования; +2. `maximum_block_size` — максимальный размер блока блокчейна; +3. `sbd_interest_rate` — процент, начисляемый на SBD; +4. `create_account_min_golos_fee` — минимальный размер комиссионных отчислений в криптовалюте Голос, требуемых на создание аккаунта с делегированием; +5. `create_account_min_delegation` — устанавливает минимально возможное количество Силы Голоса при создании аккаунта с делегированием; +6. `min_delegation` — устанавливает минимально возможное количество Силы Голоса для делегирования на аккаунт; +7. `create_account_delegation_time` — устанавливает минимально возможное время «заморозки» (в секундах) делегированной Силы Голоса при создании аккаунта с делегированием. + + +Параметры устанавливаются голосованием в абсолютных значениях. Изначально каждый из параметров принимает установленное для него значение по умолчанию. + + +Для выполнения этой операции требуется подпись ключом `active`. + + +### 8. Повышение быстродействия системы за счет размещения в разных объектах полей с часто и редко используемыми данными +Каждый создаваемый пользователем пост и комментарии к нему размещаются в отдельном блоке памяти. Физически такие блоки хранятся на дисках распределенной системы. + + +В структуре каждого объекта, помимо поста и комментариев, содержатся метаданные и служебная информация, в том числе счетчики, используемые для расчета вознаграждения за пост. Поступление каждого голоса за пост вызывает изменение показаний счетчиков — количество набранных голосов, вес поста, а также размер ожидаемого вознаграждения на момент поступления голоса. Обработка голоса относится к наиболее часто выполняемой операции, требующей обновление объекта. Независимо от того, подлежит ли обновлению объект полностью или только в части показаний счетчиков, он требует полного перемещения с дискового пространства в оперативную память, а также последующего сохранения его на диск. + + +В случае обработки большого объекта, когда его объем превышает объем выделенной оперативной памяти, происходит поэтапное считывание (загрузка в память) отдельных частей объекта, требующее дополнительных системных ресурсов. По этой причине на обработку объектов большого объема затрачивается значительно больше времени в отличие от времени обработки небольших объектов, полностью размещаемых в оперативной памяти. Интенсивное голосование за пост вызывает частое перемещение объекта, в котором этот пост размещен, и, следовательно, снижение производительности системы. + + +С целью уменьшения времени, затрачиваемого на считывание объекта в память и сохранение его на диск, в HF•18 принято решение, разделить объект на две части, в одной из которых размещаются редко изменяемые данные объекта (метаданные и тело поста), в другой — счетчики, требующие обновления показателей с поступлением каждого голоса. Такая структура объекта позволила во время голосования перемещать в оперативную память на обработку только его изменяемую часть, в которой находятся счетчики, без риска потери какой-либо информации. Это сократило количество операций, выполняющих непосредственно перемещение объекта между диском и оперативной памятью, и, соответственно, положительно отразилось на производительности системы. + + +### 9. Повышение производительности API протокола за счет удаления неиспользуемых полей из методов плагинов, а также за счет перераспределения методов между плагинами для более эффективного их использования + + +#### 9.1. Удаление неиспользуемых полей из методов плагинов +В системе кроме основных объектов хранятся объекты, обеспечивающие выполнение редкоиспользуемых функциональностей, которые пользователями могут быть не востребованы. В этих функциональностей может быть набор функций, которые могут быть востребованы пользователем. Хранение в системе таких функциональностей является малоэффективным. + + +В версии HF•18 было выполнено перемещение методов между плагинами с целью высвобождения из методов части неиспользуемых полей с последующим их удалением. Это позволило снизить нагрузку на используемую память. + + +#### 9.2. Размещение индексных операций по блокам и аккаунтам в отдельных плагинах +В состав индексных операций блокчейна входят в основном три вида операций, выполняемых по сформированному запросу на сервер: +1. получение списка операций, находящихся в блоках; +2. получение списка операций, находящихся в транзакциях; +3. получение списка операций, выполняемых каким-либо конкретным аккаунтом или связанных с ним. + + +В предыдущих версиях блокчейна для получения информации об операциях третьего вида необходимо было включить плагин `account_history`. Недостаток заключался в том, что метод, непосредственно выполнявший данную функциональность, размещался в другом плагине `database_api`. Методы, выполнявшие операции видов 1 и 2 также размещались в плагине `database_api`. Для вызова каждого их трех методов необходимо было включать плагин `account_history`, что создавало дополнительную нагрузку на сервер и на потребляемую память, и, следовательно, отрицательно влияло на быстродействие системы. + + +Кроме этого, возникали затруднения с настройкой сервера для включения какой-либо одной операции (например, только индексирование операции по блоку и исключение других). + + +В версии HF•18 принято решение переместить модули, выполняющие индексные операции, из плагина `database_api` в плагины в соответствии с их функциональностью. + + +Метод, возвращающий список операций по аккаунту, был перемещен в плагин `account_history`, обеспечивающий данную функциональность. Методы, используемые для индексирования операций в блоках и транзакциях были перемещены в новый плагин `operation_history`. Это позволило логически сконцентрировать компоненты, обеспечивающие включение индексов и самих операций, по которым могут отдельно быть получены списки операций по блокам, транзакциям или по аккаунту. Теперь для получения списка операций в блоках и транзакциях достаточно будет включить плагин `operation_history`. Для получения более расширенной информации по аккаунтам необходимо подключить `account_history`. +Исключение лишних операций индексирования позволило снизить нагрузку на сервер и память и, соответственно, повысить производительность системы. + + +### 10. Использование тэгов при формировании запросов на получение необходимой информации +В предыдущих версиях блокчейна поиск интересующей пользователя информации инициировал операции индексирования. Для поиска корневого элемента (например, поста или комментария) необходимо было подключиться к плагину `SocialNetwork`, где также инициировался поиск по дополнительным индексам. Последнее приводило к тому, что пользователю наряду с полезной также выдавалась не представляющая ему интерес информация. Из-за наличия в выдаче большого объема ненужной информации увеличивался размер файла разделяемой памяти, что негативно отражалось на производительности системы. + + +В версии HF•18 методы, обеспечивающие поиск информации по индексам, размещены в двух отдельных плагинах. +Часть методов, обрабатывающие теги (например, получение наиболее популярных тэгов, получение списка языков, получение используемых автором списка тэгов и др.) была перемещена из плагина `SocialNetwork` в отдельный плагин `Tag`. Дополнительные индексы для сортировки по тэгам создавались только в этом плагине. + + +В плагине `SocialNetwork` сохранились методы, обеспечивающие обращение к корневым элементам для получения, например, контента, целиком вложенного дерева, списка активных голосов и др. + + +Такое разделение методов позволяет пользователю формировать запрос на получение только необходимой ему информации. Чтобы избежать получения контента целиком, пользователю достаточно указать параметры, по которым идентифицируется часть контента (ограничения, набор тэгов). + + +Поскольку пост может содержать значительное количество (более тысячи) комментариев, пользователь может сформировать запрос на получение только выбранной (отсортированной) в соответствии с указанными в тэге признаками части комментариев. + + +Введен параметр `vote_limit`, с помощью которого пользователь может ограничить получаемый список проголосовавших. Этот параметр позволяет уменьшить размер отправляемого от сервера ответа. При этом в ответе добавляется дополнительное поле `active_votes_count`, информирующее об общем количестве проголосовавших без получения списка целиком. + + +### 11. Получение информации о текущем статусе разделяемой памяти +В версии HF•18 реализована возможность пользователю получать информацию о текущем статусе разделяемой памяти. Для этого пользователю достаточно сформировать запрос в блокчейн. В состав получаемой информации о текущем статусе разделяемой памяти входят следующие данные: общий объем разделяемой памяти, размер свободного и зарезервированного пространства для определенных нужд, а также список индексов, хранящихся в разделяемой памяти (название индекса, количество записей). + + +### 12. Постраничный просмотр личных сообщений пользователя +Общее количество сообщений во время голосования за пост может достигать такого значения, когда просмотр пользователем личных сообщений становится затрудненным. + + +Для устранения этого недостатка были модифицированы методы в плагине `private_message`. Данная доработка обеспечивает следующие возможности: +1. выделять интересующие пользователя личные сообщения из общего потока исходящих или входящих сообщений с указанием даты их поступления; +2. просматривать личные сообщения в режиме постраничного вывода на экран; +3. ограничить количество поступающих сообщений. + + +### 13. Улучшения в подсистеме хранения блоков цепочки +В блокчейне имеются два вида хранилищ: +1. разделяемая память, размещенная в файле `shared_memory.bin` и предназначенная для хранения актуальных данных состояния системы; +2. цепочка из упакованных в определенном порядке подписанных блоков, размещенных в файле `block_log`. + + +Обращения к цепочке блоков происходят редко. Обычно это происходит по точечным запросам через API-вызовы для получения тела подписанного блока, синхронизации данных между серверами и ряда других операций. Каждое обращение к файлу `block_log` инициирует значительное количество системных вызовов, в том числе: открытие файла, поиск необходимой позиции и считывание данных из файла. Одновременно с этими операциями может выполняться запись информации в конец файла, требующая от системы подобных действий — переоткрытие файла, поиск конечной позиции в файле и запись в файл. + + +В предыдущих версиях блокчейна одновременные обращения к файлу `block_log` как по чтению, так и по записи вызывали блокирование доступа к файлу, что негативно влияло на производительность сервера. С целью устранения такого недостатка в HF-18 была реализована новая технология, обеспечивающая одновременный доступ к файлу `block_log` по чтению без замедления работы сервера. Блокирование доступа к файлу `block_log` происходит только во время выполнения операции записи. + + +### Используемая терминология +**Автор транзакции** — пользователь, предлагаемый на голосование созданную им транзакцию на блокчейне. + + +**Аккаунт** (англ. account) — хранимая в системе учетная запись пользователя для его опознавания (аутентификации) и предоставления доступа к его личным данным и настройкам. + + +**Блокчейн** (англ. block chain — цепочка блоков) — строго структурированная база данных с определенными правилами построения цепочек транзакций и доступа к информации, которая исключает кражу данных, мошенничество, нарушение имущественных прав и т. д. + + +**Голос** или **Golos** — криптовалюта, обеспечивающая перечисление средств между кошельками (счетами) пользователей, а также конвертацию или продажу на биржевом рынке. + + +**Золотой** или **GBG** (англ. Golden Backed by Golos) — криптовалюта, обеспечивающая хеджирование активов пользователя, то есть поддержку активов определенными фондами (золотом, рублями и пр.). Блокчейн гарантирует выплату владельцу активов сумму денежных средств, эквивалентную стоимости этих активов. Единица Золотого оценивается в 1 мг золота. Этот курс является базовым для проведения операций с внешним экономическим миром. Общее количество такого вида криптовалюты в системе не должно превышать 5%. В случае несоблюдения этого условия, правила, по которым функционирует блокчейн, должны быть изменены. + + +**Кошелек** или **блокчейн-кошелек** (англ. blockchain wallet) — веб-кошелек для хранения криптовалюты. + + +**Кредитор** — пользователь, который делегирует часть Силы Голоса другому пользователю. + + +**Криптовалюта** — разновидность цифровой валюты, создание и контроль над которой базируются на криптографических методах. Golos Core поддерживает операции над тремя видами криптовалюты: Голос, Сила Голоса и Золотой. + + +**Медианное значение** — значение, определяемое выборкой из середины множества чисел, расположенных в определенном порядке (по убыванию или по возрастанию). Например, медианное значение множества {8, 8, 7, 2, 1} равняется 7, так как это число находится в середине множества. Если множество состоит из четного количества чисел, то результатом является полусумма двух соседних значений. Например, медианное значение множества {7, 5, 3, 1} равняется 4. + + +**Плагин** (англ. plugin) — программный компонент, выполненный в виде отдельного модуля и являющийся дополнением к основной программе. + + +**Пост** (англ. to post — размещать, публиковать) — любая статья или запись на веб-странице, содержащая название, перечень ключевых слов и непосредственно текст. + + +**Сила Голоса** или **Golos Power** — криптовалюта, обеспечивающая создание постов и комментариев, а также голосование за посты в системе блокчейн. Эффективность постов оценивается количеством Силы Голоса. + + +**Участник транзакции** — пользователь, который отвечает за выполнение отдельной операции из предложенной транзакции. + +#### Полезные ссылки: +https://wiki.golos.io/golosd/HardFork/New_HardFork-HF18.html +https://wiki.golos.io/golosd/HardFork/RC2-HF18.html +https://wiki.golos.io/golosd/HardFork/HF18_cli_wallet_changes-rus.html + +*** + + + diff --git a/golosd/HardFork/HF18_cli_wallet_changes-rus.md b/golosd/HardFork/HF18_cli_wallet_changes-rus.md new file mode 100644 index 00000000..96b5ae9d --- /dev/null +++ b/golosd/HardFork/HF18_cli_wallet_changes-rus.md @@ -0,0 +1,333 @@ +# HF·18: изменения в cli_wallet +***Эта страница содержит информацию об изменениях в клиентском приложении cli_wallet, предоставляющие возможность создания транзакции произвольного вида в ручном режиме.*** + + + +*** +## Общее +Клиентское приложение `cli_wallet` (виртуальный кошелек) поставляется вместе с программой-эмулятором демоном (от англ. daemon). Данное приложение является одним из основных программных устройств, широко используемым участниками биржевых торгов. Приложение обеспечивает выполнение балансовых операций со счетами виртуальных кошельков клиентов, а также создание постов, голосование за посты и пр. + + +Целью доработок `cli_wallet` в HF·18 являлось создание удобного программного инструмента, обеспечивающего создание транзакции произвольного вида в ручном режиме. + + +В предыдущих версиях блокчейна создание транзакции выполнялось только в автоматическом режиме с подключением JS-, Python- и GO-библиотек. Главным достоинством автоматического создания транзакции являлась быстрота и избавление пользователей от трудоемких операций. Недостатком такой реализации являлось наличие фиксированного набора команд, ограничивающего пользователей в возможности манипулировать параметрами. + + +В версии HF·18 создан конструктор, обеспечивающий формирование транзакций с произвольным набором выполняемых операций. С помощью конструктора пользователь может задать перечень операций с их описанием. Пользователь также может добавлять, изменять и редактировать операции в создаваемой транзакции. Каждая отдельная операция выполняется отдельным методом, входящего в состав методов `cli_wallet`. + + +Доработка заключается в добавлении необходимых методов в `cli_wallet` и выполнена в соответствии с требованиями поставленной задачи №542. + +## Новые методы в cli_wallet для расширения возможностей API +Клиентское приложение `cli_wallet` дополнено новыми методами, реализующие новый программный компонент — конструктор транзакций. В отличие от предыдущих версий блокчейна пользователь с помощью конструктора может формировать транзакцию произвольного вида по своему усмотрению. Кроме этого, конструктор позволяет создавать несколько транзакций для одновременного выполнения операций и идентифицировать каждую отдельную транзакцию. Доработка не вносит изменения в работу API, а только расширяет его возможности. Только два метода — `create_account` и `create_account_with_keys`, входящие в прежний состав методов приложения `cli_wallet` были незначительно модифицированы. +### Метод create_account_delegated +Этот метод позволяет создавать публичные ключи `owner`, `active`, `posting` и `memo` для нового аккаунта. За создание аккаунта в качестве комиссионных отчислений с баланса кошелька создателя аккаунта (автора) снимается определенная сумма `fee`. Величина этих отчислений не может быть меньше значения параметра `account_creation_fee`, устанавливаемого по результатам голосования делегатов. Параметр `fee` показывает изначальный базовый баланс кошелька аккаунта, необходимый для его существования в системе. С баланса кошелька создателя аккаунта снимается криптовалюта в виде Голоса (Golos) и зачисляется на баланс кошелька нового аккаунта в виде Силы Голоса (VESTS). Размер комиссионных отчислений, а также другую информацию от блокчейна, можно найти в выдаче команды `wallet`, имеющей вид `“account_creation_fee”:”X.000 GOLOS”`. + + +Затрачиваемое на создание аккаунта количество криптовалюты не может быть возвращено обратно в кошелек создателя. + + +Создатель аккаунта может делегировать часть Силы Голоса на новый аккаунт. В этом случае делегированная часть будет также списана с баланса Силы Голоса его кошелька и зачислена на баланс Силы Голоса нового аккаунта. Делегированная Сила Голоса может быть возвращена в кошелек создателя через определенный период, длительность которого определяется голосованием. + + +Метод имеет следующий вид: +``` +annotated_signed_transaction create_account_delegated( + string creator, + asset steem_fee, + asset delegated_vests, + string new_account_name, + string json_meta, + bool broadcast +); +``` +где: +`creator` — пользователь, который создает новый аккаунт; +`steem_fee` — сумма комиссионных отчислений в криптовалюте Голос, снимаемая с баланса кошелька пользователя за создание нового аккаунта и зачисляемая на баланс кошелька созданного аккаунта в криптовалюте Сила Голоса. Эта сумма не может быть возвращена обратно в кошелек создателя аккаунта; +`delegated_vests` — сумма комиссионных отчислений в криптовалюте Сила Голоса, снимаемая с баланса кошелька пользователя за операцию делегирования и зачисляемая на баланс кошелька нового аккаунта в криптовалюте Сила Голоса. Эта сумма может быть возвращена обратно в кошелек создателя аккаунта по истечении определенного периода, устанавливаемого голосованием делегатов; +`new_account_name` — имя нового аккаунта; +`json_meta` — метаданные профиля нового аккаунта поля `json_metadata`; +`broadcast` — ‘true’, если транзакция пересылается на демон; ‘false’, если выполняется базовый контроль с выдачей подписанной транзакции на консоль. +### Метод create_account_with_keys_delegated +Этот метод используется для создания новых аккаунтов через вызов операции `account_create`. В отличие от метода `create_account`, который обеспечивает генерацию ключей для нового аккаунта автоматически, метод `create_account_with_keys_delegated` требует явного задания ключей для нового аккаунта. Создатель аккаунта обязан иметь соответствующий ключ. + + +Созданный аккаунт не может контролироваться его кошельком. С баланса кошелька создателя снимается сумма комиссионных отчислений в криптовалюте Голос и зачисляется на баланс кошелька нового аккаунта в криптовалюте Сила Голоса. Метод имеет следующий вид: +``` +annotated_signed_transaction create_account_with_keys_delegated( + string creator, + asset steem_fee, + asset delegated_vests, + string newname, + string json_meta, + public_key_type owner, + public_key_type active, + public_key_type posting, + public_key_type memo, + bool broadcast +) const; +``` +где: +`creator` — пользователь, который создает новый аккаунт; +`steem_fee` — сумма комиссионных отчислений в криптовалюте Голос, снимаемая с баланса кошелька пользователя за создание нового аккаунта и зачисляемая на баланс кошелька созданного аккаунта в криптовалюте Сила Голоса. Эта сумма не может быть возвращена обратно в кошелек создателя аккаунта; +`delegated_vests` — сумма комиссионных отчислений в криптовалюте Сила Голоса, снимаемая с баланса кошелька пользователя за операцию делегирования и зачисляемая на баланс кошелька нового аккаунта в криптовалюте Сила Голоса. Эта сумма может быть возвращена обратно в кошелек создателя аккаунта по истечении определенного периода, устанавливаемого голосованием делегатов; +`newname` — имя нового аккаунта; +`json_meta` — метаданные профиля нового аккаунта поля `json_metadata`; +`owner` — значение публичного ключа `owner` нового аккаунта; +`active` — значение публичного ключа `active` нового аккаунта; +`posting` — значение публичного ключа `posting` нового аккаунта; +`memo` — значение публичного ключа `memo` нового аккаунта; +`broadcast` — ‘true’, если транзакция пересылается на демон. +### Метод delegate_vesting_shares +Метод обеспечивает делегирование части криптовалюты Силы Голоса с одного аккаунта на другой. Метод имеет следующий вид: +``` +annotated_signed_transaction delegate_vesting_shares( + string delegator, + string delegatee, + asset vesting_shares, + bool broadcast +); +``` +где: +`delegator` — имя аккаунта, который делегирует Силу Голоса; +`delegatee` — имя аккаунта, на который делегируется Сила Голоса; +`vesting_shares` — сумма делегирования; +`broadcast` — ‘true’, если транзакция пересылается на демон. +### Метод begin_builder_transaction +Метод вызывает операцию создания конструктора транзакций и возвращает уникальный номер созданного конструктора. Начальное значение уникального номера принимается равным «0» и увеличивается на единицу с каждым вызовом метода. Метод имеет следующий вид: +``` +transaction_handle_type begin_builder_transaction(); +``` +### Метод get_prototype_operation +Метод используется для получения и заполнения шаблона для операции, создаваемой с помощью другого метода `add_operation_to_builder_transaction`. Метод возвращает неинициализированный объект в виде заданной последовательности операций. Созданный объект может быть дополнен любой операцией с помощью вызова `add_operation_to_builder_transaction()`. + + +Предварительно необходимо определить json-формат данных операции, чтобы получить соответствующий шаблон. Метод имеет следующий вид: +``` +operation get_prototype_operation( + string operation_type +); +``` +где: +`operation_type` — тип операции. Операция должна быть определена в файле `steem/chain/operations.hpp`. +### Метод add_operation_to_builder_transaction +Этот метод используется для добавления операции в список операций конструктора транзакций. Метод имеет следующий вид: +``` +void add_operation_to_builder_transaction( + transaction_handle_type handle, + const operation& op +); +``` +где: +`handle` — уникальный номер конструктора; +`op` — добавляемая операция. +### Метод add_operation_copy_to_builder_transaction +Метод обеспечивает копирование операции между конструкторами транзакций. Каждый их конструкторов идентифицируется значением параметра `handler`, возвращаемого методом `begin_builder_transaction()`. Метод имеет следующий вид: +``` +void add_operation_copy_to_builder_transaction( + transaction_handle_type src_handle, + transaction_handle_type dst_handle, + uint32_t op_index +); +``` +где: +`src_handle` — уникальный номер конструктора, из которого копируется операция; +`dst_handle` — уникальный номер конструктора, на который копируется операция; +`op_index` — номер копируемой операции. +### Метод replace_operation_in_builder_transaction +Метод обеспечивает замену операции в конструкторе транзакций под номером `op_index` на операцию `op`. Метод имеет следующий вид: +``` +void replace_operation_in_builder_transaction( + transaction_handle_type handle, + unsigned op_index, + const operation& op +); +``` +где: +`handle` — уникальный номер конструктора; +`op_index` — номер операции в конструкторе транзакций, которую необходимо заменить; +`op` — заменяющая операция. +### Метод preview_builder_transaction +Метод обеспечивает поиск и получение конструктора транзакций по заданному идентификационному номеру из списка конструкторов. Метод имеет следующий вид: +``` +transaction preview_builder_transaction( + transaction_handle_type handle +); +``` +где: +`handle` — уникальный номер получаемого конструктора. +### Метод sign_builder_transaction +Метод используется для подписания всех транзакций в конструкторе транзакций. Метод имеет следующий вид: +``` +signed_transaction sign_builder_transaction( + transaction_handle_type handle, + bool broadcast +); +``` +где: +`handle` — уникальный номер конструктора транзакций; +`broadcast` — ‘true’, если подписанные транзакции необходимо переслать на демон. +### Метод propose_builder_transaction +Метод используется для создания конструктора предлагаемых транзакций. Метод имеет следующий вид: +``` +signed_transaction propose_builder_transaction( + transaction_handle_type handle, + std::string author, + std::string title, + std::string memo, + time_point_sec expiration = time_point::now() + fc::minutes(1), + time_point_sec review_period_time = time_point::min(), + bool broadcast +); +``` +где: +`handle` — уникальный номер создаваемого конструктора транзакций; +`author` — автор предлагаемой транзакции; +`title` — заголовок предлагаемой транзакции; +`memo` — примечание, текст которого дополняет смысловое значение заголовка; +`expiration` — время, по истечении которого прекращается подписание транзакции; +`review_period_time` — период, выделенный для подписания транзакции; +`broadcast` — ‘true’, если транзакция пересылается на демон. +### Метод remove_builder_transaction +Метод обеспечивает удаление конструктора транзакций по заданному идентификационному номеру. Метод имеет следующий вид: +``` +void remove_builder_transaction( + transaction_handle_type handle +); +``` +где: +`handle` — уникальный номер конструктора транзакций. Этот номер уменьшается на единицу после каждого вызова метода. +### Метод approve_proposal +Метод обеспечивает проверку и сбор подписей на предложенную транзакцию. Метод возвращает подписанную версию транзакции. + + +Поскольку для подписи транзакции используются три типа ключей (`owner`, `active` и `posting`), подсчет подписей каждого типа ключей выполняется отдельно. Для этого в методе находится специальный структурный параметр `delta`, в котором содержатся актуальные данные результатов голосования по каждому типу ключей. Структура параметра имеет следующий вид: +```javascript +struct approval_delta { + vector active_approvals_to_add; // список необходимых аккаунтов, которые должны + // поставитьподпись вида «active» для одобрения предложенной транзакции + vector active_approvals_to_remove; // список необходимых аккаунтов, чьи подписи + // вида «active» должны быть удалены из списка подписей, которые одобрили + // транзакцию + vector owner_approvals_to_add; // список необходимых аккаунтов, которые должны + // поставить подпись вида «owner» для одобрения предложенной транзакции + vector owner_approvals_to_remove; // список необходимых аккаунтов, чьи подписи + // вида «owner» должны быть удалены из списка подписей, которые одобрили + // транзакцию + vector posting_approvals_to_add; // список необходимых аккаунтов, которые должны + // поставить подпись вида «posting» для одобрения предложенной транзакции + vector posting_approvals_to_remove; // список необходимых аккаунтов, чьи подписи + // вида «posting» должны быть удалены из списка подписей, которые одобрили + // транзакцию + vector key_approvals_to_add; // список подписей вида «public», которые необходимо + // получить для одобрения транзакции + vector key_approvals_to_remove; // список подписей вида «public», которые необходимо + // удалить из списка подписей, которые одобрили транзакцию +} +``` + + +Метод имеет следующий вид: +``` +signed_transaction approve_proposal( + std::string author, + std::string title, + approval_delta delta, + bool broadcast +); +``` +где: +`author` — автор, предложенной транзакции; +`title` — заголовок предложенной на подпись транзакции; +`delta` — список подписей, необходимых для одобрения транзакции. В JSON-формате список может быть пустым; +`broadcast` — ‘true’, если транзакция пересылается на демон; ‘false’, если выполняется базовый контроль с выдачей подписанной транзакции на консоль. +### Метод get_proposed_transactions +Метод обеспечивает получение информации о всех предложенных транзакция, применительно к одному и тому же аккаунту. Для получения информации об ограниченном количестве транзакций, необходимо задать начальный номер транзакции и пороговое значение `limit`. Метод имеет следующий вид: +``` +std::vector get_proposed_transactions( + std::string account, + uint32_t from, + uint32_t limit +); +``` +где: +`account` — аккаунт, информацию о предложенных транзакциях которого необходимо получить; +`from` — начальный номер транзакции; +`limit` — пороговое значение количества транзакций. +## Модифицированные методы в приложении cli_wallet +Следующие методы не являются новыми в приложении `cli_wallet` и уже использовались в предыдущих версиях блокчейна. Они изменены незначительно. +### Метод create_account +Метод обеспечивает создание аккаунта с автоматической генерацией ключей. Метод использует операцию `account_create` и возвращает созданный аккаунт. Доработка состоит из добавления параметра `fee`. Метод имеет следующий вид: +``` +annotated_signed_transaction create_account( + string creator, + string new_account_name, + string json_meta, + asset fee, + bool broadcast +); +``` +где: +`creator` — пользователь, создающий новый акаунт; +`new_account_name` — имя нового аккаунта; +`json_meta` — метаданные профиля нового аккаунта поля `json_metadata`; +`fee` — сумма комиссионных отчислений в криптовалюте Голос, снимаемая с баланса кошелька пользователя за создание нового аккаунта и зачисляемая на баланс кошелька созданного аккаунта в криптовалюте Сила Голоса. Эта сумма не может быть меньше значения `account_creation_fee`, устанавливаемого по результатам голосования делегатов; +`broadcast` — ‘true’, если транзакция пересылается на демон; ‘false’, если выполняется базовый контроль с выдачей подписанной транзакции на консоль. +### Метод create_account_with_keys +Метод обеспечивает создание аккаунта и требует явного задания ключей. Доработка состоит из добавления параметра `fee`. Метод имеет следующий вид: +``` +annotated_signed_transaction create_account_with_keys( + string creator, + string newname, + string json_meta, + asset fee, + public_key_type owner, + public_key_type active, + public_key_type posting, + public_key_type memo, + bool broadcast +) const; +``` +где: +`creator` — пользователь, который создает новый аккаунт; +`newname` — имя нового аккаунта; +`json_meta` — метаданные профиля нового аккаунта поля json_metadata; +`fee` — сумма комиссионных отчислений в криптовалюте Голос, снимаемая с баланса кошелька пользователя за создание нового аккаунта и зачисляемая на баланс кошелька созданного аккаунта в криптовалюте Сила Голоса. Эта сумма не может быть меньше значения `account_creation_fee`, устанавливаемого по результатам голосования делегатов; +`owner` — значение публичного ключа `owner` нового аккаунта; +`active` — значение публичного ключа `active` нового аккаунта; +`posting` — значение публичного ключа `posting` нового аккаунта; +`memo` — значение публичного ключа `memo` нового аккаунта; +`broadcast` — ‘true’, если транзакция пересылается на демон. +## Этапы создания транзакций произвольной формы +Процедура создания транзакций, подписания и передача их на демон в ручном режиме включает в себя следующие основные этапы: + + +**1. Создание конструктора транзакций.** На начальном этапе необходимо по API вызвать метод `begin_builder_transaction`. В результате вызова будет получено значение параметра `HANDLE` — идентификационный номер конструктора транзакций. По этому номеру будет вызываться созданный конструктор для формирования транзакций. + + +**2. Создание набора операций.** На этом этапе создается набор необходимых для выполнения в транзакции операций с помощью вызова `add_operation_to_builder_transaction $HANDLE [opID, {operation}]` по API. Полученный на начальном этапе конструктор позволяет создать произвольный набор операций в ручном режиме, а также изменять и редактировать их. Каждая из операций будет доступна по присвоенному ей идентификационному номеру `opID`, получаемого с помощью вызова `get_prototype_operation `. Конструктор обеспечивает построение нескольких транзакций параллельно. + + +**3. Формирование суммы необходимых комиссионных отчислений.** На этом этапе определяется сумма комиссионных отчислений за сформированный набор операций для каждой из транзакций. Пользователь может либо определить размер комиссионных отчислений за каждую операцию в отдельности, либо воспользоваться вызовом метода `set_fees_on_builder_transaction` для автоматического определения общей суммы комиссионных отчислений. +Метод `set_fees_on_builder_transaction` не дорабатывался и вызывается так же как и в предыдущей версии блокчейна. + + +**4. Подписание и передача на демон предложенной транзакции.** На заключительном этапе необходимо вызвать `sign_builder_transaction $HANDLE true`. Предложенная транзакция будет автоматически отправлена на подпись и затем передана на демон. + +**Note** +Из-за доработки `cli_wallet` изменилась выдача метода `get_ops_in_block`. В предыдущих версиях выдача этого метода имела следующий вид: +``` +vector get_ops_in_block( + uint32_t
_num, + bool only_virtual +); +``` +Вид измененной выдачи get_ops_in_block: +``` +vector get_ops_in_block( + uint32_t block_num, + bool only_virtual +); +``` +*** \ No newline at end of file diff --git a/golosd/HardFork/New_HardFork-HF18.md b/golosd/HardFork/New_HardFork-HF18.md new file mode 100644 index 00000000..fc4e50ac --- /dev/null +++ b/golosd/HardFork/New_HardFork-HF18.md @@ -0,0 +1,507 @@ +## Новости GOLOS•CORE + +***Golos·Core подготовил к выпуску новую версию блокчейна HardFork (HF•18) с обновленным API*** + +## Общее +В версии HF•18 реализованы новые функциональные и технические возможности, предоставляющие пользователям более удобное взаимодействие с системой, повышенную защиту от злоупотребления голосованием, а также повышающие быстродействие системы за счет более оптимального перераспределения методов между плагинами API. Обновления поддержаны большинством голосов делегатов. + +**Рекомендация пользователям** +Новые функциональные и технические возможности вносят изменения в правила экономической модели блокчейна. Поскольку измененные правила в обновленном блокчейне отменяют действия старых правил, всем пользователям системы следует обновить кодовую базу на своих серверах блокчейн до новой версии HF•18. + +## На этой странице: +* [Новые функциональные возможности в HF•18](#перечень-новых-функциональных-возможностей-в-hf18) +* [Новые технические возможности в HF•18](#перечень-новых-технических-возможностей-в-hf18) +* [Измененные и новые плагины API в HF•18](#измененные-и-новые-плагины-в-hf18): + * [private_message](#изменения-в-плагине-privatemessage) + * [witness_api](#новый-плагин-witnessapi) + * [account_history](#изменения-в-плагине-accounthistory) + * [operation_history](#новый-плагин-operationhistory) + * [social_network](#изменения-в-плагине-socialnetwork) + * [tags](#новый-плагин-tags) + * [follow](#изменения-в-плагине-follow) + * [database_api](#изменения-в-плагине-databaseapi) + *** + +## Перечень новых функциональных возможностей в HF•18 +* Блокирование различного вида злоупотреблений делегированием Силы Голоса. +* Обеспечение более гибкой ценовой политики на бирже за счет удаления старых данных и использования актуальных в определении курса и соотношения крипто-валют. +* Возможность пользователям вносить изменения в профиль с использованием ключа posting. +* Возможность пользователям предлагать транзакцию на подписание, состоящей из нескольких операций. +* Возможность пользователям вносить изменения в посты и комментарии независимо от срока их публикации и придавать им актуальность. + +## Перечень новых технических возможностей в HF•18 +* Повышение быстродействия системы за счет размещения в разных объектах полей с часто и редко используемыми данными. +* Повышение производительности API протокола за счет удаления неиспользуемых полей из методов плагинов, а также за счет перераспределения методов между плагинами для более эффективного их использования. +* Применение фильтрации тегов для настройки ленты в более удобной для пользователя форме. +* Возможность постраничного вывода личных сообщений на экран пользователя. + +## Измененные и новые плагины в HF•18 + +### Изменения в плагине private_message +В данный плагин добавлена возможность постраничного вывода списка личных сообщений. Изменены следующие методы (шрифтом bold выделены добавленные аргументы): + +* get_inbox(string to, time_point newest **, uint limit, uint offset**) +* get_outbox(string from, time_point newest **, uint limit, uint offset**) + +Метод `get_inbox` возвращает список входящих сообщений начиная с даты, заданной в newest. +Метод `get_outbox` возвращает список исходящих сообщений начиная с даты, заданной в newest. +`limit` — ограничивает количество сообщений (максимально допустимое значение — 100). +`offset` — номер сообщения, с которого выполняется операция (начиная с №). + + +### Новый плагин witness_api +Плагин `witness_api` образован перемещением части методов с часто используемыми полями из плагина `database_api`. В него вошли следующие методы: +* get_current_median_history_price +* get_feed_history +* get_miner_queue +* get_witness_schedule +* get_witnesses +* get_witness_by_account +* get_witnesses_by_vote +* get_witness_count +* lookup_witness_accounts +* get_active_witnesses // <- из выдаваемого результата удалены пустые строки + +Все методы перемещены `в witness_api` без изменений во входных параметрах и выдаваемых результатах. Исключение составляет метод `get_active_witnesses`, у которого из выдаваемого результата удалены пустые строки. + +### Изменения в плагине account_history +Плагин `account_history` дополнен следующим методом: +* get_account_history + +Метод перемещен из `database_api` без изменений во входных параметрах и выдаваемых результатах. + +### Новый плагин operation_history +Плагин `operation_history` образован перемещением методов из плагина `database_api`. Создание данного плагина позволяет отделить индексирование операций в блокчейне от истории пользователей. Пользователь может запрашивать и получать информацию об операциях в транзакциях (блоках) без ведения истории по аккаунтам. Это обеспечивает снижение нагрузки на сервер и на потребляемую память. + +Плагин `operation_history` дополнен следующими методами: +* get_ops_in_block +* get_transaction + +Методы перемещены из `database_api` без изменений во входных параметрах и выдаваемых результатах. + +### Изменения в плагине social_network +Часть методов из плагина `social_network` была перемещена во вновь созданный плагин `tags`. Перенос методов осуществлен для того, чтобы создание дополнительных индексов и поиск информации по ним проводились в отдельном плагине. В плагине `social_network` оставлены методы, обеспечивающие обращение к корневым элементам, а методы, обрабатывающие теги, перемещены в новый плагин `tags`. + +Введен опциональный параметр `vote_limit` для задания максимального количества проголосовавших в ответе пользователю. По умолчанию его значение принимается равным 10000. Например, количество комментариев к посту может достигать 1000 и более, что затрудняет их просмотр и поиск интересующей информации. Пользователь может с использованием тэга сформировать запрос на получение комментариев, выбранных (отсортированных) в соответствии с указанными в тэге признаками. Параметр `vote_limit` позволяет уменьшить размер отправляемого от сервера ответа. При этом в ответе добавляется дополнительное поле `active_votes_count`, информирующее об общем количестве проголосовавших (без необходимости получать полный список). + +Изменена результирующая структура: +```javascript +struct discussion { + "active_votes_count": uint, // <— Добавлено. Общее количество голосов для vote_limit + ... +} +``` +Изменения внесены в методы, возвращающие структуру `discussion` и массив `discussion`. В этот перечень вошли следующие методы: +* get_replies_by_last_update(string start_parent_author, string start_permlink, uint limit `[, uint vote_limit]`) +* get_content(string account, string permlink `[, uint vote_limit]`) +* get_content_replies(string author, string permlink `[, uint vote_limit]`) +* get_all_content_replies(string author, string permlink `[, uint vote_limit]`) +* get_content(string author, string permlink `[, uint32_t limit]`) +* get_active_votes(string account, string permlink `[, uint vote_limit]`) +* get_account_votes(string account `[, uint from, uint vote_limit]`) + +Фоном выделены параметры, которыми были дополнены методы. + +Следующие методы, дублирующие функции плагина `tag`, были удалены из плагина `social_network`: +* get_trending_categories +* get_active_categories +* get_recent_categories +* get_best_categories + +### Новый плагин tags +В плагин `tags` перемещены методы, выполняющие операции с тэгами (например, получение наиболее популярных тэгов; получение списка языков; получение тэгов, используемых автором). Это позволяет сэкономить размер файла разделяемой памяти тем пользователям, которые не используют данную функциональность. + +Методы, которые перемещены из `social_network` без изменений: +* get_trending_tags(string start, uint limit) +* get_languages() +* get_tags_used_by_author(string) +* get_discussions_by_payout(query) +* get_discussions_by_trending(query) +* get_discussions_by_created(query) +* get_discussions_by_active(query) +* get_discussions_by_cashout(query) +* get_discussions_by_votes(query) +* get_discussions_by_children(query) +* get_discussions_by_hot(query) +* get_discussions_by_feed(query) +* get_discussions_by_blog(query) +* get_discussions_by_comments(query) +* get_discussions_by_promoted(query) + + +В метод `get_discussions_by_author_before_date` добавлен новый параметр `vote_limit` (шрифтом bold выделен добавленный параметр): + +* get_discussions_by_author_before_date(string author, string start_permlink, datetime before_date, uint limit **[, uint vote_limit]**) +```javascript +struct discussion_query { + limit: uint, + select_tags: [string], + filter_tags: [string] + select_languages: [string], + filter_languages : [string], + truncate_body: uint, + vote_limit: uint, // <— Новый параметр, по умолчанию принимает значение 10000 + select_authors : [string], + start_author: string, + start_permlink: string, + parent_author: string, + parent_permlink: string +} +``` +Изменена результирующая структура метода: +```javascript +struct discussion { + “reputation”: uint, // <- Поле отсутствует, если выключен плагин follow + "active_votes_count": uint, // <- Добавлено. Общее количество голосов для vote_limit + ... +} +``` + +### Изменения в плагине follow +В плагине `follow` изменена структура метода `get_account_reputations` в соответствии со следующим представлением: + +* get_account_reputations(array accounts) + * Результат array + +### Изменения в плагине database_api +Плагин `database_api` дополнен новыми методами для выполнения новых операций. + +Новые методы: +* [get_proposed_transaction](#новый-метод-getproposedtransaction) +* [get_database_info](#новый-метод-getdatabaseinfo) +* [get_vesting_delegations](#новый-метод-getvestingdelegations) +* [get_expiring_vesting_delegations](#новый-метод-getexpiringvestingdelegations) + +Новые операции: +* [изменение или возврат делегирования Силы Голоса](#новая-операция-изменение-или-возврат-делегирования-силы-голоса) +* [создание аккаунта с делегированием Силы Голоса](#новая-операция-создание-аккаунта-с-делегированием-силы-голоса) +* [изменение json_metadata аккаунта](#новая-операция-изменение-jsonmetadata--аккаунта) +* [предложение на транзакцию](#новая-операция-предложение-на-транзакцию) +* [обновление предложенной транзакции](#новая-операция-обновление-предложенной-транзакции) +* [удаление предложенной транзакции](#новая-операция-удаление-предложенной-транзакции) +* [изменение параметров блокчейна](#новая-операция-изменение-параметров-блокчейна) + +#### Неизменяемая часть database_api +Часть методов из `database_api` перемещена в плагины `witness_api`, `account_history`, `operationt_history` и `follow`. Сохраненными в `database_api` без изменений остались следующие методы: +* get_block_header +* get_block +* set_block_applied_callback +* get_config +* get_dynamic_global_properties +* get_chain_properties +* get_hardfork_version +* get_next_scheduled_hardfork +* get_account_count +* get_owner_history +* get_recovery_request +* get_escrow +* get_withdraw_routes +* get_account_bandwidth +* get_savings_withdraw_from +* get_savings_withdraw_to +* get_conversion_requests +* get_transaction_hex +* get_required_signatures +* get_potential_signatures +* verify_authority +* verify_account_authority +* lookup_account_names +* lookup_accounts + + +### Изменения в методах database_api +Поля `average_bandwidth` и `average_market_bandwidth` были удалены из плагина `database_api` как неиспользуемые. Заменяемые их в выполнении операций поля `new_average_bandwidth`, `new_average_market_bandwidth` были переименованы в первоначальные их имена `average_bandwidth` и `average_market_bandwidth` соответственно. + + +Поле `lifetime_bandwidth` было удалено и заменено на вновь созданное одноименное поле `lifetime_bandwidth`, зависящее от новых значений, а также поле `lifetime_market_bandwidth` для использования в маркетинговых операциях. + + +Из описания типа `bandwidth_type`, используемого в вызове метода `get_account_bandwidth`, удалены поля `old_forum` и `old_market`. + + +В поле `lifetime_bandwidth` хранится суммарное значение `bandwidth`, используемое аккаунтом за все время его работы. В поле `average_bandwidth` хранится среднее значение `bandwidth`, по которому определяется порог чрезмерной активности аккаунта. + +#### Внесены изменения в выдаваемый результат следующего метода: +* get_accounts +```javascript +struct account { + reputation, // <- Поле отсутствует, если выключен плагин follow + transfer_history, // <- Удалено + market_history, // <- Удалено + post_history, // <- Удалено + vote_history, // <- Удалено + other_history, // <- Удалено + tags_usage, // <- Удалено + guest_bloggers, // <- Удалено + blog_category, // <- Удалено + ... +} +``` +Удаление полей из структуры account обусловлено тем, что ранее эти поля никогда не использовались. + + +#### Новый метод get_proposed_transaction +Этот метод обрабатывает запрос на выдачу списка предложенных для подписания транзакций, поступивший от какого-либо аккаунта. Метод возвращает массив транзакций, в который входят транзакции, созданные непосредственно данным аккаунтом, а также транзакции, которые ему необходимо подписать. +* get_proposed_transaction(account: string) +```javascript +struct proposal_object { + author: string, + title: string, + memo: string, + expiration_time: datetime, + review_period_time: datetime, // может отсутствовать + proposed_operations: [ operation ], + required_active_approvals: [ string ], + available_active_approvals: [ string ], + required_owner_approvals: [ string ], + available_owner_approvals: [ string ], + required_posting_approvals: [ string ], + available_posting_approvals: [ string ], + available_key_approvals: [ string ] +}; +``` + + +#### Новый метод get_database_info +Этот метод возвращает информацию о текущем статусе разделяемой памяти, в том числе: общий объем разделяемой памяти, размер свободного и зарезервированного пространства для определенных нужд, а также список индексов, хранящихся в разделяемой памяти (название индекса, количество записей). +* get_database_info() +``` +struct database_info { + total_size: uint, + free_size: uint, + reserved_size: uint, + used_size: uint + + index_list: [ + { + name: string, + record_count: uint + }, + ] +}; +``` + + +#### Новый метод get_vesting_delegations +Этот метод возвращает массив значений с описанием операции делегирования (далее — блок делегирования) аккаунта (делегированный другим аккаунтам или же полученный от других аккаунтов). +* get_vesting_delegations +``` +get_vesting_delegations( + string account, + string from, uint32_t limit = 100, + delegations type = delegated +) +``` +`account` — аккаунт, по запросу от которого выдается блок делегирования. Отправитель*/получатель определяется аргументом `type`. +`from` — начальный аккаунт, парный в операции делегирования. Получатель/отправитель - задается аргументом `type` (для пагинации). +`limit` — количество возвращаемых элементов (для пагинации). По умолчанию принимается равным 100. Максимальное значение равно 1000. +`type` — тип запрашиваемого блока делегирования: "delegated" (делегированный), "received" (полученный). По умолчанию принимает значение "delegated". + +Пример возвращаемого блока делегирования: `массив vesting_delegation_api_object [{id: 0, delegator: "zzz", delegatee: "zxcat", vesting_shares: "90.000000 GESTS", min_delegation_time: "2018-04-25T21:48:15"}]`. + + +#### Новый метод get_expiring_vesting_delegations +Этот метод используется для получения списка возвращаемых (отозванных и «замороженных») делегированных средств аккаунта. Метод возвращает результат в виде массива значений с описанием операции возврата делегированных средств (далее — блок отозванного делегирования) + +* get_expiring_vesting_delegations +``` +get_expiring_vesting_delegations( + string account, + time_point_sec from, + uint32_t limit = 100) +``` +`account` — аккаунт, возвращающий делегированные средства. +`from` — начальное время возврата делегированных средств (для пагинации). +`limit` — количество возвращаемых элементов (для пагинации). По умолчанию принимается равным 100. Максимальное значение равно 1000. + +Пример возвращаемого модулем блока отозванного делегирования: +`массив vesting_delegation_expiration_api_object, [{id: 0, delegator: "zxcat", vesting_shares: "123.000000 GESTS", expiration: "2018-05-25T11:18:45"}]`. + + +#### Новая операция: изменение или возврат делегирования Силы Голоса +Эта операция позволяет изменять количество делегированного, а также осуществлять возврат делегированного в полном объеме. Для выполнения этих операций необходима подпись ключом `active`. Операции выполняются с использованием следующей процедуры: +```javascript +delegate_vesting_shares +{ + delegator: string, // делегирующий аккаунт + delegatee: string, // аккаунт-получатель + vesting_shares: asset // новое количество делегируемой Силы Голоса +} +``` +Для выполнения этой опирации требуется подпись ключом `active`. + +Для изменения количества делегирования Силы Голоса в поле `vesting_shares` следует задать новое значение. Для полного возврата делегированной части Силы Голоса в поле `vesting_shares` следует задать значение вида “0.000000 GESTS”. При изменении значения в сторону уменьшения делегированная Сила Голоса сразу снимется с аккаунта-получателя и переходит в «замороженное» состояние сроком на семь дней (в случае создания аккаунта с делегированием этот период определяется параметром `create_account_delegation_time`). + +Минимальное количество Силы Голоса, необходимое для делегирования, определяется по результатам голосования делегатов. + + + +#### Новая операция: создание аккаунта с делегированием Силы Голоса +Операция выполняется с использованием следующей процедуры: +```javascript +account_create_with_delegation +{ + fee: asset, // комиссия, в GOLOS + delegation: asset, // делегируемая доля, в GESTS + creator: string, + new_account_name: string, + owner: authority, + active: authority, + posting, authority, + memo_key: string, + json_metadata: string, + extensions: extensions_type // Не используется, исходное значение — пусто +} +``` +Для выполнения этой опирации требуется подпись ключом `active`. + + +Для создания аккаунта с делегированием необходимо, чтобы выполнялись следующие два условия: +``` + 1. fee ≥ create_account_min_golos_fee + 2. (delegation) ≥ (create_account_min_delegation) +``` +где +`fee` — размер комиссионных отчислений; +`create_account_min_golos_fee` — минимальный размер комиссионных отчислений в криптовалюте Голос, требуемых на создание аккаунта с делегированием; +`delegation` — делегированная часть Силы Голоса; +`create_account_min_delegation` — минимальное количество Силы Голоса, необходимое для создания аккаунта с делегированием. + + +При создании аккаунта с делегированием бо́льшую часть комиссии можно оплатить с «заморозкой» на период, определяемый параметром `create_account_delegation_time`. Делегированная Сила Голоса может быть отозвана в любой момент (например, в случае злоупотребления полученной делегированной частью новым аккаунтом). При этом делегированная Сила Голоса будет снята с нового аккаунта сразу, а на делегирующий аккаунт будет возвращена по истечении срока «заморозки». Время «заморозки» является параметром, определяемым по результатам голосования. Его значение выбирается по медиане из списка всех значений, полученных от делегатов с помощью операции `chain_properties_update_operation`. + + +#### Новая операция: изменение json_metadata аккаунта +Пользователю предоставляется возможность изменять метаданные своего профиля без использования ключа `active`. Поля профиля хранятся в `json_metadata`. Для изменения любого поля профиля требовалась подпись только ключом `active`, что не всегда было приемлемым. + +Было принято решение разделить поля на две группы. В состав первой группы вошли поля с наиболее значимыми данными профиля (ключи: `posting`, `active`, `owner` и `memo`), а в другую — с менее значимыми, но часто используемыми (аватар, пол, местонахождение и пр.). Процедура изменения полей первой группы сохранена и требует подписи только ключом `active`. В версии HF•18 вносить изменения в поля второй группы стало возможным с использованием ключа `posting` для подписи. + +Операция выполняется с использованием следующей процедуры: +```javascript +account_metadata +{ + account: string, // изменяемый аккаунт + json_metadata: string // новое значение json_metadata +} +``` +Для выполнения этой опирации требуется подпись ключом `posting`. + + +#### Новая операция: предложение на транзакцию +Пользователю предоставляется возможность предлагать транзакцию на блокчейне с несколькими отдельными операциями, требующих одобрения от пользователей на их выполнение. + +Операция выполняется с использованием следующей процедуры: +```javascript +proposal_create_operation +{ + author: string, // автор предлагаемой транзакции + title: string, // заголовок предложенной транзакции. + memo: string, // примечание + proposed_operations: [ operation ], // список операций в предлагаемой транзакции + expiration_time: datetime, // максимальное время, отведенное на транзакцию + review_period_time: datetime, // время на принятие решения участников транзакции. Опциональный параметр + extensions: extensions_type // расширение, по аналогии с другими операциями. Исходное значение — пусто +} +``` +Для выполнения этой опирации требуется подпись ключом `active`. + + +Создаваемая транзакция должна быть уникальной по сочетанию полей author-title. По этой паре author-title идентифицируется транзакция в случае внесения в нее изменений или ее удаления. + +В поле `proposed_operations` задается список операций для выполнения их в транзакции (например, `{["delete_comment_operation":{"autor":"jim", "permlink":"hello"}}]`). На каждую операцию из этого списка должна быть получена подпись автора, которому она предназначена. Право проставления подписи на выполнение любой операции из списка имеет также каждый из участников транзакции. Например, операция публикации поста назначается одному автору, а операция перечисления вознаграждения за нее — другому. В случае несогласия другого автора с выполнением второй операции он может удалить подпись на выполнение первой операции предложенной транзакции. + +В поле `review_period_time` проставляется время, отводимое на принятие решений участников транзакции. Этот период должен быть меньше максимального времени из поля `expiration_time`, которое отводится на транзакцию. По истечении этого периода подписи в транзакции могут быть только удаляться. + +Если параметр `review_period_time` не задан, то транзакция будет сразу выполняться после сбора всех необходимых подписей. + + +#### Новая операция: обновление предложенной транзакции +Автору, а также участникам транзакции, предоставляется возможность менять свое решение и обновлять подписи до истечения времени, отводимого на транзакцию. + +Если транзакция не получает одобрения на выполнение какой-либо из операций, эта транзакция не отменяется и ее актуальность будет сохраняться до отведенного на ее выполнение времени. После получения всех необходимых подписей транзакция сразу будет выполняться и все последующие обновления будут считаться недействительными. + +Операция выполняется с использованием следующей процедуры: +```javascript +proposal_update_operation +{ + author: string, // автор предложенной транзакции + title: string, // заголовок предложенной транзакции. + active_approvals_to_add: [string], // список аккаунтов для подписи. Транзакция должна быть + // подписана ключом active + active_approvals_to_remove: [string], // список аккаунтов для удаления подписи из предложенной + // транзакции. Транзакция должна быть подписана ключом active + owner_approvals_to_add: [string], // список аккаунтов для подписи на операции в предложенной + // транзакции. Транзакция должна быть подписана ключом owner + owner_approvals_to_remove: [string], // список аккаунтов для удаления подписи из предложенной + //транзакции. Транзакция должна быть подписана ключом owner + posting_approvals_to_add: [string], // список аккаунтов для подписи на операции в предложенной + // транзакции. Транзакция должна быть подписана ключом posting + posting_approvals_to_remove: [string], // список аккаунтов для удаления подписи из предложенной + // транзакцию. Транзакция должна быть подписана ключом posting + key_approvals_to_add: [string], // список ключей public для проставления подписей в предложенной + // транзакции + key_approvals_to_remove: [string], // список ключей public для удаления подписей из предложенной + // транзакции + extensions: extensions_type // расширение, по аналогии с другими операциями. Исходное значение — пусто +} +``` +Подпись зависит от списка операций, предлагаемых на подписание. + + +По этой паре author-title идентифицируется транзакция в случае внесения в нее изменений или ее удаления. +Поля, в которые записывается псевдоним для подписи транзакции, выбираются в зависимости от типа операций в предложенной транзакции. + + +#### Новая операция: удаление предложенной транзакции +В случае отказа кого-либо из участников транзакции в выполнении операции он может сформировать запрос на удаление предложенной транзакции. Идентификация транзакции осуществляется по паре author-title. + +Операция выполняется с использованием следующей процедуры: +```javascript +proposal_delete_operation +{ + author: string, // автор предложенной транзакции + title: string, // заголовок предложенной транзакции + requester: string, // псевдоним запросившего удаление транзакции или автор предложенной транзакции + extensions: extensions_type // расширение, по аналогии с другими операциями. Исходное значение — пусто +} +``` +Для выполнения этой опирации требуется подпись ключом `active`. + +Удалить предложенную транзакцию может как ее автор, так и любой участник, от которого требуется подпись. Если хотя бы один из участников запрашивает удаление транзакции, то, независимо от подписей остальных участников, данная транзакция будет удалена. + + +#### Новая операция: изменение параметров блокчейна +Предыдущие версии блокчейна обеспечивают поддержку операции `witness_update`, которая позволяет делегатам Голоса изменять по результатам голосования значения следующих параметров: +* `account_creation_fee` — размер комиссионных отчислений, требуемых на создание аккаунта без делегирования; +* `maximum_block_size` — максимальный размер блока блокчейна; +* `sbd_interest_rate` — процент, начисляемый на SBD. + +Ввиду того, что `witness_update` не позволяет расширить перечень параметров, значения которых определяются голосованием, в версии HF•18 реализована новая операция `chain_properties_update`, которая поддерживает более расширенный перечень таких параметров и позволяет наращивать его в будущем. В версии HF•18 операция `chain_properties_update` поддерживает следующий перечень параметров, значения которых определяются голосованием: +* `account_creation_fee` — размер комиссионных отчислений, требуемых на создание аккаунта без делегирования; +* `maximum_block_size` — максимальный размер блока блокчейна; +* `sbd_interest_rate` — процент, начисляемый на SBD; +* `create_account_min_golos_fee` — минимальный размер комиссионных отчислений в криптовалюте Голос, требуемых на создание аккаунта с делегированием (по умолчанию принимает значение "1.000 GOLOS", см. операцию [account_create_with_delegation](#новая-операция-создание-аккаунта-с-делегированием-силы-голоса)); +* `create_account_min_delegation` — устанавливает минимально возможное количество Силы Голоса при создании аккаунта с делегированием (по умолчанию принимает значение "5.000 GOLOS", см. операцию [account_create_with_delegation](#новая-операция-создание-аккаунта-с-делегированием-силы-голоса)); +* `create_account_delegation_time` — устанавливает минимально возможное время (в секундах) «заморозки» делегированной Силы Голоса при создании аккаунта с делегированием (по умолчанию принимает значение за период в 30 дней, см. операцию [account_create_with_delegation](#новая-операция-создание-аккаунта-с-делегированием-силы-голоса)); +* `min_delegation` — устанавливает минимально возможное количество Силы Голоса для делегирования на аккаунт (по умолчанию принимает значение "10.000 GOLOS", см. операцию [delegate_vesting_shares](#новая-операция-изменение-или-возврат-делегирования-силы-голоса)). + +Операция выполняется с использованием следующей процедуры: +```javascript +chain_properties_update_operation +{ + owner: string, // автор изменения + props: { + account_creation_fee: asset, + maximum_block_size: uint, + sbd_interest_rate: uint, + create_account_min_golos_fee: uint, + create_account_min_delegation: uint, + create_account_delegation_time: uint, + min_delegation: uint + } +} +``` +Для выполнения этой опирации требуется подпись ключом `active`. + +*** + diff --git a/golosd/HardFork/RC2-HF18.md b/golosd/HardFork/RC2-HF18.md new file mode 100644 index 00000000..47a63af4 --- /dev/null +++ b/golosd/HardFork/RC2-HF18.md @@ -0,0 +1,54 @@ +# GOLOS·CORE + +> В процессе эксплуатации релиз-кандидата HardFork HF·18 были выявлены и устранены недостатки и ошибки в программном коде продукта. + +> **На этой странице:** +> Выявленные и устраненные недостатки и ошибки в работе релиз-кандидата HardFork HF•18 + + + +*** + +### Устраненная ошибка в логике обновления тегов +После снятия ограничений на редактирование постов и комментариев появилась возможность манипулирования популярностью тегов. Недостаток проявлялся в том, что теги тех постов, по которым уже были завершены выплаты, можно было далее продвигать по популярности. + +Устранение ошибки в логике работы программы в части обновления тегов обеспечило устранение данного недостатка. + +### Устраненная ошибка в выдаваемом результате метода get_discussions_by_promoted +Метод `get_discussions_by_promoted` выдавал результат с пустым полем, в котором должен был список спонсируемых постов. + +Устранение ошибки в проверке условия включения поста в список спонсируемых обеспечило выдачу правильного результата метода `get_discussions_by_promoted`. + +### Устраненный недостаток в операции делегирования, причиной которого являлся устаревший метод old_update_account_bandwidth +В операции делегирования часть функций выполнял метод `old_update_account_bandwidth`. Недостаток в работе этого метода заключался в том, что он не учитывал делегированную Силу Голоса и во многом дублировал логику работы метода `update_account_bandwith`, создавая при этом дополнительную нагрузку на серверы. В отличие от `update_account_bandwith`, который проверяет значение `bandwidth` пользователя только во время подписания транзакции, метод `old_update_account_bandwidth` выполнял такую проверку для каждой транзакции уже подписанных блоков. + +Для устранения этого недостатка был удален устаревший метод `old_update_account_bandwidth` и внесены изменения в методы, возвращающие поле `account`. В их результатах поля вида `new_XXX_bandwidth` преобразованы в поля вида `XXX_bandwidth`. Также их результаты дополнены полем `lifetime_market_bandwidth`. Кроме этого `метод get_account_bandwidth` прекратил возвращать результат, если параметр `bandwidthType` принимает одно из двух значений — “old_market” или “old_forum”. + +### Устраненная причина замедления в работе системы, вызванная загруженностью серверов +Отсутствие ограничения на количество вложенных proposal транзакций позволяло создавать усложненную их структуру, содержащую избыточное количество вложений. Это вызывало избыточную нагрузку на работу серверов, блокированию их доступа и, следовательно, к замедлению работы системы. + +Для устранения этого недостатка добавлено ограничение на количество вложенностей в транзакциях, которое должно быть не более двух. + +### Добавленный в cli_wallet метод update_chain_properties +Для упрощения процесса голосования в `cli_wallet` добавлен метод `update_chain_properties`, избавивший делегатов от необходимости менять ключ подписи блоков при выставлении параметров, определяемых голосованием. + +### Ограничение в использовании метода witness_update_operation +В версии HF·18 обновление параметров, определяемых голосованием, выполняется методом `chain_properties_update_operation`. Метод `witness_update_operation` в версии HF·18 прекращает выполнять данную операцию и будет использоваться только для изменения URL и ключей делегатов. + +Ограничение вызвано тем, что метод `chain_properties_update_operation` не позволяет в перспективе расширять список определяемых голосованием параметров. + +### Измененное значение мультипликатора, задаваемое по умолчанию +Значение по умолчанию для мультипликатора `GOLOS_CREATE_ACCOUNT_WITH_GOLOS_MODIFIER` уменьшено с 30 до 1. Это значение может также устанавливаться голосованием через `chain_properties_update_operation`. В случае отсутствия голосования его значение принимается за единицу. + +Это изменение введено для того, чтобы избежать скачкообразного изменения стоимости создания аккаунта с выпуском версии HF·18. + +**Примечание:** +Решением делегатов эта правка была отменена. Вместо мультипликаторов используются абсолютные значения параметров, определяемые в ходе голосования делегатов. + + +### Добавленный экспериментальный модуль Mongo +В основную ветвь разработки добавлен экспериментальный модуль `Mongo` с целью ускорения его разработки. На настоящем этапе разработки модуль не обеспечивает загрузку всех данных из блокчейна в `Mongo`. + +*** + + diff --git a/golosd/howto/vichislenie-kuratorskih-voznagrazhdenii.md b/golosd/howto/vichislenie-kuratorskih-voznagrazhdenii.md new file mode 100644 index 00000000..e6bcee02 --- /dev/null +++ b/golosd/howto/vichislenie-kuratorskih-voznagrazhdenii.md @@ -0,0 +1,125 @@ +# Как вычислять реальные кураторские до закрытия окна выплат + +Автор [@**vvk**](https://golos.io/@vvk) + +Рассмотрим, как прогнозировать кураторские вознаграждения до закрытия поста. + +# Общие сведения + +В механику заложена отдача 25% от полной выплаты поста кураторам, однако кураторы, голосующие в первые 30 минут, отдают часть своей кураторской доли автору \(штрафуются\) по линейной зависимости. 30 минут - это 100%, соответственно голосующий на 15-й минуте отдаёт 50% своего кураторского вознаграждения. + +# Как получить реальный кураторский процент + +У нас есть следующие параметры: + +* `weight` + - вес куратора, находится в + `active_votes` + , с учётом штрафа +* `total_vote_weight` + - сумма всех весов кураторов без учёта штрафа + +Таким образом, мы можем вычислить реальный кураторский процент так: + +``` +sum_weight = int() + +for vote in active_votes: + sum_weight += int(vote['weight']) + +curators_share = sum_weight / int(post['total_vote_weight']) * 0.25 + +``` + +# Механика + +Дальше рассмотрим, а как вообще вычисляется weight каждого куратора. + +В модели у нас будет: + +* 5 апов с одинаковыми условными 50 rshares \( + `votes` + \). +* `s` + - это CONTENT\_CONSTANT, в модели она маленькая для наглядности +* 10000 - это + `std::numeric_limits` + `<` + `uint64_t` + `>` + `::max()` + , опять же маленькое значение для наглядности + +``` +# modeling weight + +votes = [50, 50, 50, 50, 50] +#votes = [10, 50, 100, 150, 100, 150, 50, 100000, 200] + +s = 100 +num_votes = 10 + +sum_vote_rshares = int() + +for rshares in votes: + old_weight = (10000 * sum_vote_rshares) / (2 * s + sum_vote_rshares) + sum_vote_rshares += rshares + new_weight = (10000 * sum_vote_rshares) / (2 * s + sum_vote_rshares) + weight = new_weight - old_weight + print('vote rshares: {:.0f}: old: {:.0f}, new: {:.0f}, weight: {:.0f}'.format(rshares, old_weight, new_weight, weight)) + +``` + +Выполнение этого кода даст такую картину: + +``` +vote rshares: 50: old: 0, new: 2000, weight: 2000 +vote rshares: 50: old: 2000, new: 3333, weight: 1333 +vote rshares: 50: old: 3333, new: 4286, weight: 952 +vote rshares: 50: old: 4286, new: 5000, weight: 714 +vote rshares: 50: old: 5000, new: 5556, weight: 556 + +``` + +Видим, что хотя все апы одинаковы, вес каждого последующего меньше предыдущего. Вот так и работают вычисления в golosd, однако там ещё после вычисления`weight`накладывается штраф, если ап сделан в первые 30 минут. Т.е. например для апа на 15-й минуте его вес уменьшается так:`weight = weight * 0.5` + +Зная данную механику, теперь можно вычислять кураторские ещё до закрытия поста: + +``` + +active_votes = sorted(post['active_votes'], key=lambda k: datetime.strptime(k['time'], '%Y-%m-%dT%H:%M:%S')) + +for vote in active_votes: + reward = pending_payout * 0.25 * investor['weight'] / int(post['total_vote_weight']) + time_passed = datetime.strptime(vote['time'], '%Y-%m-%dT%H:%M:%S') - post['created'] + print('real weight percent: {:.2%}, reward: {:.3f} GBG, voter: {}, time: {}, weight: {:.0f}'.format( + real_share, reward, vote['voter'], time_passed, float(vote['weight'])/100000000000000)) + +``` + +Пример вывода: + +``` +real weight percent: 0.00%, reward: 0.000 GBG, voter: zaebot, time: 0:00:03, weight: 0 +real weight percent: 0.00%, reward: 0.000 GBG, voter: rastabandito, time: 0:00:03, weight: 0 +real weight percent: 0.00%, reward: 0.265 GBG, voter: nett, time: 0:03:03, weight: 336 +real weight percent: 0.00%, reward: 2.148 GBG, voter: idestus, time: 0:10:03, weight: 2721 +real weight percent: 0.00%, reward: 4.378 GBG, voter: cyros, time: 0:10:36, weight: 5546 +real weight percent: 0.00%, reward: 0.017 GBG, voter: marusya, time: 0:10:39, weight: 21 +real weight percent: 0.00%, reward: 2.120 GBG, voter: sveokla, time: 0:20:03, weight: 2685 +real weight percent: 0.00%, reward: 0.960 GBG, voter: graff0x, time: 0:21:03, weight: 1216 +real weight percent: 0.00%, reward: 0.162 GBG, voter: grkh, time: 0:23:03, weight: 205 +real weight percent: 0.00%, reward: 0.004 GBG, voter: usias60, time: 0:25:03, weight: 4 +real weight percent: 0.00%, reward: 35.749 GBG, voter: spinner, time: 0:26:21, weight: 45282 +real weight percent: 0.00%, reward: 21.262 GBG, voter: park.bom, time: 0:27:03, weight: 26932 +real weight percent: 0.00%, reward: 1.664 GBG, voter: svamiva, time: 0:27:33, weight: 2108 +real weight percent: 0.00%, reward: 0.173 GBG, voter: yakubovruslan, time: 0:29:03, weight: 219 + +``` + +Здесь у нас GBG, хотя кураторские идут в СГ, кому надо легко вычислят. + + + +[Источник](https://golos.io/goldvoice/@vvk/curation-rewards) + diff --git a/hardfork-dokumentatsiya.md b/hardfork-dokumentatsiya.md new file mode 100644 index 00000000..da720edf --- /dev/null +++ b/hardfork-dokumentatsiya.md @@ -0,0 +1,7 @@ +# Документация по HardFork + +* [HF18: Изменения в API](/golosd/HardFork/New_HardFork-HF18.md) +* [HF18: Релиз-кандидат RC2](/golosd/HardFork/RC2-HF18.md) +* [HF18: Новые возможности блокчейна](/golosd/HardFork/HF18_ReleaseNotice-rus.md) +* [HF18: Изменения в cli_wallet](/golosd/HardFork/HF18_cli_wallet_changes-rus.md) +* [HF18: Руководство по установке](/golosd/HardFork/HF18_BuildInstruction-rus.md) diff --git a/instruktsii.md b/instruktsii.md index 08c23dc7..bb6622ea 100644 --- a/instruktsii.md +++ b/instruktsii.md @@ -2,8 +2,8 @@ > Расчет вознаграждений за разные виды деятельности на Голосе -* [Постинг \(написание статей\)](2-rewards/posting_rewards.md) -* [Курирование \(голосование за контент\)](2-rewards/curation_rewards.md) +* [Постинг \(публикация\)](2-rewards/posting_rewards.md) +* [Курирование \(лайки\)](2-rewards/curation_rewards.md) * [Инвестирование](2-rewards/commitment_rewards.md) * [Сбережения](2-rewards/savings_rewards.md) * [Делегатство](2-rewards/delegatstvo.md) diff --git a/kak-bistro-otblagodarit-avtorov-ponravivshihsya-postov-i-otvetov.md b/kak-bistro-otblagodarit-avtorov-ponravivshihsya-postov-i-otvetov.md index 64a2e822..45ab27c8 100644 --- a/kak-bistro-otblagodarit-avtorov-ponravivshihsya-postov-i-otvetov.md +++ b/kak-bistro-otblagodarit-avtorov-ponravivshihsya-postov-i-otvetov.md @@ -1,14 +1,18 @@ -В конце декабря 2017 года на платформе [golos.io](https://golos.io) появилась возможность быстро отблагодарить автора понравившегося вам поста или ответа. Так называемые донаты, пожертвования. -Кнопка "**Отблагодарить**" находится под всеми постами в нижней правой части, и если зайти в любой ответ на свои комментарии. Смотрите скриншоты: - -![knop.png](https://i.imgur.com/DLjKEgk.png) - -![otvet.png](https://i.imgur.com/z3pKT5b.png) - -При нажатии на эту кнопку появляется всплывающее окно, аналогичное тому, которое используется при переводах в кошельке. Единственное отличие лишь в том, что тут сразу заполнено поле с ником получателя. Вам нужно лишь ввести нужную сумму перевода в поле "**Количество**" и затем нажать на кнопку "**Передать**". Также, можно выбрать, что именно хотите передать - GBG или Golos токены. Скриншот: - -![okno.png](https://i.imgur.com/DT3UrC1.png) - -Затем, нужно лишь подтвердить свой перевод, введя свой пароль или приватный активный ключ (WIF) от Голоса. - -Вот таким быстрым способом можно отблагодарить автора понравившегося вам поста или ответа. Раньше, чтобы сделать тоже самое, приходилось заходить в свой кошелёк и вводить ник автора вручную, либо копировать ник из ссылки, что не очень удобно. +В конце декабря 2017 года на платформе [golos.io](https://golos.io) появилась возможность быстро отблагодарить автора понравившегося вам поста или ответа. Так называемые донаты, пожертвования. +Кнопка "**Отблагодарить**" находится под всеми постами в нижней правой части, и если зайти в любой ответ на свои комментарии. Смотрите скриншоты: + +![knop.png](https://i.imgur.com/DLjKEgk.png) + +![otvet.png](https://i.imgur.com/z3pKT5b.png) + +При нажатии на эту кнопку появляется всплывающее окно, аналогичное тому, которое используется при переводах в кошельке. Единственное отличие лишь в том, что тут сразу заполнено поле с ником получателя. Вам нужно лишь ввести нужную сумму перевода в поле "**Количество**" и затем нажать на кнопку "**Передать**". + +**ОБРАТИТЕ ВНИМАНИЕ:** Если вы нажмете на строчку "Баланс: X ХХХ", тогда в строке "количество" будет указана вся сумма на вашем балансе и есть риск перевести все свои сбережения другому пользователю. + +Также, можно выбрать, что именно хотите передать - GBG или Golos токены. Скриншот: + +![okno.png](https://i.imgur.com/DT3UrC1.png) + +Затем, нужно лишь подтвердить свой перевод, введя свой пароль или приватный активный ключ (WIF) от Голоса. + +Вот таким быстрым способом можно отблагодарить автора понравившегося вам поста или ответа. Раньше, чтобы сделать тоже самое, приходилось заходить в свой кошелёк и вводить ник автора вручную, либо копировать ник из ссылки, что не очень удобно. diff --git a/kak-pozhalovatsya-na-polzovatelya-ili-ego-posti.md b/kak-pozhalovatsya-na-polzovatelya-ili-ego-posti.md index ad9be1ff..7ccf7411 100644 --- a/kak-pozhalovatsya-na-polzovatelya-ili-ego-posti.md +++ b/kak-pozhalovatsya-na-polzovatelya-ili-ego-posti.md @@ -1,7 +1,7 @@ Иногда на медиа платформе Голос возникают конфликтные ситуации между разными участниками, которые проявляются в множественных оскорблениях, нецензурных выражениях, намеренных преследованиях и т.п. Мы хотим, чтобы на Golos.io царила атмосфера открытости, разнообразия, безопасности и уюта. -### Для устранения конфликтных ситуаций на Golos.io мы создали Систему жалоб. +#### Для устранения конфликтных ситуаций на Golos.io мы создали Систему жалоб. Для того, чтобы воспользоваться Системой жалоб напишите на почту abuse@golos.io письмо с описанием вашей жалобы на какой-либо пост/комментарий и ссылкой на него. diff --git a/kontakti.md b/kontakti.md index 1add9cef..ba2f5a19 100644 --- a/kontakti.md +++ b/kontakti.md @@ -13,18 +13,14 @@ - Шеф-редактор вики [@vadbars](https://golos.io/@vadbars) #### Поддержка golos.io -- [Форма обратной связи](https://golos.io/submit.html?type=submit_feedback) на golos.io -- E-mail Службы поддержки: [support@golos.io](mailto:support@golos.io) -- Сообщения об ошибках и предложения [GitHub](https://github.com/GolosChain/tolstoy/issues) +- Разработка Golos.io [канал Telegram](https://t.me/golos_developers) +- Служба поддержки [канал Telegram](https://t.me/golos_support) +- Служба поддержки [support@golos.io](mailto:support@golos.io) +- Сообщения об ошибках и предложения [GitHub](https://github.com/GolosChain/tolstoy/issues) +- Комьюнити-менеджер [community@golos.io](mailto:community@golos.io) ## Другие каналы -[Официальный чат](https://chat.golos.io/home) - -[Канал Telegram](https://t.me/golos_io) - -[Рокет-чат](https://chat.golos.io/) - [Голосовой чат на Discord](https://discordapp.com/channels/253590962381520897/253590962381520897) [Голос во ВКонтакте](https://vk.com/golos_io) diff --git a/pervie-shagi.md b/pervie-shagi.md index 28a06c21..84d7548f 100644 --- a/pervie-shagi.md +++ b/pervie-shagi.md @@ -1,15 +1,15 @@ -### 🚀 Первые шаги +### 🚀 Первые шаги > Основные знания для начинающих. Имейте в виду, что статьи отражают позицию их авторов и не являются безусловной рекомендацией. Описание не всегда может соответствовать последним изменениям в интерфейсе golos.io -* [Регистрация](/1-introduction/registratsiya.html) +* [Регистрация](/1-introduction/registratsiya.md) * [Заполнение профиля](/1-introduction/zapolnenie-profilya.md) * [Интерфейс личного блога](/1-introduction/interfeis-lichnogo-bloga.md) * [Интерфейс платформы golos.io](/1-introduction/interfeis-golosio.md) * [Публикация в блоге](/1-introduction/posting.html) -* [Кошелек, ключи, выплаты](/1-introduction/koshelek-klyuchi-viplati.html) +* [Кошелек, ключи, выплаты](/1-introduction/koshelek-klyuchi-viplati.md) diff --git a/poleznoe.md b/poleznoe.md index 088e0a66..3c081046 100644 --- a/poleznoe.md +++ b/poleznoe.md @@ -2,10 +2,9 @@ > Различная полезная информация -* [Полезные ссылки](https://wiki.golos.io/useful_links.html) -* [Участие в вики Голоса](https://wiki.golos.io/uchastie-v-viki-golosa.html) -* [Контакты](https://wiki.golos.io/kontakti.html) -* [История](https://wiki.golos.io/istoriya.html) +* [Участие в вики Голоса](/uchastie-v-viki-golosa.md) +* [Контакты](/kontakti.md) +* [История](/istoriya.md) # 💯 📉 📈🔪 💔⚖️🎯⚙️📘 🚀📌💰✈💳✔💻💡📷👍 diff --git a/razrabotchikam.md b/razrabotchikam.md index 72ce6b0a..8e70754f 100644 --- a/razrabotchikam.md +++ b/razrabotchikam.md @@ -1,4 +1,4 @@ -# РАЗРАБОТЧИКАМ +## РАЗРАБОТЧИКАМ * [Архитектура](/arhitektura.md) * [Администрирование](/administrirovanie.md) @@ -7,6 +7,7 @@ * [Разработка](/razrabotka.md) * [Справочные данные](/spravochnie-dannie.md) * [Руководства \(HOWTO\)](/rukovodstva-howto.md) +* [HardFork HF18](/hardfork-dokumentatsiya.md) diff --git a/rukovodstva-howto.md b/rukovodstva-howto.md index b7164e2f..6402fa02 100644 --- a/rukovodstva-howto.md +++ b/rukovodstva-howto.md @@ -1,4 +1,4 @@ -# Руководства \(HOWTO\) +## Руководства \(HOWTO\) * [Скрипт регистрации аккаунтов](/golosd/howto/vik-registration-service.md) * [Как использовать мультиподписи](/golosd/howto/multisig.md) diff --git a/stati.md b/stati.md index 73962c51..8f54392e 100644 --- a/stati.md +++ b/stati.md @@ -4,14 +4,12 @@ > > Имейте в виду, что статьи отражают позицию их авторов и не являются безусловной рекомендацией. -* [Просто о блокчейне](/prosto-o-blokcheine.md) * [Способы заработка](/1-introduction/zarabotok.md) -* [КриптоТермины](/kriptotermini.md) -* [Смайлики на Голосе](/smailiki-na-golose.md) -* [Конференция ГолосФест 2017](/3-guides/aktualnoe/golosfest.md) -* [Инструменты: сайт golosd.com](/instrumenti-golosdcom.md) -* [Инструменты: сайт golosdb.com](/instrumenti-golosdbcom.md) -* [Инструкция для новичков](/instruktsiya-dlya-novichkov-pdf.md) \(PDF-файл\) - - - +* [Просто о блокчейне](/1-introduction/prosto-o-blokcheine.md) +* [КриптоТермины](/1-introduction/kriptotermini.md) +* [Смайлики на Голосе](/1-introduction/smailiki-na-golose.md) +* [Сервис steemul.ru](1-introduction/steemulru.md) +* [Сервис golos.cf/history](golos.cf/history) +* [Сила при голосовании](/1-introduction/chto-takoe-sila-golosovaniya-i-skolko-postov-mozhno-laikat-za-sutki.md) +* [Выбор силы при голосовании](/1-introduction/chto-takoe-sila-golosovaniya-i-skolko-postov-mozhno-laikat-za-sutki.md) +* [Ответы команды golos.io](1-introduction/otveti-komandi-golosio.md) \ No newline at end of file diff --git a/uchastie-v-viki-golosa.md b/uchastie-v-viki-golosa.md index ea0c9d24..af79534a 100644 --- a/uchastie-v-viki-golosa.md +++ b/uchastie-v-viki-golosa.md @@ -1,4 +1,5 @@ -# Как участвовать в вики Голоса +# Как участвовать в вики Голоса + ## Исходный текст @@ -110,5 +111,5 @@ ## Баунти! -За участие в наполнении Вики Голоса вы можете [получить поощрение](/0-aktualnoe/baunti.html). +За участие в наполнении Вики Голоса вы можете [получить поощрение](/0-aktualnoe/baunti.md). diff --git a/useful_links.md b/useful_links.md index 0fb86968..ce47c3ac 100644 --- a/useful_links.md +++ b/useful_links.md @@ -10,6 +10,7 @@ [Голос: русскоязычная социально-медийная блокчейн-платформа](https://golos.io/ru--golos/@golos/golos-russkoyazychnaya-socialno-mediinaya-blokchein-platforma) [Голос: общественное медиа как база для социальной активности](https://golos.io/ru--golos/@marina/golos-obshestvennoe-media-kak-baza-dlya-socialnoi-aktivnosti) +https://goldvoice.club/@marina/golos-obshestvennoe-media-kak-baza-dlya-socialnoi-aktivnosti/ [План развития блокчейн Голос и клиента Golos.io](https://docs.google.com/document/d/1WQF1xxmCMxzEA95Gnxw4FHViX_6pjVoUlBnItCepOmE/edit?usp=sharing)