VGolose - альтернативный веб-клиент Golos.io
(источник - smnweekly.com)
Основными задачи это сделать все: минималистично, функционально, просто и безопасно. Это веб-клиент для пользователей как с минимальным порогом вхождения, так и для китов. Здесь сохраняется философия блокчейна, но добавлены функциональные удобства которые были до этого плохо реализованы. Дизайн прост и привычен, адаптируется под все разрешения экранов и помогает новичкам своевременными и полезными подсказками - например если вы добавляете свой первый пост, или только создали аккаунт.
Дополнительными и немаловажными моментами в спецификации являются:
- (на рассмотрении) Чистый веб-клиент - вы работаете напрямую с Golos, ваши данные
некуда не записываются (возможно ведение статистики, не используя личные данные пользователей для авторизаций, регистраций, постов... добавленных через веб-клиент). Иными словами весь веб-клиент это одна html страница и скомпилированные
javascript, sass файлы. Поэтому запуск на своем компьютере будет тривиальной задачей. - (на рассмотрении) Возможность в режиме read-only просматривать контент 18+ с siski.
Стек используемых технологий и инструментов:
- ClojureScript - позволит быстро и качественно вести разработку.
- Om - это больше чем интерфейс React для clojurescript.
- DatamoticDB - позволит использовать локальное хранилище в браузере.
Обоснование проекта
Новые пользователи официального веб-клиента golos.io, испытвают трудности при взаимодействии с ним. Мы не в праве осуждать труд разработчиков которые создавали его, тем более это не проприетарный продукт а open-source.
Но официальный веб-клиент явно имеет свои недостатки, например:
- Нельзя добавить понравившееся посты в избранное, и позже просматривать их.
- Нет визуального markdown редактора в формах добавления постов и комментариев.
- Нет гибких настроек пользовательской информации в профиле пользователя.
- Не реализован функционал отправки сообщений между пользователями.
- Нет автоподсказок при вводе тегов при добавлении поста.
- (на рассмотрении) Приватный ключ не сохраняется в состоянии, поэтому постоянно приходится его
вводить при обновлении данных аккаунта.
(будет пополняться)
Эти недостатки и станут первоочердеными пунктами в спецификации для нового веб-клиента. К счастью создатели блокчейна Steemit(Golos), выбрали правильную архитектуру и предусмотрели расширение базового функционала. Мы собираемся использовать на полную мощность свойства json_metadata в постах и аккаунтах.
Вектор целей на ближайшие 4 недели
- Создание стратовой страницы (заглушка до реализации просмотра ленты).
- Создание моделей post, account, comment для проверки валидации.
- Компонент просмотра ленты новостей + поисковые фильтры.
- Компонент авторизации пользователей.
- Компонент глобальных настроек аккаунта (кошелек, изменение пароля) (для авторизованных).
- Компонент настроек публичного профиля аккаунта (ФИО, город, о себе...) (для авторизованных).
- Компонент просмотра страниц поста, аккаунта, блога.
- Добавление поста в избранное. Кнопка в общей ленте и на странице поста (для авторизованных).
- Компонент для просмотра избранных постов (для авторизованных).
- Форма добавления поста с markdown редактором (для авторизованных).
- Форма добавления комментария с markdown редактором (для авторизованных).
- Компонент регистрации нового аккаунта.
- Help тексты и howto для новичков.
- продумать решение для конфидециального обмена сообщениями между пользователями, используя исключительно технические средства блокчейна Golos.
(будет пополняться)
Список первоочередных затрат:
- Купить доменное имя (пока секрет, чтобы киберсвотеры не набежали) - 999 рублей на reg.ru.
- Оплатить облачный хостинг DigitalOctober - 10$/мес.
Юридические вопросы
Не рассмотрено.
Поддержи проект
Проект создается в основном исключительно за счет его автора, не без помощи знакомых senior'в которые в скором времени более активно подключаться к разработке. Поскольку всем нам требуется что-то есть, автор вынужден работать, что существенно сокращает свободное время которое используется для разработки проекта. Но все-же если вы хотите поддержать мой проект своими голосами - буду только за!
Будь в курсе событий
Подписывайтесь на аккаунт @kocherginji в Golos и следите за новостями.
Репозиторий в GitHub.
P.S. Благодарю за внимание. Я всегда открыт к конструктивной критике!
Hipster - я категорически не желаю, и более того не собираюсь создавать отдельный аккаунт для подобных постов о релизе. Будучи автором кода скромного проекта, не компанией и не организацией, зачем мне плодить новый аккаунт для этого проекта?
Спасибо за интерес, проявленный к нашему проекту, мы положительно относимся к потенциальной возможности просмотра в RO режиме контента с Сисек (учитывая что он будет дополнительно шифроваться перед публикацией в блокчейн) однако у нас пожелание - отключить возможность постановки флагов для нашего контента из Вашего клиента.
Спасибо за понимание.
По вопросам связанным с Сиськами приглашаю в чат - chat.golos.io/channel/siski
Уже с вами, я вообще очень надеюсь, что при вашем желании и наших совместных усилиях мы сможем сделать форк со своим блэк-джэком и сиськами для вашего веб-клиента. То есть использовать его как полезную модель. Если конечно вы не реализуете его намного раньше, чем я (:
Во-первых, этот пост не попадает по действие инициативы, т.к. поощрение в рамках неё осуществляется только за уже сделанные, а не за планируемые дела.
Во-вторых,
Возможно Ваша категоричность самоустранится после получения некоторых знаний, которые Вы поленились получить при изучении дискуссии к анонсу:
Тут такое дело. Никто Вам не мешает делать то, что Вы делаете так как Вы считаете нужным, но стоит понимать, что с соблюдением обязательных условий с каждого релиза органическим способом Вы получите, например, 15 тыс. рублей. А с учетом инциативы (возможно) 30 тыс. рублей. Говорю возможно, потому-что очень сложно заранее определить кого и в каком объеме поощрать, поэтому и важен учет.
Если для Вас это настолько принципиально, Вы можете продолжать грести веслами, в то время как коллеги по цеху будут юзать электродвигатели на солнечных батареях.
Ты однозначно умеешь аргументировать свои мысли. И ты убедил меня, благодарю (:
Следующий пост (через 3-5 дней) о проделанной работе будет с аккаунта @vgolose.
Спасибо за понимание. К тому же я предвижу, что как только ты дойдешь до дзена запустить вебклиент в бою, тебе обязательно понадобиться какой-нибудь аккаунт, с которого надо будет оплачивать регистрации и который будет отвечать за восстановление аккаунтов. Угадай какой аккаунт подойдет для этих целей наилучшим образом? Вряд ли личный.
Я честно говоря удивлен собранном количеством голосов на этом посте. Такого никак не ожидал. Так что сейчас придется еще продумать затраты наперед, чтобы отчитаться перед теми кто голосовал, и кому альтернативный клиент будет полезен и интересен.
В любом случае для меня очень важно, что люди верят и видят полезным мое начинание, активно комментируют и делают предложения. Это мотивирует лучше денег и голосов (:
Оно есть.
send_private_message(string from, string to, string subject, string body, bool broadcast)
subject
иbody
шифруются ключемmemo
Благодарю за полезную информацию. Правильно ли я понял, что этот метод можно смело использовать в ws запросе/транзакции к ноде ws.golos.io при отправке и потом отлавливать данные на получателе?
Вроде как да. Но у нас с Валеркой так и не дошли руки до тестирования всего этого добра.
Еще киллер фича была бы - личные сообщения. Можно организовать комментариями к минимальным транзакциям с шифрованием. Либо там в блокчейне уже есть что-то для этого подготовлено, но пока не реализовано на golos.io.
Решение есть, но требует перед оглашением консультации с специалистом по ИБ.
Есть пользователь, у него есть json_metadata. Мы будем хранить в этом свойстве массив с сообщениями в зашифрованном виде. Несмотря на то, что сообщения в зашифрованном виде будут доступны публично в блокчейне вместе с другими данными аккаунта, нам необходимо гарантировать пользователям конфиденциальность переписки, здесь на помощь прийдет pgp.
Дальнейшие детали пока не буду сообщать, поскольку хочу убедится что это рабочее решение на раннем этапе. Основная сложность этого метода - большие вычисления на клиенте, что требует подробного осмысления и хорошей оптимизации + некоторые данные (мета-данные) о сообщение будут доступны публично. Например что Вася в 21:00:00 12.02.2017 написал PGP_MESSAGE Алисе. Так что тут еще непаханое поле - нужно исследовать..
Не нужно в json_metadata пихать эти данные.
Во-первых, как видно из названия, этот обьект предназначен для мета данных. Настройки пользователя, профиль, предпочтения и прочее.
Во-вторых, это слишком обьемные данные, которые затормозят работу сайта.
В комментариях к данной статье были подгружены ~10 пользователей, и если у каждого из этих обьектов будет массив данных на 1/2/3 мегабайта, то ни трафика ни напасешься, ни компьютерных мощностей на достаточно быструю обработку.
Что-то вы в JSON решили так много запихнуть.Там нет ограничения на объем данных, что ли?
Альтернативный и более кошерный вариант это memo key. Потому что все остальное это этакая надстройка над блокчейном в самом блокчейне, подобное называют еще велосипедом (:
заметил, вы только что перевели свои токены из Liqui
кстати, вы в курсе, что будет с листингом голоса на ликви в будущем, не вернется?
https://golos.id/liqui/@anyone/chto-budet-s-nevostrebovannymi-tokenami-na-birzhe-liqui-io
@kocherginji Поздравляю! Вы получили личную награду!
С Днём Рождения - 2 лет на Голосе
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
Уважаемый @kocherginji ! Не бери домены в reg.ru, умоляю тебя! Они офигевшие (цена + качество =?!!?). Я покупаю домены в R01 в розницу (!) по 88 рублей за домен! Продление - столько же. И считаю это довольно дорого! Если уже купил - можешь оформить перенос к ним, я так делал для многих знакомых по их просьбе (даже для юрлиц, это не очень сложно).
Похоже, это очень круто. Подписалась и жду аккаунта @vgolose:)
пост уже стоит 25 косарей, зато на вопрос как купить с карты сбера токены голос почемуто ответов 0 нормально вы двигаете господа
Поделитесь, пожалуйтса, заранее каким образом Вы планируете это имплементировать в рамках тонкого клиента. Может найдется способ это как-то стандартизировать
С радостью, я планирую добавить массив favorites в json_metadata. Где будут хранится id's постов. При клике по кнопке "добавить в закладку" будет обновляться аккаунт пользователя, и уже в разделе закладок будет доступна вся информация о постах (по id's постов подтягивает их в список).
Это не окончательное решение, но что будут использованы json_metadata это 100%.
Мне очень интересен вопрос стандартизации, чтобы мы все (разработчики) не мучались а получали удовольствие и были синхронизированы (:
P.S. Добавился к тебе в скайп.
Может лучше использовать кастомные операции? Я боюсь что json_metadata превратится в свалку. К тому же использование json_metadata не очень безопасно, т.к. фича в стороннем клиенте может затереть текущее состояние вместе со всей json_metadata.
Кстати, да. Как бороться за совместимость форматов? Если будет десяток клиентов к блокчейну, каждый будет свой формат придумывать, что-то чужое может попортить. Продумывался такой вопрос?
Начался раньше, чем Вы задумались :-) Вот
Полагаю скоро начнется обсуждение этого вопроса (:
А нельзя просто присоединиться к команде основного сайта?
Команда основного сайта, разрабатывает и дорабатывает свое решение и врят-ли рассматривает создание веб-клиента с 0. Я же для собственного опыта, развития и морального удовлетворения люблю начинать проекты с нолевой стадии, что дает как свои недостатки так и преимущества.
Почти все программисты любят писать с нуля )
Если это главная цель, то конечно да. А если цель сделать недостающие Голосу фичи, то разумней присоединиться.
Еще одна полезная штука - нативная поддержка системы голосований. Технически можно в блокчейн голоса людей записывать как комментарии, а на фронтенде парсить в виде голосования.
Вот я уже эксперементировал с этим делом, как-то так: https://vote.steemul.ru/
А, еще надо бы штука - подписываться на теги, а не только на людей. Правда со стороны блокчейна таких выборок нету пока. Это только свои костыли пилить...
Шикарный проект! Ждем релиза!
Очень надеюсь, вы доведете задуманное до релиза. Кстати, после этого, буквально в 2 клика вы сможете сделать аналогичный клиент для пользователей steemit.com. Вам и там наплюсуют с удовольствием)
Кстати, домен уже застолбили?
Домен застолбил, но для приличия сейчас делаю стартовую страницу с описанием проекта, чтобы уже в следующем отчете опубликовать ссылку.
Благодарю за идею, честно говоря об этом даже не думал.. (:
А может сделать 2 в 1? Для русской аудитории это будет блокчейн Голоса, для англ. - Steemit. Прям сделать как переключение языков сверху, флажками.
Там же всё одинаковое, кроме chain_id. И будете шпарить пресс-релизы в обе сети. Тут будете рубли за лайки собирать, там доллары) Посмотрим, кто больше налайкает, даже интересно.
xtar, очень много классных идей читаю от Вас.
И эта одна из-них, к счастью сейчас активная работа идет над более четкой спецификацией проекта, оцениваю силы и ресурсы, но такую фитчу с уверенностью можно и нужно реализовать.
Благо, за подобные предложения.
Только рад) Будут еще, напишу.
Чтобы не было путаницы с Golos.io и сходности до степени смешения, хорошо бы, чтобы имя Вашего проекта отличалось не только доменной зоной, но и наименованием.
@sheriff если Вы не в курсе, то вот Вам ссылка на Steem apps
Загляните на досуге, посмотрите сколько приложений используют корень Steem в своём названии.
Вам как "маркетологу" команды следовало бы это знать.
@kocherginji не слушайте этого дилетанта, в названи Вашего продукта очень органично смотрится слово голос, так как он работает с блокчейном ГОЛОС и это хорошо для брендирования.
@sheriff нет я так не думаю, я вижу, что Вы уже пожаловались вышестоящему командованию, но Вы не переживайте - Ваши дела, как и дела Вашего ментора @serejandmyself, от этого только красочней, так держать.
Именно флагуя мои комментарии Вы подтверждаете то, что я говорю о вашей "команде", потому что если уж сам "менеджер-проекта" снизошёл до флагов, то комментарий от этого только выигрывает и наполняется глубинными смыслами, как говорится: "на воре и шапка горит".
@terem, вы думаете я буду бегать с тряпкой по всему ГОЛОСу и подтирать ваши обделывания? Да, тьфу на вас! )
Своё мнение в истину не возводите, а так и пишите, что это ваше личное очень скромное имхо. И учитывая, сколько вы ходите по постам команды и постоянно прямым текстом гадите - очень паршивенькое.
Ахахахаха, @sheriff - это не мне, это Вам надо писать ИМХО, разделяя Ваше личное мнение когда у Вас бомбит,от мнения "команды".
То что написано от моего имени ИМХО, априори.
PS. Понабирают же балбесов по объявлениям.
Над этим мне наверное стоило подумать до анонса, но в целом аргументировал такое название тем, что: веб-клиент VGolose по сути отображает информацию всего блокчейна Голос, а не какой либо конкретный проект/тэг..
В целом же если сообщество будет настаивать - подберем новое имя (:
И важно еще, чтобы потом не бросили поддержку))
Для меня является приоритетом создать качественный продукт, с тестами и документацией, чтобы минимальный функционал мог доработать кто-угодно. Обычно такой отлаженный код, может проработать долго, но основной вопрос поддержки это, полагаю - добавление новых фитч, и обратная связь с пользователями. Мне это интересно, но не могу делать голословных обещаний, поэтому время покажет (:
оперативно. поддержу своими 4 копейками сг)
Благодарю Вас!
можно на ты, it's ok.
All right! (;
Да, этих возможностей в первую очередь не хватает. Избранные посты посылаю себе на почту))