Гадаю, тут мені час сказати слово :)
Справа в тому, що десь півроку тому ми з ВЗ вже пробували попрацювати над «нульовим» етапом розробки цієї соц.мережі, тобто над прототипом.
Задача прототипу дуже проста: просто мати можливіть помацати чорновий варіянт зовнішнього скелету системи. Інколи ця можливість змінює думку людини про те, що вона хоче від конкретної частини системи -- це плюс.
З технічної точки зору прототип настільки простий, що його не шкода викинути в будь-який момент.
У нас навіть був план простенькй робіт (roadmap), який ми успішно зафакапили. Здебільшого з моєї вини, хоча й ВЗ мене не так щоб дуже підганяв :))
Але зацікавлення нікуди не зникло, тож ось чим я можу поділитися.
В мене на сервері крутиться сам сайт-прототип, там є доступ через SVN, навіть свій Trac (це відкрита система для керування проектами http://trac.edgewall.org) прикручений для вікі та квитків-тікетів.
Сам прототип я відкрив для публічного доступу, нічого там секретного немає, фактично там майже немає нічого взагалі http://citizentools.xantea.net/
Trac зараз трішки поломаний, як відремонтую, теж планую відкрити -- щоб дати можливість всім бажаючим долучитися.
SVN в ідеалі треба замінити на Git щоб спростити можливість роботи багатьох людей, можливо навіть опублікувати код на Github -- це частина ідеї з прозорістю, яка мені дуже подобається.
Загалом, технічних ідей -- море. Зокрема, зробити систему розподіленою (p2p), як торрент. Таким чином вирішаться дві проблеми: (1) резервування даних для надійності; (2) захист від зовнішніх атак (DDoS та інших).
Гадаю, що все це можна використати з користю... Принаймні, вже якийсь початок.
Якщо є зацікавлення, я не проти бути доданим до команди блогу і публікувати свої думки щодо технічної сторони розробки.
Зрештою, я досить багато спілкувався з ВЗ і «витягнув» з нього чимало технічних деталей (це окрема нелегка частина роботи програмістів/менеджерів).
Звісно, я далеко не гуру веб-програмування, але певний досвід маю. Сама суть проекту дозволяє сподіватися, що більш досвідчені колеги будуть допомагати з порадами та критикою.
2 - ponedilok - дайте Ваш мейл и я пришлю инвайт (для соавторства в блоге). Могли бы Вы расписать тут в комментариях, в чём Ваше видение такой сети совпадает, а в чём не совпадает с описанным выше? Ещё лучше было бы, если бы Вы прокомментировали по пунктам.
Да, какие соображения насчёт движка БД и насчёт языка программирования? Надо выбрать бесплатные, и такие, что будут поддерживаться и через много лет, + достаточно популярные, чтобы в разработке могло участвовать как можно больше людей. Я предлагаю для начала MySQL и Java, если у кого есть альтернативные варианты - пердлагайте.
Спробуйте надіслати, скриня тут http://www.google.com/recaptcha/mailhide/d?k=01ioAs23u3OYgx1aVHRDpfGg==&c=566NyuIupYmC-P3r2f40fJQLqSIzwYXQICByA9Z49ZE=
Мабуть я вчора відчув великий ентузіазм, що справа знову оживає, сьогодні вже дещо спокійніше пробую аналізувати що саме я можу запропонувати... Спробую прокоментувати пізніше увечері.
а скажите мне, как неспециалисту - если у вас данные открыты, то как мы будем номера банковских карточек сохранять?))
>а скажите мне, как неспециалисту - если у вас данные открыты, то как мы будем номера банковских карточек сохранять?))
Приципово правильне зауваження. В будь-якому разі, конфіденційні дані існуватимуть, їх треба буде захищати.
Так як ми на етапі «фантазування», то я дозволю собі наступну ідею: задача надійності вирішується реплікацією даних по вузлах мережі, а для збереження конфіденційності ця реплікація має бути покроковою.
Вже була така система, здається для бекапів. Я постараюсь згадати та розібратися як вони це зробили.
Принцип роботи: мої дані (мають дві частини: публічну та приватну) шифруються та розбиваються на блоки, які знову шифруються. Ці блоки розподіляються по випадкових вузлах мережі. Публічна частина знаходиться в кожному блоці, приватна частина потребує мінімум Х блоків у наявності та ключів для розшифрування.
Технічна задача тут в розподіленні та наступній збірці приватних даних докупи.
Десь так, орієнтовно.
2 VZ - я думаю, нет надобности сохранять номера карточек. Номера карточек будут храниться в закрытых базах частных банков. Но я предлагаю, чтобы карточка была вторичным дополнением к аккаунтам вида vz...@bestbank.ua. То, что кто-то узнает номер Вашего аккаунта, не будет означать ничего плохого для Вас, так как воспользоваться им, зная только сам аккаунт, нельзя, можно лишь перечислить на него деньги или выставить счёт. Но и эти аккаунты далеко не обязательно хранить в главной базе.
карточки необходимы для регистрации в системе. Сейчас это своего рода электронный паспорт. Если человек зарегистрировал карточку, это гарантия того, что он не моб. Кроме того, они необходимы для осуществления платежей. Вообще говоря, возможность одно-двукликовых платежей непосредственно между участниками сети - это главное, что сейчас нужно.
2ponedilok классно, если бы можно было бы так сделать
2 - тут дело не в том, защищать данные или нет, вопрос "будет эта база открытой или нет" как бы не решён. если она будет закрытой, то она будет кем-то одним контролироваться, этот один и станет королём, раньше или позже. Если она будет абсолютно открытой, узурпировать её не удастся. Если она будет распределённой по тысячам компьютеров и зашифрованной, то скорость работы будет очень скверной, что поставит крест на всякой возможности её практического использования. Кроме того, что знают двое, знает и свинья, а доступ к данным всё равно надо будет предоставить некоему кругу лиц (иначе зачем их вообще хранить?) - надо будет дать доступ юристам, нотариусам, банкам (кредитная история), страховым компаниям и т.д. То есть, база будет секретная, но за бутылку знакомому нотариусу можно будет узнать всё что надо и про кого надо - как оно сейчас, например, и есть. То есть, надо будет определиться, какие данные про человека могут быть публичными, и хранить только их, и никакие другие.
@Jarizleifr Як мінімум, потрібна буде автентифікація... Навіть якщо це через Twitter/Google/OpenID -- треба буде зберегти якісь унікальні дані, що ідентифікуватимуть учасника. Оприлюднення цих даних неможливе принципово.
2 VZ - Как я говорил, можно вместо карточек сделать защищённые аккаунты, публикация которых не даст возможности красть с них деньги.
не пойдет. нужна максимальная простота, по крайней мере, на первом этапе
2 ponedilok - я уже думал про это. Это очень сложная и неоднозначная задача. Можно держать две базы - одну с публичными данными, одну только с паролями/ключами. Можно использовать одностороннее шифрование - то есть, алгоритм, по которому в одну сторону выполняется однозначное преобразование, а в другую - нет. Ну то есть, если у Вас пароль 12345 то таким преобразованием Вы можете получить "fd2sdf3sd4", но не будет алгоритма, чтобы из "fd2sdf3sd4" получить обратно 12345. А можно будет сделать и смс-аунтефикацию, Приватбанк вроде так делает в своей системе PrivatMoney.
Ну современная система платежей по карточкам совсем не "двухкликовая", а уж тем более между гражданами. Приём платежей по карточкам это довольно кровососущее дело даже для крупных продавцов. Потому и возникают всякие PayPal - по сути, надстройка над карточной системой.
Напишите, какая информация, по-вашему, должна храниться в базе, а какая не должна, что может быть публичным, а что не может. Это важно.
>ожно использовать одностороннее шифрование - то есть, алгоритм, по которому в одну сторону выполняется однозначное преобразование, а в другую - нет.
Так, це звичайна практика для паролів. Але вона обходиться доволі легко, якщо маєш на руках цей хеш: створюється величезна база хешів випадкових рядків, якщо ваш хеш у ній знайдений -- відповідний рядок спрацює як пароль.
>А можно будет сделать и смс-аунтефикацию, Приватбанк вроде так делает в своей системе PrivatMoney.
ПБ всюди її сує. Але у неї є суттєвий баґ: потрібно мати номер місцевого оператора з активним телефоном == закордонні користувачі йдуть лісом. Гадаю, це теж можна якось вирішити, тобто участь телефона як термінала це майже обов’язкова вимога часу (особливо, майбутнього, на який ми орієнтуємося).
>Але вона обходиться доволі легко, якщо маєш на руках цей хеш
Втім, є способи додаткового захисту. Тобто теоретично відкрита база паролів це можливо.
просто никто не ставил задачу перечисления денег между участниками сети. Пейпел вообще изначально под аукцион создавался. Есть разные системы, в том числе и простые, к примеру, клик-н-бай, практически одним кликом переводит деньги. Вот с этиим со всем и следует разобраться, а если таких готовых систем нет, то сделать самим)).
Jarizleifr> Что такое вообще социальная сеть?
Звісно, Facebook далеко не перша соц.мережа (перші з’явилися ще в середині 90-х), але в цілому з прив’язкою до функцій держави можна погодитися.
Jarizleifr> Какие функции будет включать в себя веб-государство?
Якщо взагалі йдеться про термін «соціальна мережа», то її метою є побудова соціальних графів.
У нас задача створити інструмент для спільного фінансування публічних проектів та спільнот. Мережа тут буде лише інструментом для формування довіри до учасників, бо відображатиме історію діяльності («А успішно співпрацював з Б, у Б добра репутація, значить А теж можна довіряти»). Інститут репутації варто зробити формальним.
Скоріше це схоже на біржу проектів а ля odesk.com, тільки робота відбувається поза межами онлайну (можна й онлайн, але це не проблема і зараз), також відрізняє принципова відкритість системи.
Я пропоную розділити проект на два етапи:
1. Спрощена система. Веб-сайт монолітної архітектури (його порівняно легко розробити та підтримувати), мінімально необхідний набір функцій для початку діяльності. На цьому етапі необхідно обкатати ідеї системи та виробити методики захисту від проблем (шахрайства та ін.) -- цьому потрібно буде присвятити окреме обговорення.
2. Розширена система. Колишній єдиний вебсайт виконує інформаційні функції, фактична діяльність розподілена по вузлах системи. Вузлами можуть бути як веб-сайти, так і програми. Це задача іншого порядку складності, але вона має величезні переваги у надійності та захищеності. Очевидно, що якщо/коли система почне рости як Twitter колись, то без величезних інвестицій підтримувати стару архітектуру буде неможливо. Це тонкий момент.
Втілення другого етапу має бути проектом+спільнотою з першого. Фактично, це буде доказ ефективності системи.
Програма-максимум, це поступове перетягування системою на себе функцій держави.
З огляду на базовий принцип відкритості, розробку веб-сайту можна проводити як opensource продукт. У нас навіть назва вже була -- CitizenTools. Мені подобається.
Втім, головні труднощі будуть в іншому.
Я освіжив у пам’яті спілкування з ВЗ і пропоную спочатку розглянути кілька складних моментів, які ми не можемо оминути вже на першому етапі.
1. Організація грошової системи.
Все сказане в постах дуже правильно, але не реалістично в поточних українських реаліях.
Нам потрібна легальність та безпека транзакцій.
Але, наші банки (а) технологічно відсталі в плані онлайн-сервісів; (б) «обережні», якщо можна так сказати.
Я не уявляю як можна переконати якийсь банк впрягтися в усе це, щоб не навантажити користувачів чималими комісіями.
Найбільш технологічно просунутий банк -- Приват... Репутацію його всі добре знають. Надійності я б тут не очікував.
Тобто це буде дуже дорого і дуже геморно. Для початку системи перше смертельно, друге якось можна ще розрулити за допомогою зв’язків та вміння вести перемови.
2. Реєстрація, тобто оцей пункт:
Jarizleifr> Кто будет регистрировать новых пользователей-граждан государства?
Знову-таки, потрібно якось стартувати. Ну добре, спочатку зробити період тестування «для своїх», тільки за запрошеннями.
Але як домовитися з юристами, щоб вони приєдналися? Хто це буде оплачувати, та як це прив’яжеться до «реального» світу? Ця особа мусить мати можливість якось перевірити особу, чи не так? Це можна вже зараз робити легально?
Можливо, обіцяний тематичний пост пояснить це діло.
Jarizleifr> Да, какие соображения насчёт движка БД и насчёт языка программирования? ... Я предлагаю для начала MySQL и Java, если у кого есть альтернативные варианты - пердлагайте.
Якщо ми почнемо, то ми почнемо з макета-прототипа. Це можна зробити на чому завгодно, наприклад на PHP, який може редагувати навіть дитина.
Щодо розробки системи першої фази, то я би запропонував провести опитування серед інших програмістів-добровольців.
Але це майже напевне не буде Java, особисто я не настільки псих щоб робити на ній соц-мережу... та й будь-який веб-сайт взагалі, якщо замовник не корпорація чи банк з купою бабла. Особисто я працюю з екзотичною для нас технологією ColdFusion, тому ця опція теж мабуть відпадає.
Оптимальним буде обрати з трійки сучасних та достатньо популярних (щоб найти програмістів) технологій:
- Python (на Django, наприклад)
- Ruby (на Rails, мабуть)
- PHP (Symfony, CakePHP чи ще щось такого типу)
В дужках це фреймворки, must have для сучасної розробки.
База хай буде MySQL, це звичний для всих та добрий інструмент.
Обговорення технарів :(
Головне питання на поточний момент - хто буде користуватись цією системою *зараз*!?
Що в його повсякденному житті вона спростить, зробить легшим або взагалі можливим?
Чи набереться таких людей хоч сотня?
Без відповіді на це питання у нас вийде черговий пустий сайт, який нікому не потрібен.
>> VZ сказав...
просто никто не ставил задачу перечисления денег между участниками сети. Пейпел вообще изначально под аукцион создавался. Есть разные системы, в том числе и простые, к примеру, клик-н-бай, практически одним кликом переводит деньги. Вот с этиим со всем и следует разобраться, а если таких готовых систем нет, то сделать самим)).
- Упаси нас боже связываться с пейпал, я работаю с этой системой, мой сервис принимает платежи через них, они часто отменяют плдатежи просто так, иногда бывает, что ставят платёж на отмену, и сам хозяин аккаунта, заплативший мне, звонит им, и подтверждает, что платёж не мошеннический, и я с ними связываюсь, и всё равно отменяют. Причём отменить могут и через 3 месяца, когда все уже и забыли, что там кому за что платилось. Да и мошенничество через пейпал не редкость. Вам наплатят миллион с ворованных аккаунтов, а потом пейпал заберёт все деньги обратно :)
Я думаю, такой системы, как нам нужно, ещё не существует в природе, потому как они все создавались не для тех целей. Слишком уж анонимные и неконтролируемые системы типа биткоин плохи тем, что владелец аккаунта неиндентифицируем, да и они не связаны непосредственно с миром реальных денег, в Пейпал наоборот, слишком контролируем + это одна частная фирма-монополист, которая может поступать, как ей вздумается, например, украинцы не могут получать платежи в ней, только платить. Системы типа Вебмани и Либерти резерв - тоже связаны с миром реальных денег только через обменники, и представляют собой по сути, пузыри, ничем не обеспеченные и никак не контролируемые, в один прекрасный день могут сказать "вас нае**ли, расходитесь(С)". То есть, если нам нужна система под наши нужды, её придётся создать или выработать и распространить красивую идею, которую воплотит кто-то другой. Я пока ещё стою на своём мнении насчёт того, что такую систему надо делать с участием банков. И вот почему:
банки уже связаны с миром реальных денег. У них уже есть механизмы съёма и зачисления денег на карточки, есть кассы по приёму/выдаче налички. Уже есть отделы, что занимаются выявлением мошеннических операций. Как правило, пользователи банка идентифицированы. Вы даже можете не хранить собственно в самой системе какие-либо личные данные пользователя, поручив это банку, а система будет знать лишь банк и айди пользователя в нём. В случае выявления злоупотреблений банк уже будет раскрывать информацию пользователя. Банков много и они конкурируют между собой, то есть, заинтересованы предоставлять услугу качественно. Раз уж мы решили побыть в роли этаких демиургов будущего мира, мы ни в коем случае не должны создавать какие-либо системы, замкнутые на нас, а создавать поле для игры неограниченного числа независимых конкурирующих игроков. Я думаю, вполне реально задумать, создать, а возможно, даже и заинтересовать какие-то банки в такой открытой системе (открытой для вступления игроков-банков, ясно, что все данные будут храниться в закрытых базах банков-участников). На самом деле, тут не будет ничего нового, все эти идеи отработаны частично и в нынешней системе банковских счетов физлиц, и в межбанковской системе СЭП, и в Webmoney, и в PayPal, можно отовсюду взять хорошие идеи, и построить систему без их недостатков.
akhavr> Без відповіді на це питання у нас вийде черговий пустий сайт, який нікому не потрібен.
Дуже правильні питання, саме цього я чекав від колег. Власне, мої попередні коментарі якраз є намаганням повернути обговорення в практичну площину.
>> Follow us on twitter сказав...
>> Головне питання на поточний момент - хто буде користуватись цією системою *зараз*!?
>> Що в його повсякденному житті вона спростить, зробить легшим або взагалі можливим?
- Ну, мы все понимаем, что легко и быстро ничего не делается. Политики могут обещать людям, что после выборов пенсии быстро вырастут, все станут богатыми, а работать будет не надо. Мы ж понимаем, что нынешняя система зашла в тупик, жизнь общества и экономика постепенно приближаются к полному коллапсу. Какие-либо здравые идеи по улучшению ситуации в обществе и в элите вообще не обсуждаются. "Когда всё рухнет" - это вопрос времени, неблагодарное дело ставить прогнозы, может, рухнет в августе, а может, проскрипит ещё лет 5 каким-то чудом. Создать какие-то идеи и наработки, чтоб предложить обществу в момент, когда никто не будет понимать, что делать и как дальше жить - это уже немало. Возможно, какие-то политики пронюхают тут нишу, конъюнктуру, и возьмут эти идеи на вооружение.
Ну, допустим, общественный запрос на простую, быструю и надёжную систему платежей уже есть, существующие системы не удовлетворяют его в полной мере.
Юридическая система - возможно, когда она будет создана, она будет востребована для решения каких-то споров внутри корпораций, общин, сообществ, которые не желают обращаться за этой услугой к государству. Надо попробовать, думаю, рано или поздно это очень понадобится. (статью про своё видение такой системы я пока что "вынашиваю").
Идеи насчёт замены водительского удостоверения и талона техосмотра страховым полисом, по моему, достаточно хороши, чтоб предложить их лоббистам сраховых компаний и политикам. Система учёта прав собственности (например, на земельные участки и недвижимость, открытый реестр и кадастр) это тоже очень обсуждаемая тема и очень наболевший в украинском обществе вопрос.
2ponedilok
Не думаю, что это важный вопрос. "сколько будет человек" - никто этого не знает. Это предпринимательство. Инновация. соответственно, все риски налицо. Для меня этот вопрос не важен))О планируемой пользе я написал в другом посте
VZ> Не думаю, что это важный вопрос.
На жаль, це стандартна помилка починаючих інтернет-підприємців.
Знаєте, дуже багато приходять людей з ідеями нових чудових сервісів... Я роблю веб-сайти на замовлення 5 років, так от десь 8-9 з 10 розроблених сайтів просто не «злітають».
Дуже корисно хоча б уявляти хто потенційно буде користуватися в період після запуску. В ідеалі, знайти потенційних користувачів-тестерів уже зараз.
честно говоря, продолжаю считать, что это абсолютно неважно)) сайт некоммерческий, он может "выстрелить" бог знает когда, так что для меня этой проблемы нет.
Jarizleifr сказав..Возможно, какие-то политики пронюхают тут нишу, конъюнктуру, и возьмут эти идеи на вооружение.
вот этого надо всячески остерегаться, а любые поползновения политиков прекращать и гнать их поганой метлой. Политики в нашей версии не способны к реализации идей, зато хорошо способны к их использованию в своих целях. Так что пускай идут куда подальше.
Зауваження щодо технічної частини. Про опенсорс вже сказали, але це лише один елемент відкритості. Вважаю за потрібне не прив’язувати систему (принаймі, малу мережу) до якогось одного хостингу чи власника. Іншими словами, спочатку потрібно скласти відкриту специфікацію системи, яка би включала: набір сервісів, які надає система, клієнтський API, засоби взаємодії двох чи більше подібних систем між собою та ін. А вже потім писати свою реалізацію. Звісно, я розумію, що дай Бог, щоб воно хоча б в одному екземплярі більш-менш запрацювало, але це питання, як на мене, політичне.
дещо із критики:
архітектура:
- якась каша у вас. не буду критикувати в деталях....варіянт вирішення - entity based
тобто не існує взагалі мережі, є надмережа мереж (як інтернет сам по собі, складений із мікромереж) , наприклад entity - я, є частиною entity квартири, моя квартира #5 є частиною entity - дома #20 ну і далі. я можу входити в мережу через проміжні entity або напряму (або і так і так). будь яка entity може входити в мережу або ні. будь яка entity може входити в декілька мереж, якщо забажає
entity\мережі, що воно таке - пропоную три види - entity з землею, entity без землі, вільна entity. кожен визначає сам свій рівень. наприклад, я можу входити у домову entity ( яка є земельною), у айтішну (яка є "угрупованням") та сам по собі, як прихильник VZ :)
- друга частина entity - наявність атрибутів, тут знов 3 рівня - приватний(ну наприклад мій банківський рахунок\и), заявлений (ну я там кажу що у мене 2-є дітей), підтвердженний (юрістом (з мережі юристів :), що я маю 2-є дітей)
- і да, кожна людина має право мати будь яку кількість entity нижчого рівня, якщо забажає, в залежності від питань їй усе одне прийдеться підтверджувати той чи інший атрібут
ну і кожна entity колективного рівня може вимагати підтвержених атрибутів, наприклад, щоб долучитися до мережі дому\району\міста, я маю затвердити, що є квартировласником (мережа аузорізації\юристів тут у нагоді)
- гроші\гроші\гроші - третя частина entity це грошові відносини, тут два варіянти, обидва рівноцінні - працювати через одну із entity банкірів(які можна створити),
або платити напряму (картка, банк і все звичайне), але тут є проблема, ніхто у світі не вирішив проблему micropayments, дорого виходить, якщо платиш через мобілку 60%-70% забирає оператор....
конфігурація виходить наступна:
1. мінімальна entity, софтина така собі :
- приєднуватися до іншіх
- хранити атрібути (та посилання на верифікацію)
- вести баланс витрат
2. коллективна entity:
- під'єднувати інші
- вести реєстр
- вести бухгалтєрію
- приєднуватись до юридичних за верифікацією
- приєднуватись до фін за грошима
3. юридична спеціальна:
- центр авторизації
4. фінансова спеціальна:
- центр фін.розрахунків
еволюція\roadmap :
1. basic api систем (наприклад на базі http://thrift.apache.org/)
2. basic minimal\group levels
3. run its in real
4. test in live
5. refactoring
6. lawers\financial levels
...
>> не буду критикувати в деталях...
если есть желание, можете покритиковать
>> варіянт вирішення - entity based
не забывайте, наша главная задача - создать систему, готовую к применению простыми людьми, и нам надо будет объяснить людям, как оно работает, и колхознице, и пенсионеру, и шахтёру - так, чтоб им было понятно и чтобы хотя бы любопытно стало попробовать. Из вашего описания идеи я не совсем понял, где физически будут храниться данные про каждую entity? У кого будет право их изменять, администрировать, модерировать?
>> я можу входити у домову entity ( яка є земельною), у айтішну (яка є "угрупованням") та сам по собі, як прихильник VZ :)
- зачем республике 2.0 знать, что вы айтишник и сторонник идей VZ? Мы вроде как бы не конкурента Фейсбуку создаём.
>> підтвердженний (юрістом (з мережі юристів :), що я маю 2-є дітей)
Да-да, я так всё и предлагал - правом вносить данные в базу будут обладать юристы.
>> - гроші\гроші\гроші - третя частина entity це грошові відносини, тут два варіянти, обидва рівноцінні - працювати через одну із entity банкірів(які можна створити),
або платити напряму (картка, банк і все звичайне), але тут є проблема, ніхто у світі не вирішив проблему micropayments, дорого виходить, якщо платиш через мобілку 60%-70% забирає оператор....
- Я как бы написал отдельную статью на тему финансовой системы, http://democracy200.blogspot.com/2011/05/blog-post_4305.html, что можете сказать про это? СМС-платежи - тупиковая ветвь, имхо.
За идею с http://thrift.apache.org/ - огромное спасибо.
схоже я дещо дуже складну систему запропонував,
дуже важко буде імплементувати.
пропоную підійти з іншого боку - виберіть одну (одну !) мінімальну але
важливу функцію, яку можна реалізувати відносно швидко але
якісно, а потім вже можна йти далі
так буде простіше і результати будуть швидше.
2 архітектор
Ну, сложные вещи иногда просты и популярны в использовании, 99,9% телезрителей не смогут объяснить, как работает их телевизор.
>> пропоную підійти з іншого боку - виберіть одну (одну !) мінімальну але
важливу функцію, яку можна реалізувати відносно швидко але
якісно, а потім вже можна йти далі
Да так и будет, но некоторые фундаментальные вещи мы ещё для себя не уяснили.
Главное - где и как будут храниться данные, кто будет их владелец и как можно гарантировать их безопасность? Хакеры бесчинствуют, сервера ломаются, жёсткие диски выходят из строя. + человеческий фактор - если база по факту контролируется группой людей, рано или поздно к ним придёт искушение немного злоупотребить этим. Моя первая идея была сделать базу открытой - чтоб любой мог скачать себе копию, это решает проблему бекапа да и в случае подмены хакерами каких-то данных есть с чем сравнить и из чего восстановить. Но - от этой идеи мы отказались, нам ведь нужно хранить пароли, да и большинство пользователей не хотят выкладывать в общий доступ всю информацию про себя - хотят сами решать, что будет видно, а что нет.
ну тоді назад до складного :)
хоча, з точки зору розробки, неможливо усе спроектувати наперед, краще дозволити самій задачі вести куди їй потрібно...
так от, перед даними, дещо з теорії - будь яка подібна система повинна вирішувати декілька задач:
- аутентифікація - тобто чи є людина саме тою за кого себе видає, тут потрібні центри аутентифікації, які по наявним документам видають людині ключі (цифрові) які людина вже використовує далі (скоріш за все лише там де це потрібно, наприклад у голосуванні), центрів може бути декілька , ключів у людини може бути теж декілька, наприклад, на особу, на володіння майном та інші . логічно що ці центри також ведуть бази з цими даними, але у мінімізованому вигляді, тобто ключ ххх володіє майном таким то і таким-то , або вася пупкін має ключ yyy. крім того ведуть логи доступу до цієї інфи, тобто, хто хто і коли звертався за реверсом (визначити кому належить ключ xxx, та інше) ну і діють згідно правил, наприклад сервер володарів майна дома може запитати чи є ключ ххх володарем майна, а якась стороння особа - ні. скоріше за все центри повинні бути різними, тобто будь який сервер зберігає лише частку інфи, і при компрометації приватність залишається як є.
- авторизація - ключами підписують будь яку операцію ініційовану людиною, тому завжди можна підтвердити (через центр аутентифікації) що саме ця людина (цей ідентифікатор) ініціював цю операцію
ну і далі 150 сторінок як мінімум , головне що дані є і їх немає одночасно, кожний сервер зберігає лише частку, яка йому потрібна, і отримує іншу інфу, якщо потрібно з сторонніх серверів, тому будь яка особа з деструктивними намірами майже не має шансів отримати всю інформацію по людині (наприклад), але сервери на базі довіри отримують частки потрібні для роботи
ну от щось таке виходить у складному варіанті, хоча я дещо невпевнений що у вас є достатньо ресурсів щоб це зробити
>> - аутентифікація - тобто чи є людина саме тою за кого себе видає, тут потрібні центри аутентифікації, які по наявним документам видають людині ключі (цифрові) які людина вже використовує далі (скоріш за все лише там де це потрібно, наприклад у голосуванні),
- а кто будет выдавать людям документы, по которым они будут получать ключи? Для голосования мы уже решили использовать банковские карты.
>> центрів може бути декілька
- кто даст помещения для этих центров, кто снабдит их техникой, кто будет платить зарплату специалистам? Кто даст гарантию, что среди специалистов не будет нехороших дядь и тёть, которые захотят заниматься злоупотреблениями?
>> тобто ключ ххх володіє майном таким то і таким-то
- Зачем нужна эта информация?
>> крім того ведуть логи доступу до цієї інфи, тобто, хто хто і коли звертався за реверсом (визначити кому належить ключ xxx, та інше)
- зачем нам следить за этим?
>> скоріше за все центри повинні бути різними, тобто будь який сервер зберігає лише частку інфи, і при компрометації приватність залишається як є.
- а какая скорость при этом будет? Если кому-то надо "вытащить" некую информацию, которая разбросана по 10 датацентрам, как быстро это произойдёт? А если нам надо сделать запрос по 10 млн. записей? И как это можно технически реализовать?
>> головне що дані є і їх немає одночасно, кожний сервер зберігає лише частку, яка йому потрібна, і отримує іншу інфу, якщо потрібно з сторонніх серверів, тому будь яка особа з деструктивними намірами майже не має шансів отримати всю інформацію по людині (наприклад), але сервери на базі довіри отримують частки потрібні для роботи
- есть технические идеи, как можно организовать подобную распределённую базу данных? С гарантиями безопасности и с гарантиями того, что при уничтожении одного из серверов системы данные не будут потеряны?
>> я дещо невпевнений що у вас є достатньо ресурсів щоб це зробити
- Дорогостоящие решения в любом случае не подходят. Мы хотим уйти от дорогого и затратного нынешнего государства, альтернатива должна быть недорогой, но эффективной, иначе нам придётся снова вводить налоги для оплаты администрирования и всё вернётся на круги своя. Система должна быть максимально открыта для помощи и участия энтузиастов.
мне это видится так - в целом база будет открытой, но некоторые поля будут зашифрованы с помощью спец. ключей. Ключи будут у владельцев (контролёров) информации, разная информация будет у разных контролёров. Это, в общем-то, перекликается с тем, что предложил уважаемый архітектор. Владельцы информации - не совсем верное слово. Например, я являюсь владельцем своего имени и фамилии, но не я буду их контролёром. Каждый контролёр будет иметь свой некий API в интернете, к нему можно будет обратиться, авторизироваться и попросить расшифровать некое поле из базы. Некоторые данные не будут храниться в базе вообще, вместо них будет храниться ID, по которому их можно получить у контроллёра. Итак, навскидку, собержимое базы в первом приближении:
Таблицы административных единиц Украины (с возможностью расширения на другие страны). Это таблицы областей, районов, городов и сёл, соединённые иерархическими связями. Само собой, эта информация шифроваться не будет. Таблица пользователей - по умолчанию в открытом доступе будет только псевдоним и ссылка на нас. пункт проживания. Имя, фамилия, адрес могут быть как зашифрованными, так и отрытыми - по желанию пользователя. если пользователь хочет получить статус выше, чем обычный пользователь - судья, глава кондоминиума, и т.д. и т.п., то быть анонимом он уже не может. Пароль пользователя в этой базе храниться не будет, можно будет отправить контролёру запрос, содержащий логин пользователя и введённый пароль, и в ответ получить результат - правильная пара или нет. Само собой, такие запросы сможет делать не каждый желающий, и кол-во неверных попыток подряд будет ограничено. Поначалу будет один или несколько основных серверов-"контролёров", но в будущем любой желающий, кто сможет выполнить некие требования, сможет скачать и установить у себя (и даже разработать) програмное обеспечение и открыть у себя сервер-контролёр, например, для себя и своих близких, или для своего села, например. Пользователи смогут свободно менять одного контролёра на другого. Финансовая информация - номера карточек, например - не будет храниться в базе ни в каком виде. Для Малой Сети можно будет временно создать неких "финансовых контролёров" по тому же принципу, что и контролёры паролей, а в БС я предлагаю эту функцию переложить на банки - см. статью про финансовую систему 2.0.
>>а кто будет выдавать людям документы, по которым они будут получать ключи?
--
ну у світі не так багато документів, із того що використовується у світі:
- паспорт (id)
- reference letter від банка або нотаріуса
- utility bills (рахунки)
- стаціонарний телефон
>>Для голосования мы уже решили использовать банковские карты.
--
будь ласка не робіть цього, зберігати номери карток хоч і не є (або вже є) кримінальним злочином, але крім того дуже сильно карається візою та мастеркардом
>>- кто даст помещения для этих центров, кто снабдит их техникой, кто будет платить зарплату специалистам?
--
це могли би бути волонтери, або піде у собівартість веб республики
>>
Кто даст гарантию, что среди специалистов не будет нехороших дядь и тёть, которые захотят заниматься злоупотреблениями?
--
ніхто. і ніколи, єдине, у випадку махінацій усі ключі цього центру визнаються помилковими і центру - ганьба
>>- а какая скорость при этом будет? Если кому-то надо "вытащить" некую информацию, которая разбросана по 10 датацентрам, как быстро это произойдёт? А если нам надо сделать запрос по 10 млн. записей? И как это можно технически реализовать?
--
а як працює днс ? як працюють ssl сертифікати ? все вже зроблене багато років тому.
>>- есть технические идеи, как можно организовать подобную распределённую базу данных? С гарантиями безопасности и с гарантиями того, что при уничтожении одного из серверов системы данные не будут потеряны?
--
http://en.wikipedia.org/wiki/Domain_Name_System
http://en.wikipedia.org/wiki/Certificate_authority
>>- Дорогостоящие решения в любом случае не подходят. Мы хотим уйти от дорогого и затратного нынешнего государства, альтернатива должна быть недорогой, но эффективной, иначе нам придётся снова вводить налоги для оплаты администрирования и всё вернётся на круги своя. Система должна быть максимально открыта для помощи и участия энтузиастов.
--
ну от я і кажу - виберіть одну просту але важливу функцію і розробляйте її (із думкою що вона стане частиною більшого) . так легше ніж на колінах збудувати те, що люди тисячі років розробляли
2 архітектор - спасибо