Almacenamento Distribuido e Confiable sobre Pares non Confiables – Problema – A nosa proposta



Almacenamento Distribuido e Confiable sobre Pares non Confiables – Problema – A nosa proposta

0 0


pfc-swl-slides

Slides para a presentación ao Concurso de mellor PFC de Software Libre da Xunta de Galicia.

On Github ssaavedra / pfc-swl-slides

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
    • BitTorrent
    • Syncthing

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

Que é unha DHT?

By Seth Terashima (Own work), CC-BY-SA-3.0 and GFDL, via Wikipedia Commons.

Exemplo de DHT: Kademlia

By Limaner (Own work), CC-BY-SA-3.0, via Wikipedia Commons.

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

Licenciado como Software Libre

Código JavaScript dispoñible en bitbucket/ssaavedra/soup-rest

Wikita dispoñible en bitbucket/ssaavedra/soup-wiki-app

Memoria do Proxecto de Fin de Carreira licenciada baixo CC-BY-SA e GFDL

Presentación baixo CC-BY-SA 4.0 International

Este obra está baixo unha licencia de Creative Commons Recoñecemento-CompartirIgual 4.0 Internacional.

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