Alumno: Santiago Saavedra López
Directora: Laura M. Castro Souto
Facultade de Informática • Departamento de Computación
Proxecto de Fin de Carreira de Enxeñería Informática
Almacenamento Distribuido e Confiable sobre Pares non Confiables
Alumno: Santiago Saavedra López
Directora: Laura M. Castro Souto
17 de outubro de 2014
Problema
Compartir contido
- Confiable
- Auténtico
- Actualizable
- Descentralizado
Importancia
Imprescindible na sociedade
Progreso e avance
Difusión de coñecemento
Sen posibilidade de censura ou modificación
Panorama actual
- Redes de distribución de contido (CDN)
- Sistemas de control de versións
- CVS, subversion...
- git, mercurial...
- Sistemas na nube
- Dropbox
- Google Drive
- ownCloud
- Sistemas P2P
A nosa proposta
- Almacenamento
- de contido versionado
- Distribuido sobre pares non confiables
Que plantexamos?
- Biblioteca para aplicacións finales
- Responsabilidade única
- Agnóstico ao contido
- Identidades
Almacenamento distribuido
Por que?
Non se precisa confianza en terceiros
Como?
Sistemas probados: DHT
Confiable
- Firmas dixitais en cada transacción
- Cada versión é inmutable
Arquitectura
image/svg+xmlNetworkinterfaces/POSIX/OSPOSIXInterfaceKernelV8Network(Ethernet/ATM/...)UDPSocketTCPSocketDHT/RCPRouting/DispatchingReactorPluginsHTTPRESTServerPeerDHTServiceFileServiceClaimServicePluggedInServiceArchitectureofaNode
Como proba de concepto...
... construimos wikita.
Wikita é
Unha wiki distribuida con múltiples versións e búsqueda por título.
Pódense ver versións anteriores
Múltiples fillos por versión
Páxinas de desambiguación autoxeradas
Desenvolvemento
Framework
Persistencia e distribución
Búsqueda por título
Firmas dixitais
Wiki
UX/UI
Plantillas para presentar a información
Páxinas de desambiguación/búsqueda automáticas
Que conseguimos?
Contido actualizable
Múltiples versións
Integridade en cada versión
Distribución de contido
Comunicacións P2P
Por que Software Libre?
Motivación filosófica
Compartir contido atribuíble...
... de xeito confiable...
... sobre unha rede de iguais
- Open Data
- Free Cultural Works
Por que Software Libre?
Motivación histórica
Gasto en servidores
- Wikipedia: €€€€€
- Wiki distribuida: ~0
Licencia permisiva
Casos de uso con elementos con licencias conflictivas co copyleft
Videoxogos distribuidos
(arte,
historia...)
Interacción con outros proxectos
- inverted.js: solución de bug importante
- CouchDB-python-viewserver: contacto e posible colaboración
Difusión futura
- Eventos dos GULs (e.g., Xoves Libres de GPUL)
- Outros eventos e conferencias
- Publicación de artigo en revista científica (actualmente en proceso)
A lomos de xigantes
Todas as ferramentas empregadas son Software Libre
- GNU/Linux + {GNOME, i3, awesome}
- Bash, Zsh
- Tern
- GNU Emacs + Org-mode
- Node.js
- KadOH
- Apache CouchDB
- Mozilla Firefox
- Chromium (esporádicamente)
- Taskjuggler
- LATEX, BibTEX, ...
Facultade de Informática • Departamento de Computación
Proxecto de Fin de Carreira de Enxeñería Informática
Almacenamento Distribuido e Confiable sobre Pares non Confiables
Alumno: Santiago Saavedra López
Directora: Laura M. Castro Souto
17 de outubro de 2014