Skip to content

Instantly share code, notes, and snippets.

@defvol
Last active July 11, 2017 05:36
Show Gist options
  • Save defvol/4ef366f9c8913a0779554ff1f2d17847 to your computer and use it in GitHub Desktop.
Save defvol/4ef366f9c8913a0779554ff1f2d17847 to your computer and use it in GitHub Desktop.
Distribuye datos abiertos por BitTorrent

Distribuye datos abiertos por BitTorrent

TL;DR para asegurar disponibilidad de los datos abiertos, necesitamos descentralizar su distribución.

¿qué es BitTorrent?

En lugar de que miles de personas intenten bajar grandes conjuntos de datos de un servidor malconfigurado de gobierno, con BitTorrent los datos pueden ser distribuidos y compartidos en pequeños fragmentos y entre diferentes consumidores (y los mismos servidores originales).

La alta disponibilidad se asegura porque los datos tienen múltiples réplicas y la carga de la red se distribuye entre múltiples usuarios.

Plan

  • Activar un par de seeders en servidores de gobierno y organizaciones con capacidad de cómputo para la banda (p. ej. INEGI, UNAM). Descargan el espejo y comienzan a ser seeders.
  • Distribuye archivos .torrent para cada dataset en portales como datos.gob.mx, datamx.io.
  • Cada vez que se utilicen clientes de BitTorrent para descargar datasets, la red obtendrá mayor capacidad de transferencia y replicabilidad.

Opcional

  • Tener un espejo de todos los datasets en un servicio de alta disponibilidad como Amazon S3. Conveniente para activar seeders rápidamente.
  • Instalar trackers en servidores externos a gobierno o utilizar uno ya disponible. El prototipo puede funcionar sin trackers (ver trackerless).

Algunas herramientas disponibles

Referencias:

@defvol
Copy link
Author

defvol commented Aug 26, 2016

maxogden/torrent

previo

➜  npm install -g torrent

compartir

➜  mkdir data-dir
➜  cd data-dir
➜  wget una-base-de-datos.csv
➜  cd ..
➜  torrent create data-dir/ -o una-base-de-datos.torrent --tracker http://algun-tracker/announce
➜  torrent seed una-base-de-datos.torrent

demo

➜  torrent create red-nacional-de-caminos/ -o red-nacional-de-caminos.torrent --tracker udp://tracker.coppersurfer.tk:6969 --tracker udp://tracker.opentrackr.org:1337
➜  torrent seed red-nacional-de-caminos.torrent
Verified files successfully!
Seeding red-nacional-de-caminos.torrent
Connected to 0/0 peers
Uploaded 0 B (0 B)
...
Connected to 0/1 peers
Uploaded 157.09 MB (439.09 kB)

clientes probados

  • transmission
  • maxogden/torrent

trackers abiertos
https://openbittorrent.com/

Copy link

ghost commented Aug 26, 2016

bito

Copy link

ghost commented Aug 26, 2016

Para asegurarnos de la integridad de los archivos, se pueden usar checksums como las siguientes:

    PGP signature
    MD5: 82af67a203af580b8d689a020ff3e50b
    SHA1: 6db5a9e46267ba7ec4d9ae79d141e5a6d9d3cf88

@defvol
Copy link
Author

defvol commented Aug 26, 2016

Siguientes pasos para demo v2

  • seleccionar un top-10 de datasets
  • hacer espejo de top-10 de datasets
  • generar .torrents (usar trackers existentes)
  • generar checksums de los datasets
  • patrocinar un main seed por un rato
  • agregar archivos torrents y checksums a datos.gob.mx
  • promover la descarga con torrents
  • documentar guía para el usuario

@defvol
Copy link
Author

defvol commented Sep 17, 2016

UPDATE: trackerless mejor, con magnet links y DHT

@defvol
Copy link
Author

defvol commented Sep 23, 2016

El servicio S3 de Amazon Web Services soporta BitTorrent http://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment