Разработка web-приложений
Структура клиента
Файловая подсистема
Хэш
Хэш сравнение
Сетевая подсистема
58.67K
Категория: ИнформатикаИнформатика

Разработка web-приложений p2p. Структура клиента

1. Разработка web-приложений

Разработка webприложений
p2p
Цыгулин Алексей Александрович к.т.н.

2. Структура клиента

• Файловая подсистема
• Подсистема формирования и контроля Хэшей
• Сетевая подсистема обнаружения пиров
• Сетевая подсистема передачи файов
• Система поиска
• Пользовательский интерфейс

3. Файловая подсистема

• Слежение за папкой
const fs = require('fs')
fs.watch(<folder path>, <options>, callback
(eventType, filename) => {}
eventType = 'rename‘ or 'change'

4. Хэш

const crypto = require('crypto')
const hash = crypto.createHash('sha256')
let rnd = Math.random().toString(36).substring(2, 15) +
Math.random().toString(36).substring(2, 15) +
Math.random().toString(36).substring(2, 15)
hash.update(rnd)
const myHash = hash.digest('hex')

5. Хэш сравнение

XOR
• d(x,x) = 0
• d(x,y) > 0, if x != y
• forall x,y : d(x,y) = d(y,x) -- симиетрия
• d(x,z) <= d(x,y) + d(y,z) – правило треугольника

6. Сетевая подсистема

• UDP Broadcast
• TCP links
English     Русский Правила