Pull to refresh

Comments 87

Только хотел сам что-то подобное написать, а тут вы. Спасибо, отличная статья.
Очень интересно будет увидеть какие-либо результаты, особенно после попадания статьи на главную.
Сейчас выполняется порядка 5 задач в секунду — 2000000 переборов md5. Как пойдет спад, опубликую аватарки самых активных пользователей.
У меня диплом бакалавра такая штука была. Подбирала md5 по словарю. Работала правда на Flash+ PHP \MYSQL сервер(который гораздо быстрей бы все посчитал сам =) )
Ну это понятно. А если зафакторить сюда GPGPU, то затея с distributed JS вообще бессмысленна.
Вот только нагуглил. А это интересно!
Программы для вычислений, которые устанавливаются на клиентскую машину, имеют один немаловажный плюс — работа в самом минимальном приоритете. Т.е. они не мешают пользователю работать. JS не даст такой возможности, будет нагружать всю систему и вызывать потоки ненависти, закрепляя стойкий негативный рефлекс на словосочетание «распределенные вычисления». Подумайте, это стоит того?
У меня час уже в фоновой вкладке идут вычисления. Никакого дискомфорта замечено не было.
У меня MSI VX600, прямо скажем не самый мощный процессор. Тормозов не вижу.
Если проц двух головый вы лишних тормозов не заметите.
К тоже я уже зазеличу на моск покапал чтобы он размазывал выполнение через таймауты чтобы вообще не заметно было.
Так что скоро… соль хэшам не поможет
Зависит от конкретной реализации Workers API — в опере подлагивает, в хроме летает.
Уважаемый ТС, если найдете способ запустить на ECDC тот самый браузерный BitIcoin generator что вчера(?) на хабре представлялся — я не только себя озолочу, но и вашу лохматость :)
А ведь есть гипотетическая возможность вставлять такое на очень посещаемые сайты без ведома пользователей. Не всегда, периодически. Много разной выгоды можно с этого поиметь.
Пользоватли (нодов) таких систем получают два существенных минуса:
1) Более высокое эноргопотребление компьютера.
2) Более высокое тепловыделение.

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

PS: Я включаю у себя BOINC два раза в год: весной и осенью, когда холодает, а отопление еще/уже не работает. Кстати, результат весьма заметен.
А почему статистика сбрасывается:
Yours finished tasks: 1 (0.02% of total)
при перезагрузке старницы статистики?
Не удивили. Возможность была и раньше, IndexedDB и прочие плюшки тут не причем. Да, JS-движки нынче пошустрее, но опять же. Что сейчас хорошо так это эфеективные трансляторы других языков в JavaScript (Java, C#, F#). Но в принципе можно и без этого.

Помнится в свое время были популярны статьи про то, как это все делать на Java Applets, потом на Flash и Silverlight.

Да, и не забывайте, нужен ооочень популярный интернет-ресурс чтобы на него зашло (и на нем просидело) столько народу чтобы эта затея имела смысл.
Не смешивайте в одну кучу BOINC и SETI@home, Einstein@Home, Rosetta@home. Первое — инфраструктура, второе — конкретные вычислительные проекты, на этой инфраструктуре построенные.
Сижу с нетбука. В Firefox открыто одновременно порядка 20-25 вкладок. Переключение с одной на другую занимает секунд 5. Лагает SmoothWheel. Во время набора комментария периодически возникала задержка с вводом символов.

Уважаемый автор, я вас ненавижу.
В обед играемся в старенький КС.
Коллега жалуется что играть невозмножно и 4х ядерный интел коре тормозит.
Проблема была во флешке на странице finance.ua.
Вот авторов той флешки мы ненавидим. А это так себе.
Идея разумная, хоть и не новая, но вот в контексте javascript как-то странно звучит. Пусть ядро процессора и может обрабатывать 8GFLOPS, но сколько реально можно получить из js?

Да и в сравнении одна видяха игрового домашнего компьютера даст порядка 1 TFLOPS.

Когда сетевые технологии научатся адекватно использовать эти мощности можно будет строить подобную сеть.
UFO just landed and posted this here
Тоже об этом подумал, но как смотивировать пользователей? И в какое приложение завернуть чтоб прошло предмодерацию?
Голоса давать, народ будет доволен.
Дорого обходится будет, хотя если придумать систему начисления голосов если открытую страницу продержал 2-3 час 1 голос, надо подумать.
UFO just landed and posted this here
например, в качестве замены рекламных постов или для всевозможных розыгрышей через репост(кто подобрал пароль по хешу или нашел оптимальную конфигурацию белка — выиграл)
UFO just landed and posted this here
Вывод: друзья, оптимизируйте программы!
«Опера» 11.10, MacBook Air этого года, тормозит прокрутка этой страницы, если на другой странице считается ваша md5.
Тоже заметил тормоза в опере. Она видимо треды воркеров запускает на одном процессоре. Мб где-то в настройках контролируется, если нет, то надо писать багрепорт, ибо толку от воркерах на 1м процессоре.
Понятно.
Но, он не такой и «Высокооптимизированный алгоритм» для брутфорса.
1.начало:
a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936);

После инициации мд5 контекста, это всё константы, поэтому здесь лучше так:
a = md5_ff(x[i+0], 0xd76aa477)
2.
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
в конце — не надо постоянно прибавлять константы, лучше один раз вычесть.
3. раунд «ii» для не длинных паролей легко можно пре-вычесть.

Всё это должно хорошо повлиять на производительность, поскольку это вам не компилируемые языки.

Спасибо. Учту, если буду переделывать. Я взял алгоритм судя по тестам и немного изменил интерфейс.
В вышеперечисленных сетях чаще используются неиспользуемые и простаивавшие мощности. У большинства система нагружена всяким барахлом: разными фоновыми процессами, антивирусниками. Любая нагрузка будет несколько болезненно восприниматься неприятными подлагиваниями во время работы. Тот же фокс нагруженный плагинами и так торомзит, а если его еще пригрузить, будет ползать совсем.
Другое дело когда компьютер не используется, вместо скринсейвера будет что-то рассчитываться.
Кстати, не все браузеры умеют распараллеливать нагрузку по ядрам. Потому на данном этапе данная затея не очень приживется.

Тут надо использовать не мощности CPU, а мощности GPU, для вычисления хэшей некоторые видеокарты дадут 50-100 кратное приемущество перед обычным процессором. И по сути процессор остается свободным. Вот только JS не сможет получить доступ к GPU без дополнительных плагинов. Но сделать такой плагин реально. А есть его еще поставлять в комплекте с каким-то известным браузером…

Думаю будующее за чем-то подобным. Появятся плагины и сервисы, которые смогут аккумулировать неиспользованные ресурсы и при необходимости например, продавать другим участникам, или менять на другие ресурсы, на то же процессорное время в облаке для мгновенных вычислений. Думаю это вполне логично и более чем уверен что это станет продолжением развития облачной сферы, рассредоточив нагрузку не только между серверами, а и между частными людьми и коммерческими структурами.
Тут надо использовать не мощности CPU, а мощности GPU, для вычисления хэшей некоторые видеокарты дадут 50-100 кратное приемущество перед обычным процессором.
Безусловно, с силой NaCl мы и не такие цифры сможем выжать. Проблема в том, что не все пользователи будут ставить какие-то подозрительно полезные плагины. Охват аудитории немаловажен.
Стоп, а NaCl поддерживает GPGPU?
Не уверен, что поддерживает, но у него все ещё впереди.
UFO just landed and posted this here
И не надо ставить никакие плагины, Khronos уже разрабатывает стандарт WebCL.
у меня шкурный интерес: чего посчитать можно с практической пользой? просто так мд5 хэши перебирать неинтересно.
имею: 1 лям в сутки посетителей на сайтах, средняя время сессии 5-10 минут.
или это мелкие объемы?
Напишите алгоритм генерации хешей в сети bitcoin и вполне вероятно, что вы сможете подзаработать.
Хотя я несанкционированное использование мощностей и не приветствую.
Как было много написано красивых фраз про просчет свертываемости белков — а свели все к взлому md5 да и еще имейлы собираете.
Email указывать совсем не обязательно, кстати.
Вы можете использовать любой email или любое имя, они используются для ведение вашей статистики — вашего вклада в объем вычислений (хранятся в виде md5 хэша)
Код открыт, вы можете посмотреть как я ловко сплавляю md5 хэши от email'ов злым спамерам :)
UFO just landed and posted this here
Вполне возможно, проблема в том будут ли их устанавливать. Получается аналогичная ситуация как с клиентами вычислительных сетей.
UFO just landed and posted this here
Пока я ничего не предполагаю. Встроить какой-то фрэйм на свой сайт, понятно дело, просто так ни кто не даст. Буду стараться продвинуть свою разработку.
Не забывайте только, что выбросы углекислоты вырастут пропорционально росту используемой вычислительной мощности :)
Что идет на пользу растениям.
Лучше бы что-нибудь полезное придумали, чем пароли подбирать, например, как World Community Grid.
Интересно посмотреть сколько людей «компов» считает с тобой прямо сейчас задачу
И производительность, чтоб письками помериться.
Потрясающая статья!
С упоением перечитал от слова до слова! Спасибо автору!
А как защититься от «вредителей», т.е тех, кто по каким-либо причинам будут слать на сервер заведомо неправильные результаты расчетов?
Пока вопрос о защите не ставился(шанс, что нам испортят малину в этой задаче стремится к нулю), но, проблема, безусловно, актуальная.
Как было рассчитано AMD Athlon 64 2,211 ГГц у каждого пользователя?
AMD Athlon 64 — процессор 2003 года, думаю, сейчас у каждого стоит не хуже такого.
Гм. Вы забыли, что есть огромное количество мобильных устройств. Там процессоры проще. Куча нетбуков, где мощности меньше.
Ну и забыли многих пользователей, особенно конторских, где компьютеры не меняют, потому что появилась новая модель. Меняют, когда работать уже невозможно и появились новые требования для программ.
У меня дома два компьютера, один Athlon XP 2 ГГц, а второй Celeron 1.83 ГГц. И этих мощностей точно хватает для чтения сайтов.
Я брал в расчет только пользователей интернет с ПК (хотя я не уверен, что цифра 2ккк описывает только их). Не хочу заставлять пользователей мобильных устройств страдать (особой выгоды с них все равно не получить): 1н слабый процессор, затратные по батарейке вычисления, да и нет подходящих технологий (нет Воркеров, ибо 1 процессор).
Насчет процессора. Точных данных у меня нет. Я прикинул, что сейчас каждый домашний ПК имеет что-то в районе Атлона 64 есть слабее есть производительней, в среднем же будет в районе Атлона 64. Буду рад если вы покажете точные сведения.
Прикинуть какое количество пользователей появляется в интернете ежегодно можно. Из этого можно сделать вывод, что они недавно купили компьютер. То есть, чем более старый пользователь, тем больше шансов, что у него старый компьютер. Как-то так.
Возможно. зависит ещё от возраста и профессии. ИТ и молодые люди чаще меняют ПК (например, я за 7 лет поменял 3 раза — флопсы возрасли раз в 5).
Мне почему-то кажется, что восьмисимвольный пароль с алфавитом в 96 символов, это 8 в 96 степени, а не наоборот.
Блин, вы мне мозг сломали. Все правильно…
А как бы вы реализовали распараллеливание задачи поиска коллизий для SHA-1?
Можно ли такую задачу эффективно решать описанным подходом?
Не думал над этим вопросом. Полный перебор — безусловно, не эффективный метод он займет 2160 операций, но есть алгоритмы нахождения за 280-63 операций.
Интересно было бы запустить bellard.org/jslinux/ в этаком «браузерном облаке», но проект пока закрытый, а практической пользы ноль.
не прокатит. проще сделать кластер из мощных компьютеров, который будет принадлежать тебе, либо folding@home систему — добровольная установка, чем вот так по крупицам делать нестабильную, рассчитанную на огромную популярность и траффик систему.
вот систему вычислений по типу торент скачивания интересно было бы увидеть(+последов. выч-ия в том числе)
Как то странно считается статистика, было 0.05% 145 задач выполненных, теперь 0.04% 139 задач, поначалу думал показалось, но теперь явно заметна такая закономерность.
ASUS? Окупаются ли ваши вложения в 180000р?
На данный момент прошло 13 суток с момента запуска. Намайнили около 25% в фантиках по текущему курсе от 10 килобаксов инвестиций. Запустили бы раньше — было бы лучше )
Хм, окупаемость 2-3 месяца (с учетом роста сложности) очень не плохо. Плохо, что майнинг это гонка мощностей и доход будет только падать.
Можно накупить крутых мощностей, отбить, а мощности ведь останутся.
А где можно найти скажем пароль для md5 хеша?

Уже можно пользоваться данным которые сгенерированы?
Они не сохраняются. Отмечается лишь тот факт, что в таком-то блоке есть или нет пароля.
nodester может тупить. Сейчас, например, работает. В любом случае там демо пример. Вы можете скачать исходники и поднять свой сервер.
После нескольких падений nodester мне вскоре это надоело(да и посещаемость стала падать), а перевести на другую платформу не хватило энтузиазма. За 3 дня хабраэффекта перебрали ок 1%.
Интересно было бы использовать вычислительные мощности в качестве «ресурсовой валюты» наряду с распределенным хранилищем и сетевым каналом.
Чтобы можно было на бирже менять по плавающим курсам между собой и с «валютами внимания»:
-активными: игровыми, оценочными(всевозможные лайки, оценки фильмов, роликов, качества сайтов(WoT) и пр.)
-пассивными: просмотр рекламы

В качестве меры внимания предлагаю концентрацию внимания: отношение между степенью и объемом. Индикатором степени внимания может быть, например, изменение диаметра зрачка. Объем внимания количество элементов на которых сосредоточен пользователь(составляет 3-4 элемента, максимум 6).

Тогда можно было справедливо оценить объем вычислений, эквивалентный просмотру рекламы.
Sign up to leave a comment.

Articles