💰 Обновление ботов и постинг-формы GOLOS.CF/MD - возможность кураторам заработать на бенефициарах


В связи с вводом бенефициарства (это когда приложения и сайты могут брать процент с авторов за публикацию постов) я обновил постинг-форму для голоса https://golos.cf/md

В нее встроен хостинг изображений от imgur, удобный визуальный markdown редактор с предпросмотром, а главное - возможность самому указать или не указывать бенефициаров.

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

Однако, вы сможете найти и другой способ применения в связке с ботами:

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

Как это можно использовать?

Вы настраиваете бота голосовать за посты, в которых ваш аккаунт указан бенефициаром от 3%. Команда для настройки выглядит так:

/benef + имя=вес

После этого вы предлагаете всем желающим получить от вас голос указав ваш логин в бенефициарах поста с процентом не менее 3% (или другого желаемого вами процента)

Для того чтобы автор смог указать ваш логин в бенефициарах в форме постинга есть специальное поле, где можно ввести строку вида:

[ {"account": "ИМЯ_БЕНЕФИЦИАРА","weight": 300} ]

Weight, вес, это и есть бенефактор или процент отчислений в формате 300 = 3% или 1000 = 10%, 10000 = 100%. Можно указать любой процент, число умножить на 100.

(В боте командой /benef + имя=вес процент следует вводить в классическом формате, где 1 = 1%.)

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

Редактор GOLOS.CF/MD - обновления

Прежний HTML редактор заменен на визуальный markdown.

Преимущества:

  • Проще освоить разметку markdown поскольку теги применяются в реальном времени
  • формат markdown компактнее для блокчейн, вы сможете разместить больше символов в посте

Пример разметки

Можно использовать любое количество тегов в разном формате.

Текст даже в сыром виде дает представление о том, как будет выглядеть пост, дополнительно есть режим предпросмотра:

В том числе двухоконный


Настройка дополнительных опций

В дополнительных опциях можно настроить permlink поста, это окончание ссылки. Например если ваш логин vik , первый тег вы использовали blog а в пермлинк указали about то ссылка на ваш пост будет вида golos.io/blog/@vik/about

Если не настроить permlink - он будет взят из заголовка в транслите!

Осторожно!
если вы укажете permlink совпадающий с вашим прежним постом, или не укажете permlink, но транслит заголовка совпадет с ссылкой прежнего поста - будет размещен не новый пост, а отредактирован прежний путем замены контента.

Таким образом можно редактировать посты через эту форму.
Позднее будет добавлен удобный интерфейс для редактирования старых постов.

В поле имя приложения вы можете указать любой произвольный текст, который будет обозначен в блокчейн как подпись приложения с которого вы отправили пост. Таким образом можно имитировать goldvoice, steepshot и т.п.

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

Количество бенефициаров можно указать разное, но стоит правильно расчитать процент. Если бенефициаров несколько и с одинаковым процентом - это не значит, что они получат равное отчисление. Об этом я напишу отдельно.

Логин и постинг ключ в безопасности, не покидает ваш браузер

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


Comments 32


Отличная работа/good job!)))

14.04.2018 12:12
0
Вот про редактирование - вообще супер!!
Еще бы придумали обратную связь по старым постам..
)
14.04.2018 12:22
0

На днях добавлю редактирование.

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

14.04.2018 12:26
0

Отлично! Спасибо!

14.04.2018 12:39
0

Какой угодно давности?
Сразу вопрос. Я редактирую старый пост, а те, кто настроил ботов на меня как фаворита, получается будут его апать? апы уйдут в молоко..

14.04.2018 15:28
0

Редактор постов уже сделан и добавлен на golos.cf/md

Какой угодно давности?

Нет, сейчас ограничени равное окну выплат. 7 дней. Правила блокчейна, меняются хардфорком.

Я редактирую старый пост, а те, кто настроил ботов на меня как фаворита

В ботах есть настройка: голосовать или не голосовать за редактирования постов. Зависит от настроек вашей аудитории.

14.04.2018 16:10
0

Благодарю за интересное нововведение @vik. А как узнать, какой процент бенефициара нормален? Ведь можно не рассчитать, в результате чего никто не будет соглашаться указывать такого бенефициара.
И ещё вопрос: возможно ли сделать так, чтобы публикация шла в определённый аккаунт, но посетитель страницы никогда не узнал его постинг ключ? Благодарю.
P. S. В поле редактирования при использовании программы экранного доступа не озвучиваются символы, если перемещаться стрелками вправо, влево/вверх, вниз. Только если выделять весь текст становится понятно, что там есть.

14.04.2018 12:40
0

А как узнать, какой процент бенефициара нормален? Ведь можно не рассчитать, в результате чего никто не будет соглашаться указывать такого бенефициара.

Хороший тон - это равноценный обмен. Ваш апвот должен давать пользователю мотивацию ставить вас бенефициаром. Стало быть - все индивидуально.

И ещё вопрос: возможно ли сделать так, чтобы публикация шла в определённый аккаунт, но посетитель страницы никогда не узнал его постинг ключ?

Не понял вопрос :)
Посетитель страницы локально? То есть когда за вашим компьютером третье лицо? Оно не увидит постинг ключ. За хранение ключа отвечает менеджер паролей в браузере. В современных браузерах пароли скрыты и посмотреть их можно только если ввести пароль администратора вашей операционной системы.
В случае с хром - пароли также можно увидеть в аккаунте гугла passwords.google.com подтвердив вход. Т.е. это предполагает у третьего лица доступ к вашим более приватным данным, чем просто постинг ключ.

14.04.2018 16:18
0

Нет. я имел в виду, можно ли вашу страницу ту разместить у себя на хостинге, но сделать не возможность отправки поста на аккаунт, данные которого ввёл посетитель, а в определённый аккаунт, к примеру, сообщества. Но так, чтоб посетитель не смог в исходном коде прочитать постинг ключ?

14.04.2018 16:30
0

разместить у себя на хостинге ... определённый аккаунт, к примеру, сообщества. так, чтоб посетитель не смог в исходном коде прочитать постинг ключ?

Понял.
Нет, такую страницу нет, поскольку тут весь код работает на клиенте. Если сервер поддерживает хотя бы PHP - можно сделать бродкаст на стороне сервера, тогда ключ не будет доступен извне.


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

14.04.2018 16:39
0

Благодарю. Буду использовать php.

бродкаст на стороне сервера,

Вы имеете в виду выполнение транзакций на php? Если отправку транзакций, как это делать? Я установил php-node-client, заказал установку нужных расширений с github php-node-client, но транзакции выполнять не получается. Пишет следующее:
array(3) {
["jsonrpc"]=>
string(3) "2.0"
["error"]=>
array(3) {
["code"]=>
int(-32000)
["message"]=>
string(90) "missing required posting authority (3030000)
Missing Posting Authority denis-skripnik

"
["data"]=>
array(4) {
["code"]=>
int(3030000)
["name"]=>
string(23) "tx_missing_posting_auth"
["message"]=>
string(34) "missing required posting authority"
["stack"]=>
array(5) {
[0]=>
array(3) {
["context"]=>
array(7) {
["level"]=>
string(5) "error"
["file"]=>
string(15) "transaction.cpp"
["line"]=>
int(121)
["method"]=>
string(16) "verify_authority"
["hostname"]=>
string(0) ""
["thread_name"]=>
string(4) "th_0"
["timestamp"]=>
string(19) "2018-04-14T17:25:25"
}
["format"]=>
string(31) "Missing Posting Authority ${id}"
["data"]=>
array(4) {
["id"]=>
string(14) "denis-skripnik"
["posting"]=>
array(3) {
["weight_threshold"]=>
int(1)
["account_auths"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(14) "golosovalochka"
[1]=>
int(1)
}
}
["key_auths"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(53) "GLS5ubkDfGXdMR26h2vcAF2wSDViVTJBtNZ7qCT11De8wtV4GJcSV"
[1]=>
int(1)
}
}
}
["active"]=>
array(3) {
["weight_threshold"]=>
int(1)
["account_auths"]=>
array(0) {
}
["key_auths"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(53) "GLS5962VRwY4Zfbd1qvMrhgJWGTmj86gChyhv7Xy7zmwvH8GNuC6z"
[1]=>
int(1)
}
}
}
["owner"]=>
array(3) {
["weight_threshold"]=>
int(1)
["account_auths"]=>
array(0) {
}
["key_auths"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(53) "GLS5939tAqtsWtwwFrtJ9t1HzQWyYnaiDuhvxwAukmdqNVJTmNKMa"
[1]=>
int(1)
}
}
}
}
}
[1]=>
array(3) {
["context"]=>
array(7) {
["level"]=>
string(4) "warn"
["file"]=>
string(15) "transaction.cpp"
["line"]=>
int(164)
["method"]=>
string(16) "verify_authority"
["hostname"]=>
string(0) ""
["thread_name"]=>
string(4) "th_0"
["timestamp"]=>
string(19) "2018-04-14T17:25:25"
}
["format"]=>
string(0) ""
["data"]=>
array(2) {
["ops"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(4) "vote"
[1]=>
array(4) {
["voter"]=>
string(14) "denis-skripnik"
["author"]=>
string(6) "avoice"
["permlink"]=>
string(31) "kto-v-dome-khozyain-glavnyi-kto"
["weight"]=>
int(10000)
}
}
}
["sigs"]=>
array(1) {
[0]=>
string(53) "GLS7nes9Rz9iXuAsKdbN7AydLM8W2AGWahE1TQpiAWCAHmAbek1R2"
}
}
}
[2]=>
array(3) {
["context"]=>
array(7) {
["level"]=>
string(4) "warn"
["file"]=>
string(15) "transaction.cpp"
["line"]=>
int(287)
["method"]=>
string(16) "verify_authority"
["hostname"]=>
string(0) ""
["thread_name"]=>
string(4) "th_0"
["timestamp"]=>
string(19) "2018-04-14T17:25:25"
}
["format"]=>
string(0) ""
["data"]=>
array(1) {
["*this"]=>
array(6) {
["ref_block_num"]=>
int(45718)
["ref_block_prefix"]=>
int(908577102)
["expiration"]=>
string(19) "2018-04-14T17:26:25"
["operations"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(4) "vote"
[1]=>
array(4) {
["voter"]=>
string(14) "denis-skripnik"
["author"]=>
string(6) "avoice"
["permlink"]=>
string(31) "kto-v-dome-khozyain-glavnyi-kto"
["weight"]=>
int(10000)
}
}
}
["extensions"]=>
array(0) {
}
["signatures"]=>
array(1) {
[0]=>
string(130) "1f4f53ba6d75c28b1fc4c364fc8a9a208179ec024ca9962cec4c479ab642195a0342a1e73730a9d454e63438ee3af18b11c5f1b3b4d0cdec74d5c32144303a16c2"
}
}
}
}
[3]=>
array(3) {
["context"]=>
array(7) {
["level"]=>
string(4) "warn"
["file"]=>
string(12) "database.cpp"
["line"]=>
int(3414)
["method"]=>
string(18) "_apply_transaction"
["hostname"]=>
string(0) ""
["thread_name"]=>
string(4) "th_0"
["timestamp"]=>
string(19) "2018-04-14T17:25:25"
}
["format"]=>
string(0) ""
["data"]=>
array(1) {
["trx"]=>
array(6) {
["ref_block_num"]=>
int(45718)
["ref_block_prefix"]=>
int(908577102)
["expiration"]=>
string(19) "2018-04-14T17:26:25"
["operations"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(4) "vote"
[1]=>
array(4) {
["voter"]=>
string(14) "denis-skripnik"
["author"]=>
string(6) "avoice"
["permlink"]=>
string(31) "kto-v-dome-khozyain-glavnyi-kto"
["weight"]=>
int(10000)
}
}
}
["extensions"]=>
array(0) {
}
["signatures"]=>
array(1) {
[0]=>
string(130) "1f4f53ba6d75c28b1fc4c364fc8a9a208179ec024ca9962cec4c479ab642195a0342a1e73730a9d454e63438ee3af18b11c5f1b3b4d0cdec74d5c32144303a16c2"
}
}
}
}
[4]=>
array(3) {
["context"]=>
array(7) {
["level"]=>
string(4) "warn"
["file"]=>
string(12) "database.cpp"
["line"]=>
int(817)
["method"]=>
string(16) "push_transaction"
["hostname"]=>
string(0) ""
["thread_name"]=>
string(4) "th_0"
["timestamp"]=>
string(19) "2018-04-14T17:25:25"
}
["format"]=>
string(0) ""
["data"]=>
array(1) {
["trx"]=>
array(6) {
["ref_block_num"]=>
int(45718)
["ref_block_prefix"]=>
int(908577102)
["expiration"]=>
string(19) "2018-04-14T17:26:25"
["operations"]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(4) "vote"
[1]=>
array(4) {
["voter"]=>
string(14) "denis-skripnik"
["author"]=>
string(6) "avoice"
["permlink"]=>
string(31) "kto-v-dome-khozyain-glavnyi-kto"
["weight"]=>
int(10000)
}
}
}
["extensions"]=>
array(0) {
}
["signatures"]=>
array(1) {
[0]=>
string(130) "1f4f53ba6d75c28b1fc4c364fc8a9a208179ec024ca9962cec4c479ab642195a0342a1e73730a9d454e63438ee3af18b11c5f1b3b4d0cdec74d5c32144303a16c2"
}
}
}
}
}
}
}
["id"]=>
int(4)
}
Хотя постинг ключ ввожу правильный. Видимо там проблемы есть с настройкой php под транзакции - слышал об этом. t3ran13 знает только, как настраивать всё с использованием Docker: у меня же сайты все на ispmanager.
Если бы не эта проблема, на практике в мае попробовал бы делать каких-нибудь ботов для Голоса, что для меня, как для незрячего, проще, чем вёрстка сайтов, которую скорее всего будут делать одногрупники.
Благодарю.

14.04.2018 17:31
0

Missing Posting Authority denis-skripnik

Постинг ключ неправильный

14.04.2018 17:54
0

Как неправильный, если я его взял, зайдя в свой кошелёк на golos.io, нажал "Разрешения", а напротив "Постинг ключ" нажал "Показать", после чего появился он, начинающийся с "5JqQ..."
Да и у вас в ботах его вводил.

14.04.2018 18:39
0

Возможно php библиотека не актуальная. В api менялась сериализация и старые библиотеки кроме прочего неправильно воспринимают ключи

14.04.2018 19:40
0

У меня такая ошибка и раньше была. До ХФ. Да и сейчас обновил до 4.0.0, в которой, наверное, обновления уже все есть. А ошибка сохраняется.

14.04.2018 19:55
0

@denis-skripnik
Вот это установлено?

with broadcast (sending transactions to blockchain / для передачи транзакций в блокчейн)
(details and dockerfile here)
install components
automake
libtool
libgmp-dev
install extensions
secp256k1 (how to install secp256k1-php)
gmp

Нет? Я пока тоже не разобрался, смогу ли на хостинг всё это взгромоздить.
https://github.com/t3ran13/php-graphene-node-client/issues/13

20.04.2018 02:02
0

Мне человек, который администрировал, сказал что поставил компоненты и расширения те. Но вот вся проблема в том, что по-прежнему всё не работает.
Докера у меня нет, а автор скрипта только с ним и работает. Похоже, придётся изучать node.js, потому что оплату ещё одного vds с Docker не потяну.

20.04.2018 03:23
0

Не уловил. А зачем ещё один vds?
docker - это просто пакет программ. Который можно установить наряду с php/mysql и midnight commander на имеющийся linux. Как я понимаю, аналог обычно встроенного в linux screen.
https://www.8host.com/blog/ustanovka-i-nastrojka-docker/

21.04.2018 01:55
0

Вы думаете, что 1 ГБ свободной оперативки хватит для работы Докера и всех входящих в него образов?

21.04.2018 04:30
0

Благодарю. Почитал ветку. Может разберусь с докерфайлом в ветке debug.

20.04.2018 03:29
0

Если получится у вас настроить транзакции на php на хостинге, напишите - это очень важно. Благодарю заранее, @jackvote

20.04.2018 15:58
0

Я скорее буду смотреть в сторону своей ноды.
У меня есть физический web-сервер, на котором крутятся сервера minecraft, но там AltLinux.
Так как на сервера давно никто не заходит, кроме сына @retroscope, да и тот раз в несколько месяцев, то, видимо, буду ставить туда рекомендуемую Ubuntu 16.04 и на ней всё поднимать.

21.04.2018 02:01
0

@jackvote, этот сервер у вас дома стоит или где-то в другом месте? За сколько его покупали? Какие требования к его работе? Насколько долго он онлайн? Думаю тоже так сделать, но сервера нет.
А причём здесь Нода и php транзакции? Ведь от того, что вы поставите Ноду, они не начнут работать.

21.04.2018 04:31
0

Бенефициары указываются каждый раз при публикации поста?
Сделать на постоянно, вроде как подписчиков, никак?

14.04.2018 12:41
0

Сделать на постоянно

Форма как раз для "наоборот" :)

golos.io steepshot и другие так и будут делать - хардкодить себя в бенефициары при каждом размещении поста.

А описываемая форма просто дает возможность задавать их произвольно или не задавать вовсе.

14.04.2018 13:10
0

Интересно, начнётся ли у них демпинг, для перетягивания пользователей? Или будет сговор?

А вообще, при возможности задавать бенефициаров на постоянно, получится "узаконенный" откат на уровне ядра, без скриптов.
Поставь кураторам 20% к их 25% и пусть апают. :-)

14.04.2018 13:19
0

А нельзя ли сделать так, чтобы при попытке переписать существующий пост появлялся запрос на подтверждение перезаписи? Чтобы случайно не переписать старый пост, сочиняя новый, но оставив по ошибке старый заголовок.

Ну и поле для картинку обложки при постинге в goldvoice.

14.04.2018 16:52
0

/benef + имя=вес

Если вес указать =100, то это будет равнозначно 100%-ному "откату", как у @mimocrocodil ?
Т.е. автору всё равно ведь будут идти отчисления в силе голоса?

14.04.2018 18:58
0

Нет.

14.04.2018 19:38
0

А какой вес нужно поставить, чтобы было равнозначно?

14.04.2018 20:37
0

Привет! Отличная статья. Я проголосовал за неё, а также подписался на Ваш блог. Надеюсь на взаимную подписку

14.04.2018 20:59
0