Про 200 webpack-плагінів для перформансу на конференції JavaScript fwdays'20 | 14 березня
×Закрыть

Децентрализованный мессенджер

Как известно, спецслужбы, корпорации, сотовые операторы и прочие воплощения Большого Брата следят за тобой, анонимус^Wдоучанин, и читают твою открытую переписку. И давно пора бы положить этому конец. Путём разработки свободного программного обеспечения, использующего стойкую криптографию и не зависящего от какого-либо центра управления.

В связи с этим хочу представить общественности свой проект, продукт неспешной разработки в течение последних 11 лет.

picapica.im

Pica Pica Messenger — проект свободного мессенджера, распространяющийся под лицензией GNU GPLv3. Состоит из двух компонентов, pica-client и pica-node. pica-client — клиентское приложение, написанное с использованием С++, Qt, sqlite и OpenSSL.
pica-node — это серверный компонент, который может быть установлен добровольцами на своих компьютерах (приблизительно как нода Tor), он обеспечивает связность сети, поиск участников, находящихся онлайн и соединение между ними, если оба собеседника находятся за NAT-ом. Собеседники также могут соединиться напрямую, предварительно обменявшись информацией через pica-node. Общение происходит по защищённому соединению, обеспеченному протоколом TLS 1.2. В качестве адреса используется SHA224 хэш от самоподписанного TLS сертификата, который выступает в роли учётной записи. Использование такого вида адреса обусловлено децентрализованностью, в условиях которой сложно обеспечить уникальность человекочитаемых идентификаторов. Создание аккаунта представляет собой процедуру генерации пары ключей RSA, создание самоподписанного сертификата X.509v3 и вычисление хэша от этого сертификата.

Бинарные сборки Pica Pica доступны для Gentoo, Ubuntu 16.04 и Ubuntu 18.04, Windows и OS X. Разработка мобильного приложения для Android планируется в ближайшем будущем.

Конструктивная критика, финансовые пожертвования, участие в разработке и тестировании всячески приветствуются :)

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

лучший децентр месенджер это емейл

Детское порно убивает идею свободного общения

Дроны убивают не_легализацию наркотиков

Дитяче порно вбиває тероризм і наркотики :|

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

школьниц разглядывать, а разве нужно что-то еще?)

зачем мне с вами делиться школьницами )

ну, чтобы у вас в этом революционном продукте завелся хоть кто-то лол)

тогда приводите школьниц, я ж не против )

Не смотрел, но судя по описанию это не очень взлетит.
Есть несколько похожих проектов, например RetroShare.
Ну или старый добрый XMPP (Jabber) с федерацией. Wire Messanger тоже в копилку. В ZeroNet тоже есть месанджинг.
Проблем тут много, но основные:
1. Ноды поднимать никто не горит желанием.
2. Клиенты — без мобильного клиента под iOS он сразу никому не нужен. А ты поди попробуй пропихнуть что-то такое p2p в апстор. Там же тебя обяжут например банить порнуху.
3. Маркетинг — не важно какой классный у тебя протокол, ты попробуй сначала юзеров сюда загнать. Польза сети квадратична количеству её участников.

Ну а технически: можно было не писать свой клиент а сделать плагин для Pidgin и исходники на гитхаб закинуть и багтрекер туда же

кстати в телеге есть канал любителей такого, может они оценят
t.me/distributed

Клиенты — без мобильного клиента под iOS он сразу никому не нужен.

Там главная фишка в том, что написан на C++ под Qt, и всё пофиг.

выпущена версия 0.7.1
теперь клиент под Windows можно запускать на процессорах древнее поколения Intel Haswell :)

groups.google.com/...​a-development/e9eF0DCx6lc

./configure падає з configure: error: „libssl from OpenSSL package not found”

Хотілось би щось на зразок
—with-openssl=../openssl-1.1.0h

openssl 1.1.0 пока не поддерживается, нужно собирать с openssl-1.0.2r

а з яким ключем?

Отдельный ключ не нужен, openssl — это безусловная зависимость, без неё работать не будет. Ключи —with-foo, —without-foo делаются для опциональных зависимостей.

Нужно ставить -dev пакет с заголовочными файлами (в последних убунтах это libssl1.0-dev, нужно ставить вместо libssl-dev, который для версии 1.1.0), либо если openssl компилируется отдельно, нужно указывать пути явно через CPPFLAGS и LDFLAGS

./configure CPPFLAGS="-I/path/to/openssl/include" LDFLAGS="-L/path/to/openssl/lib"

Ты бы версию указывал, которая нужна. Как это в автотулах делать, я не знаю, не люблю их. В cmake элементарно.

Установил виндовую сборку, под Win10, запустил «pica-client.exe», и... ничего не происходит. Окно для создания аккаунта, как написано в документации — не появляется. Вообще ничего не появляется, логов никаких не нашёл. Что я делаю не так?

А какая конкретно версия Win10? В списках процессов pica-client нет?

Windows 10 Pro, v1803 (сборка 17134.472)
В списке процессов прога не появляется, похоже происходит какой-то фейл сразу же после загрузки. Это ничего, что в папке с прогой файл настроек называется «openssl.cnf», вместо «openssl.cfg»? Хотя переименование эффекта не дало. Ещё кстати у тебя там иконка 32×32, лучше бы сделал 256×256 с пинговым оверлеем.

Это ничего, что в папке с прогой файл настроек называется «openssl.cnf», вместо «openssl.cfg»?

Так и должно быть.

Хотя переименование эффекта не дало.

o_O не, ну наверное я бы сам заметил, если бы это было проблемой :) У других на Win10 всё работает. У OpenSSL просто такое название конфига по дефолту.

В общем, надо под отладчиком запускать и смотреть, в чём проблема. Или Sysinternals ProcessMonitor-ом смотреть, что там творится.

При первом запуске в домашней директории создаётся директория .pica-client/ , в ней SQLite база и ключи от аккаунтов хранятся. Она присутствует? На винде это обычно в C:\Users\username\.pica-client

да, есть один файл pica-client.sqlite, 48 kb

А на каком процессоре запускается? :)

Я тут протестировал на одном немного древнем компе под виндой, при запуске программа падает с исключением, Illegal instruction — SHLX, оказывается Intel добавила новый набор инструкций BMI2, доступно начиная с семейства Haswell.

Скорей всего причина эта же. Придётся заново пересобирать с другими флагами :(

Просто ограничь флагами при сборке набор команд. Выбери что-то старенькое.

Это понятно. Кто мог подумать, что Intel-у приспичит в 32 битный набор инструкций ещё что-то новое добавлять.

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

А на каком процессоре запускается? :)

Core i7, памяти достаточно. Все инструкции — поддерживаются, включая AVX. У тебя подход как бы немного древний, начиная с того, что прога скомпилена под x86, а не под x64. Если скомпилил под x86, тогда как раз и нужно ориентироваться либо на древнее железо, соответственно на древнюю венду. Либо на планшеты с урезанными атомами. И того и другого вообще очень мало. Кроме того, прога заточена под Qt, которая устарела ещё лет 15 назад. На дворе сейчас 2019 год.

Кроме того, прога заточена под Qt, которая устарела ещё лет 15 назад. На дворе сейчас 2019 год.

Надо же, а разработчики Qt об этом не знают, новые версии выпускают :)

Надо же, а разработчики Qt об этом не знают, новые версии выпускают :)

Вот ты стартанул проект в 2007 году вроде бы. Я в этом 2007 году пилил один проект на джаве под GWT. В 2007 году GWT была передовой многообещающей прорывной технологией, которая позволяла делать полнофункциональное UI под веб такое же, как в десктопных приложениях. С тех пор GWT по ряду причин уже морально устарела, однако сам принцип получил распространение, развивается, и ajax на сегодняшний день лежит в основе практически любых технологий. Какое GWT c аяксом имеет отношение к Qt? Да никакого, это знаковое событие, означающее появление принципиально нового поколения и подхода в разработке. Понимаешь, сменилось поколение, так же как в своё время разработка консольных приложений морально устарело вместе со всеми библиотеками для этого, и была вытеснена разработкой приложений под венду. Изменилась архитектура, изменились подходы в разработке, изменились принципы дистрибьюции.

Предлагаешь делать на электроне? :P

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

Core i7, памяти достаточно. Все инструкции — поддерживаются, включая AVX.

Core i7 были и до Haswell, какое конкретно поколение?

Вообще-то Qt живее всех живых, но наваять на электроне быстрее.
Вот только на электроне уже столько месенджеров наваяно и юзается, что новый без 900000$ на рекламу не взлетит.

На сегодня Matrix.org и его клиент Riot.im идут в правильном направлении.
Антон: имеется кроме Продукт ханта многие другие.
alternativeto.net
www.slant.co

Оно же на электроне! Как можно это добровольно ставить.
За ссылки спасибо, посмотрю

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

Вам электрон нужен или функционал? Какая разница на чем, если он удовлетворяет нужды.

Такая же, как возить цемент на камазе или мерседесе.

Так а разница если свою функцию выполняет? Камаз это проблема разработчиков.

И топлива жрет дохрена, а мне нужно-то только 3 кг перевезти.

Это проблема перевозчика

Коли юзер ставить ап і той тупить вдвічі більше, бо розробнику захотілося па моднаму зробити, то це ніби як проблема розробника, але страждає при цьому користувач.

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

Користувача можна привчити до низькосортного продукту. Так як це є з масмаркетовською їжею, пивом, сирами.

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

Навіщо доказувати що річ яка тормозить є поганою? Я просто пояснюю що не розумію навіщо погіршувати якість вихлопу новомодною хернею бо хіпстерам так хочеться? Але я не здивуюся якщо це маркетологи продадуть як пакращення.

Ладно, придется видно таки влезть в этот спор, давайте по порядку, почему вы решили что продукт продукт который уже 2 года на рынке, если верить статистике нпм, за последнюю неделю он был использован 283 279 раз, а смотря на статистику npmtrends мы видим стабильный рост последние 2 года
www.npmtrends.com/react-native.

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

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

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

мы видим стабильный рост последние 2 года

Js істерія вона така. А маркетинг відділи у великих дядь добре працюють в будь якому разі.

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

Насчет JS истерии, Node.js, а этом году 20 лет, ExpressJS уже больше 15 лет, Angular1 вышел более 10 лет назад, React более 5 лет.
Это не истерия а вытеснение старых решений новыми, конечно старые разработчики при этом активно сопротивляются.

Не, с JS сейчас и последние 5 лет как раз истерия.
Это вполне себе приличный инструмент для своих задач. Но его суют туда, где он не подходит.

Например, куда его суют, где ему не место?

Почти все десктопные приложения — он там нафиг не нужен.

Слишком тяжел. И из-за тяжести в нем много багов.
Количество багов — это всегда процент от количества кода.
Ну и из-за тяжести тормознут.
Вот тебе пример поделия Слак. Если работаешь с GPU памятью, то он помирает. Вот нафига ему GPU.

Ну и если у ТС появятся звонки, конференции, шаринг экрана, то однозначно попробую его продукт. Но ТС на разработку денег никто не дал, так что с ожиданием как повезет.

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

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

а ТСу конечно крепких нервов и удачи немножко.

Я тебе пишу с точки зрения пользователя, а не программиста или менеджера.

С точки зрения пользователя, включаю, запускается, работает. Знать не знаю что там внутри какой-то электрон.

Не так. Пользователь часто не хочет покупать дороже комп по причине того, что программу стали тяжелые.
У меня вот 32 гига, но они для математики и матлаба, а не для электронов и т.п.
Маркетологи, конечно стараются и разводят пользователей, но не так быстро это получается, как многим бы хотелось.

включаю, запускается, работает

Это корпоративный пользователь на корпоративном железе.

Виктор, весь этот спор начался не из-за железа, не из-за каких то багов, а от того что кто-то категорически зарезал «раз электрон, значит говно», без уточнения задач, железа, технологий, а кто-то с ним согласился.

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

Ну есть и есть. Мне он не нравиться, как пользователю поделий на нем, причем не пользоваться им не могу (по сути меня заставили — это тоже добавляет негатива к электрону).

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

Специалист уже не человек?

З.Ы.И таки стоит.

нет, специалист не человек, специалист в первую очередь специалист. Когда специалист говорит о своей работе с позиции человеческих слабостей, он уже человек, как и любой прохожий с улицы, в этот момент он не специалист.

А вот тут ты не прав. Он таки человек.

Классический вопрос, эту ситуацию кто-то давно уже описывал на доу, вопрос на собеседовании топ менеджера крупного холдинга, «ваш ребенок попал под машину, у вас встреча, куда поедите, на встречу или к ребенку».

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

Кому фантазии, а как вашему заказчику, когда завалиться проект от разраба которому «просто захотелось\незахотелось», По вашему это нормально когда эмоции преобладают над логикой в рабочем процессе?

Кому фантазии, а как вашему заказчику, когда завалиться проект от разраба которому «просто захотелось\незахотелось»

Не завалится по нескольким причинам. Работа менеджмента и таки из всего стада инструментов почти все таки как-то рабочие.
Если же проект заваливается из-за разраба, то это говорит о том, что менеджмент этого разраба нужно нахер выгонять. Один раз, будучи мелким менеджером я так подставил вышестоящих (точнее я не стал им мешать зафейлится) — жопа у них долго после болела.

По вашему это нормально когда эмоции преобладают над логикой в рабочем процессе?

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

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

а аналитика это развлечение не более? тут могу только в голос посмеяться, скинуть шутку нашему сеошнику что ли

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

Это глупо. В 99.9% случаев — это файл менеджера. И в 0.1% разраб — клиент дурдома. Да, за 25 лет я два раза таких встречал. Они попадали в дурку с диагнозами шизофрения и подобными. Со всеми остальными разрабами можно всё наладить, или в случае личной неприязни уволить.

а аналитика это развлечение не более? тут могу только в голос посмеяться, скинуть шутку нашему сеошнику что ли

Он меня поймет. Но тебе скажет — как так, низзя.

Окей, как насчет одного из создателей и разработчика HTML Academy, если не ошибаюсь выступление называлось «Как я перестал верить технологиям», могу ошибаться, давно было, где он приводит пример как не завалил чуть весь проект HTML Academy именно потому что глаза горели и хотелось сделать круто

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

Первое — «аргумент блондинки».
Второе — совсем из другой области.

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

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

Таки да, Riot.im к сожалению на электроне, и конечно вся Матрикс-систем не такая шустрая как хотелось бы. Есть и другие клиенты на GO, C++ итд. но они не такие функциональные.

Разработчики платформы для децентрализованного обмена сообщениями Matrix объявили об экстренном отключении серверов Matrix.org и Riot.im (основной клиент Matrix) в связи со взломом инфраструктуры проекта
www.opennet.ru/...​nnews/art.shtml?num=50501

Чѣмъ лучше Jami (бывш. GNU Ring)?

Намедни пробовал с адроида на моб.огрызок этот Jami. Результат теста — удалили апп оба. Возможно с десктопа работает но без рабочей мобильной версии он не нужен. А вот риот работает на всем.

Чим це краще Delta.Chat? Працює поверх перевіреного мільйон разів imap + gpg
Не залежить ні від чого — підняв свій поштовий сервер — і вуаля.
Якщо у співрозмовника немає клієнта — то прочитає як звичайну пошту.

Не залежить ні від чого — підняв свій поштовий сервер — і вуаля.

почта не децентрализованная, почта федеративная. Если вывести из строя почтовый сервер, разделегировать домен и т.д., то на конкретный почтовый адрес больше никто не сможет написать. То же самое верно для Jabber/XMPP. У Pica Pica другая концепция, клиент не привязан к конкретной ноде, может использовать для связи любую доступную в данный момент ноду.

Хто заважає відправляти не на домен, а на ip? Для чата вистачить.

Мова йде не просто про чат, а про секурний і надійний чат.

Ну так а чим пошта + GPG буде несекурною?

1. Віправник-адресат відкриті. Закрите лише тіло мессаги. При бажанні завжди можна застосувати термокриптоаналізатора з передбачуваним результатом.

2. Ідентифікатори ненадійні. Емейли залежать від ДНС, який сам не дуже надійний.

Для секурності потрібно приховати одночасно:
1. тіла месаг
2. відправника-отримувача
3. сам факт комунікації
4. здатність особи використовувать безпечний зв’язок

— О, пацан, у тебя установлен «JBond» v0.0.7.11_2, давай, сам рассказывай, пока мы термокриптоанализатор не достали...

Нібито можна налаштувати postfix відправляти листи через tor, тож більшість проблем зникають
github.com/...​mx/blob/master/postfix.md

Це не відміняє інших вимог.

все остальные — ерунда
почта работает без днс, с секюрными идентификаторами(смотрим мейлисты) и так далее.
вопрос организации процесса

Chat
imap

dafuq

новий рівень красноглазія просто

Це щось типу Pidgin?
Якось мав справу з ним, жахлива штука

Подивився UI. Ні дядь, таке тільки для задротів проканає. Найми UI/UX-ера, хай тобі шось більш приємне для очей намалює.

Наскальная живопись — олдскул, а это..... )))

Є працюючий https://tox.chat/ Не ідеальний, з проблемами, але потроху розвивається https://blog.tox.chat/

Разработчики Tox изобрели собственный криптографический протокол, и это его главный фатальный недостаток. Он не проходил аудит безопасности, в отличие от TLS, который существует много лет, пережил несколько версий, обнаруженных уязвимостей и их исправлений.

Оно может быть сколь угодно плох, но он работает, имеет андроид клиент, и минимальное community (на том же reddit — около 2-3 тысяч)

я за телеграм, Паша не должен сливать ключи ФСБ

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

На продуктхант зразу давай.

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

продукт неспешной разработки в течение последних 11 лет.

Сколько-сколько???
Нет звонков, нет видео, нет конференций.

Сказано же — неспешной. Звонки и видео в планах есть, когда руки дойдут.

забил Ваш месс. в фавориты, как только звонки и видио будут — попробую. А пока риот.им

на самом деле большой брат следит за мета-данными, и вопрос их маскировки до сих пор актуален: vuvuzela.io

Оно на сайтике предлагает зарегистрироваться по e-mail-у, как-то не похоже на отсутствие сбора метаданных.

Но вообще да, скрытие метаданных это сложная тема. Как один из возможных вариантов решения, все участники могут непрерывно слать потоки зашифрованного мусора, случайных последовательностей байтов. С заданным фиксированным битрейтом и таймингами. А когда нужно передать сообщение, часть мусора заменяется полезной нагрузкой. Со стороны при мониторинге трафика ничего не меняется, обнаружить факт передачи становится затруднительно.

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

Ну это лучше чем номер телефона. И смотря как зарегистрирован имейл.

Можно взять любой мессенджер, да тотже слак и прикрутить к нему gpg

Можно. Можно и через фейсбук зашифрованные с помощью PGP тексты копипастить. Только кто так делает

Проще плагин написать для браузера который это будет делать

Теж за українську версію сайту!

Если кто-то сделает украинскую версию сайта, с удовольствием её добавлю. К сожалению, я не нэйтив спикер украинского.

Гит репы с контентом сайта нету. Могу дать аккаунт wordpress-а, с правами на редактирование

Зачем приват? Ставьте мессенджер и в месенджере ему пишите. Или зачем эта фигня тогда?

Подписаться на комментарии