Слайд 2Структура клиента
Файловая подсистема
Подсистема формирования и контроля Хэшей
Сетевая подсистема обнаружения пиров
Сетевая подсистема передачи
файов
Система поиска
Пользовательский интерфейс
Слайд 3Файловая подсистема
Слежение за папкой
const fs = require('fs')
fs.watch(, , 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) – правило треугольника