В связи с вводом бенефициарства (это когда приложения и сайты могут брать процент с авторов за публикацию постов) я обновил постинг-форму для голоса 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 и т.п.
Поле бенефициары используется для указания пользователей, которым вы намерены сделать откат с поста. Процент отката указаывается там же.
Количество бенефициаров можно указать разное, но стоит правильно расчитать процент. Если бенефициаров несколько и с одинаковым процентом - это не значит, что они получат равное отчисление. Об этом я напишу отдельно.
Логин и постинг ключ в безопасности, не покидает ваш браузер
Хранить ключ можно в менеджере паролей браузера в зашифрованном виде. Во время отправки поста ключ используется для подписи транзакции, в сеть транзакция отправляется уже подписанной без передачи самого ключа
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
sharker, t3ran13, boddhisattva, narin, andrvik, max-max, oleg257, dimarss, vik, vadbars, amikphoto, arsar, tom123, natasmr, yourlastwinter, olga-olga, semasping, fair, ladynazgool, tnam0rken, rubin, francesco, arhangel, newodin, borisss, aiparnyuk, felicita, edsaw, hyipov, amelina.elena, talia, graff0x, manavendra, mr-nikola, makcum52, dimas102, lengalenga, bag, vladsm, massatela, kanalex, amalinavia, chirakovalsky, konstab, yakubovruslan, astramar, benken, iot, leonid96, sinilga, mamamasha, delectat, rualev, borgerry
Поэтому я тоже проголосовал за него!
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
Привет! Отличная статья. Я проголосовал за неё, а также подписался на Ваш блог. Надеюсь на взаимную подписку
Если вес указать =100, то это будет равнозначно 100%-ному "откату", как у @mimocrocodil ?
Т.е. автору всё равно ведь будут идти отчисления в силе голоса?
Нет.
А какой вес нужно поставить, чтобы было равнозначно?
А нельзя ли сделать так, чтобы при попытке переписать существующий пост появлялся запрос на подтверждение перезаписи? Чтобы случайно не переписать старый пост, сочиняя новый, но оставив по ошибке старый заголовок.
Ну и поле для картинку обложки при постинге в goldvoice.
Бенефициары указываются каждый раз при публикации поста?
Сделать на постоянно, вроде как подписчиков, никак?
Форма как раз для "наоборот" :)
golos.io steepshot и другие так и будут делать - хардкодить себя в бенефициары при каждом размещении поста.
А описываемая форма просто дает возможность задавать их произвольно или не задавать вовсе.
Интересно, начнётся ли у них демпинг, для перетягивания пользователей? Или будет сговор?
А вообще, при возможности задавать бенефициаров на постоянно, получится "узаконенный" откат на уровне ядра, без скриптов.
Поставь кураторам 20% к их 25% и пусть апают. :-)
Благодарю за интересное нововведение @vik. А как узнать, какой процент бенефициара нормален? Ведь можно не рассчитать, в результате чего никто не будет соглашаться указывать такого бенефициара.
И ещё вопрос: возможно ли сделать так, чтобы публикация шла в определённый аккаунт, но посетитель страницы никогда не узнал его постинг ключ? Благодарю.
P. S. В поле редактирования при использовании программы экранного доступа не озвучиваются символы, если перемещаться стрелками вправо, влево/вверх, вниз. Только если выделять весь текст становится понятно, что там есть.
Хороший тон - это равноценный обмен. Ваш апвот должен давать пользователю мотивацию ставить вас бенефициаром. Стало быть - все индивидуально.
Не понял вопрос :)
Посетитель страницы локально? То есть когда за вашим компьютером третье лицо? Оно не увидит постинг ключ. За хранение ключа отвечает менеджер паролей в браузере. В современных браузерах пароли скрыты и посмотреть их можно только если ввести пароль администратора вашей операционной системы.
В случае с хром - пароли также можно увидеть в аккаунте гугла passwords.google.com подтвердив вход. Т.е. это предполагает у третьего лица доступ к вашим более приватным данным, чем просто постинг ключ.
Нет. я имел в виду, можно ли вашу страницу ту разместить у себя на хостинге, но сделать не возможность отправки поста на аккаунт, данные которого ввёл посетитель, а в определённый аккаунт, к примеру, сообщества. Но так, чтоб посетитель не смог в исходном коде прочитать постинг ключ?
Понял.
Нет, такую страницу нет, поскольку тут весь код работает на клиенте. Если сервер поддерживает хотя бы PHP - можно сделать бродкаст на стороне сервера, тогда ключ не будет доступен извне.
Второй вариант - сообщество может добавить себе в мульти авторизацию логины своих авторов и тогда авторы смогут размещать посты от имени сообщества используя свои собственные постинг ключи.
Однако это даст им возможность использовать все позможности постинг ключа (апвоты, подписки, реблоги)
Благодарю. Буду использовать 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.
Если бы не эта проблема, на практике в мае попробовал бы делать каких-нибудь ботов для Голоса, что для меня, как для незрячего, проще, чем вёрстка сайтов, которую скорее всего будут делать одногрупники.
Благодарю.
@denis-skripnik
Вот это установлено?
Нет? Я пока тоже не разобрался, смогу ли на хостинг всё это взгромоздить.
https://github.com/t3ran13/php-graphene-node-client/issues/13
Если получится у вас настроить транзакции на php на хостинге, напишите - это очень важно. Благодарю заранее, @jackvote
Я скорее буду смотреть в сторону своей ноды.
У меня есть физический web-сервер, на котором крутятся сервера minecraft, но там AltLinux.
Так как на сервера давно никто не заходит, кроме сына @retroscope, да и тот раз в несколько месяцев, то, видимо, буду ставить туда рекомендуемую Ubuntu 16.04 и на ней всё поднимать.
Благодарю. Почитал ветку. Может разберусь с докерфайлом в ветке debug.
Мне человек, который администрировал, сказал что поставил компоненты и расширения те. Но вот вся проблема в том, что по-прежнему всё не работает.
Докера у меня нет, а автор скрипта только с ним и работает. Похоже, придётся изучать node.js, потому что оплату ещё одного vds с Docker не потяну.
Не уловил. А зачем ещё один vds?
docker - это просто пакет программ. Который можно установить наряду с php/mysql и midnight commander на имеющийся linux. Как я понимаю, аналог обычно встроенного в linux screen.
https://www.8host.com/blog/ustanovka-i-nastrojka-docker/
Постинг ключ неправильный
Как неправильный, если я его взял, зайдя в свой кошелёк на golos.io, нажал "Разрешения", а напротив "Постинг ключ" нажал "Показать", после чего появился он, начинающийся с "5JqQ..."
Да и у вас в ботах его вводил.
Возможно php библиотека не актуальная. В api менялась сериализация и старые библиотеки кроме прочего неправильно воспринимают ключи
Вот про редактирование - вообще супер!!
Еще бы придумали обратную связь по старым постам..
:)
На днях добавлю редактирование.
Это будет выглядеть так - вы указываете логин - всплавает окошко со списком заголовков постов этого логина - кликаете на нужный заголовок - текст с поста загружается в редактор и можно его изменять.
Какой угодно давности?
Сразу вопрос. Я редактирую старый пост, а те, кто настроил ботов на меня как фаворита, получается будут его апать? апы уйдут в молоко..
Редактор постов уже сделан и добавлен на golos.cf/md
Нет, сейчас ограничени равное окну выплат. 7 дней. Правила блокчейна, меняются хардфорком.
В ботах есть настройка: голосовать или не голосовать за редактирования постов. Зависит от настроек вашей аудитории.
Отлично! Спасибо!
Отличная работа/good job!)))