Пандора може використовуватися для особистого спілкування, ведення бізнесу, створення проектів та спільного управління суспільством.
Навіщо нам мережі?
Комп'ютерні мережі міцно увійшли в наше життя. І йти не збираються. Перерахуємо мети, яким служать комп'ютерні мережі.
Ми дізнаємося нове. Спілкуємося з близькими. Укладаємо угоди. Беремо участь у спільній розробці проектів. Управляємо процесами.
Проблема перша. Сьогодні ми довіряємо свою інформацію знеособленим корпораціям. Залишається щиро сподіватися на те, що в багатьох корпораціях працюють порядні люди, які поважають нашу довіру. Але в корпораціях можуть бути люди, які розпоряджаються ввіреній їм інформацією переслідуючи свої наміри.
Проблема друга. Сьогодні у всіх країнах урядові служби на законодавчому рівні контролюють всі інформаційні потоки. У кожного інтернет-провайдера встановлено обладнання спецслужб, яке повністю відстежує весь трафік. Вважається що уряду завжди діють чесно. Але серед державних службовців можуть бути люди, які переслідують інтереси певних груп.
Проблема третя. Центральні точки в мережі схильні до ризику вийти з ладу або бути знищеними під час зовнішнього вторгнення. Випадки, коли сервера виходять з ладу (або їх виводять з ладу) і системи перестають працювати траплялися неодноразово. Крім того, деякі власники просто зупиняли свої сервера, іноді навіть не повідомивши нас. У цих випадках ми більше не можемо користуватися зупиненими сервісами і часто втрачаємо свою інформацію. Централізовані сервіси фізично уразливі і підпорядковані волі певних осіб.
У трьох словах: центри схильні до витоку, цензурі і краху.
Це три основні проблеми, але далеко не єдині. Скажіть, на скількох сайтах вам доводилося реєструватися і раз по раз вводити одну і ту ж інформацію? Скільки разів вам доводилося вникати в особливості кожного сервісу і перебудовуватися під різні вимоги? Скільки програмістів кожен день запускають черговий сайт, щоб створити для нас нову головоломку?
Чи не занадто це, лише для того щоб:
1) пізнавати нове;
2) спілкуватися з близькими;
3) укладати угоди;
4) спільно розробляти проекти;
5) контролювати процеси.
Чи не занадто багато породжене сутностей для наших простих завдань?
Чи не занадто дорогу ціну ми платимо?
структури мереж
Частково децентралізована мережа Diaspora
У цій мережі кілька центрів. Користувачі можуть вибирати сервер, з яким вони довіряють. Дані все ще зберігаються віддалено на сервері. Користувачі повністю довіряють інформацію власнику. При цьому деякі сервери розміщені у хостерів, з усіма наслідками, що випливають. Але навіть якщо сервер Diaspora належить приватній особі - хто він? Користувач знову повинен тренувати силу своєї довіри.
Такі мережі менше наражені відмови в обслуговуванні, менш масового сливу даних при зломі, акти вандалізму і анонімної безвідповідальності мають менший масштаб.
Розподілена (p2p) інформаційна система Pandorа
Мережа повністю децентралізована. Неможливо вивести мережу з ладу або взяти її під контроль. Публічні дані (наприклад, енциклопедичні статті) вільно курсують між вузлами, приватні дані розподіляються по вузлах, відповідно до схем довіри.
Так як обмін даними відбувається серед близьких, друзів, колег, партнерів по бізнесу, однодумців, то ймовірність витоків даних третім особам майже відсутня. Фотографії ваших дітей потраплять тільки на комп'ютери близьких. Анекдоти ви будете труїти тільки зі своїми друзями. Ваше замовлення побачить тільки продавець. Ділові папери розійдуться тільки партнерам. Над проектами працюють тільки однодумці.
Спілкування відповідальне і конструктивне. Відповідальна, тому що люди дбають про свою репутацію. Конструктивне, тому що ніхто не хоче підтримувати непотрібні дані, розміщуючи їх на своєму комп'ютері.
Розглянемо ближче пристрій Пандора.
Дані чотирьох рівнів
Головне вікно Pandora
2. Справа - продуктивна і господарська діяльність
Дані, зрозумілі підліткам будь-якої національності до 18 років.
Об'єкти: Товар. Послуга. Працівник. Клієнт. Склад. Замовлення. Угода. Платіж.
4. Пандора - дані і сервіси, службовці для роботи мережі Пандора.
Об'єкти: Параметр. Ключ. Підпис. Вузол. Патч. Подія. Сховище.
Слухання - запуск програми на прийом вхідних з'єднань.
Пошук - одинарний опитування вузлів в пошуках конкретного типу записи. Наприклад пошук світового об'єкта «Людина» по імені та прізвища. При пошуку, на відміну від полювання, задається велика глибина опитування мережевого дерева по довірених гілках.
Ідентифікація записів (об'єктів)
Кожен запис в Пандорі має унікальний складовою хеш, іменований «панхеш». Панхеш формується з усічених хеш полів записи. Текстові поля хешіруются md5, дати кодуються в 3 байта, при посиланні на інші записи Пандори береться їх панхеш (частково).
Наприклад, панхеш людини виглядає такою послідовністю:
[Type / lang: FirstName / LastName / BirthDate / BirthCity / FatherFN / MotherFN]
Панхеш може записуватися в людино читається:
[Person / ru: Лінус / Торвальдс / 28.12.1969 / Хельсинки / Нільс / Анна]
Панхеш людини кодується за такою формулою:
FLDCAM, 6/10/3/3/2/2 = 16 + 6 + 4 = 22 + 4 = 26 байт + 2 байта (тип і мову)
або приблизний вигляд в 16-річної кодуванні:
[0108: e6fb7d1b01dc ebb27cf540a56f05fd98 d343e3 5de465 f547 72fd]
тут:
01 - тип запису «персона»
08 - російську мову
e6fb7d1b01dc, ebb27cf540a56f05fd98, f547 і 72fd - усічений md5 від «Лінус» і «Торвальдс», «Нільс» і «Анна»
d343e3 - закодована в 3 байта дата
5de465 - усічений панхеш записи місто «Гельсінкі» російською мовою.
Деякі поля можуть бути пропущені (порожні, тобто не заповнені), в цьому випадку складові хеші заповнюються нулями. Наприклад, якщо задані тільки ім'я, прізвище та дата народження (FLD = 19 байт), то панхеш буде виглядати приблизно так:
[0108 e6fb7d1b01dc ebb27cf540a56f05fd98 d343e3 000000 0000 0000]
кінцеві нулі можна не вказувати:
[0108 e6fb7d1b01dc ebb27cf540a56f05fd98 d343e3]
Скорочений панхеш в людино читається може виглядати так:
[Персона: Лінус / Торвальдс]
Навіть якщо в мережі одна і та ж запис була введена двічі (тричі і т.д.), її панхеш буде абсолютно однаковим, і такий запис буде ідентифікуватися як одна і та ж.
Неповні записи (панхеші яких мають нульові пропуски) можуть співвідноситься з більш повними (у яких панхеші мають менше пропусків). Таке співвідношення називається подобу, і налаштовується додатково.
У Пандорі базові типи записів (як правило, це світові записи, такі як «людина», «спільнота» і т.п.) описуються з нуля. Інші типи записів породжуються від базових (в основному це ділові та регіональні записи).
Записи представлені в Пандорі у вигляді об'єктів. До дочірніх об'єктів застосовні всі методи батька. Наприклад, якщо шукається людина «Іван Іванов», то він буде знайдений, навіть якщо вводився тільки на діловому рівні у вигляді співробітника. З іншого боку, при початку трудової діяльності не доведеться вводити дані людини, якщо вони існують на світовому рівні.
Така ієрархія дозволяє: 1) вводити дані тільки один раз, 2) економити дисковий простір, 3) мати наскрізну єдину ідентифікацію об'єктів, 4) застосовувати методи батьківських класів.
Пандора обчислює бінарні (байтові) панхеші, і в своїй роботі оперує ними при ідентифікації і пошуку об'єктів.
виникнення записів
Існує всього два способи, якими запис потрапляє в вашу Пандору:
1) ви самі ввели запис;
2) запис прийшла до вас по мережі.
Кожен запис позначається панхешем творця.
Запис, одного разу введена, що володіє своїм унікальним панхешем і позначена панхешем творця, починає свою подорож в мережі.
підтримка записів
Якщо ви ввели запис, вона автоматично позначається як «підтримувана». До тих пір, поки ви тримаєте включеною позначку «підтримую», ваша Пандора буде зберігати цю запис в базі.
Наприклад, коли ви дивитеся фотографію одного, і вона вам подобається - ви натискаєте «підтримую». З цих пір фотографія затримується у вашій базі. Ваші спільні друзі зможуть завантажити цю фотографію з Пандори одного, або з вашого комп'ютера.
Після завантаження чужі записи зберігаються деякий заданий час (наприклад, для типу «персона» за замовчуванням задано 3 дні), після чого записи, якщо їм не була надана підтримка або довіру автоматично видаляються з вашого вузла.
Також ви можете налаштувати автоподдержку, тобто автоматичне включення прапора «підтримую» для записів по певній умові. Наприклад, ви можете вказати, що завжди підтримуєте статті Івана Іванова, або анкети своїх друзів.
довірені записи
Довіра - це цифрове підписування записи.
Наприклад, якщо ви підписали анкету одного, ви гарантуєте, що ця людина справжній. Коли ви підписуєте статтю, ви підтверджуєте істинність відомостей, які в ній містяться. Коли ви надаєте «довіра» договору з вписаним своїм ім'ям, ви фактично приймаєте цей договір.
Система довіри дозволяє встановити достовірність даних в Пандорі. Це одна з ключових функцій в роботі мережі.
Ваші друзі, близькі, партнери, однодумці, побачивши підпис, розуміють, що це перевірені дані. Користуйтеся довірою відповідально. Надаючи довіру сумнівним даними, ви можете підмочити свою репутацію.
Надану довіру не зобов'язує вас зберігає саму запис, але всього лише підпис цього запису. Проте, за замовчуванням Пандора налаштована зберігати довірені записи також як і підтримувані.
Ще немає опублікованих записів
Позначка на записи «публічна», робить запис всенародною. Публікуватися можуть загальновживані дані, наприклад, анкети історичних діячів, або енциклопедичні статті.
Нецікаві записи, без підтримки і довіри швидко «згасають». У Пандорі відбувається справжня боротьба записів за підтримку і довіру.
Ви можете публікувати як свої записи, так і чужі. Але публікація чужих записів без згоди автора є поганим тоном.
зміна записів
Ви можете змінити свій запис або чужу. У будь-якому випадку при зміні записи створюється "патч", які поширюється серед зацікавлених вузлів. Може вийти так, що первісний запис створена однією людиною, а потім кілька інших внесли зміни. Учасники Пандори можуть підтримувати патчі, надавати їм довіру і публікувати, тобто патчі мають всі властивості записи.
Так, в Пандору закладена можливість спільної розробки записів будь-якого типу, починаючи від енциклопедичної статті, і закінчуючи регіональним постановою.
Додавання вузлів
Вузол Пандори перебирає відомі вузли, і цим самим як би виходить на полювання. При цьому мисливець шукає, хто слухає вузли. Якщо «мисливець» знайшов «слухача», він підключаться до нього, і починається обмін даними. Зазвичай, вузол Пандори знаходиться і в режимі слухання і в режимі полювання одночасно.
Хоча з'єднання завжди ініціює мисливець, відразу після підключення відмінність між мисливцем і слухачем стираються, обмін даними йде в обидві сторони. При цьому кожен вузол виставляє свої запити, а інший вузол повинен відповісти на ці запити.
З'єднання або розривається відразу після обміну даними, або залишається підключеним, якщо було запрошено живе спілкування (чат, дзвінок або гра).
Пандора в режимі полювання циклічно опитує тільки ті вузли, на які ви підписані.
Підписки визначають дані якого типу необхідно запитувати у заданих спільнот, людей або вузлів. Наприклад, ви можете вказати, щоб ваша Пандора запитувала нові фотографії групи «Мої друзі», або нові товари у заданій компанії.
Повідомлення і дзвінки
Схема роботи вузла - циркуляція даних
При кожному підключенні створюється сокет. Сокети створюються як слухачем, так і мисливцем. На кожне з'єднання запускається свій обробник. Всі встановлені з'єднання реєструються в списку активних вузлів.
Обробка даних з'єднання
Технічна реалізація
При побудові Пандори вибиралися крос платформні, популярні, ясні і добре документовані компоненти.
Ось поточний список: ruby, gtk, sqlite, openssl, gstreamer.
установка програми
1. Встановіть git в Ubuntu:
2. Створіть порожній каталог «Pandora», залишаючись в ньому скачайте Pandora використовуючи git:
3. Зробіть скрипт Pandora.sh запускамим (тільки для Ubuntu):
4. Встановіть додаткові пакети для Ubuntu:
5. Запуск Pandora в Ubuntu:
(В Windows запускайте bat-файл pandora.bat)
Стійте ж!
Інші подібні системи
можливе майбутнє
Основна ідея Пандори в тому, щоб не суспільство визначалося державою, а держава формувалося суспільством.
Я як би задався питанням: «Чому ми, громадяни, біжимо за чиновниками? Дивимося в рот чиновникам, підлаштовуємось під них, і чекаємо від них рішень наших проблем? Чому б чиновникам не бігти за нами? »Порятунок потопаючих - справа рук самих потопаючих.