Skip to content

PoCInnovation/PoC2Peer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PoC2Peer

Table Of Content

Table of contents generated with markdown-toc

Introduction

PoC2Peer is a streaming application for listening Music using BitTorrent Protocol.

It's composed of 4 parts:

  • It uses a P2P Library written in Go based on IPFS libp2p

  • A Tracker is used to keep information about available files and Connected Peers.

  • The Dashboard is a graphical interface allowing access to the permanent peer (tracker) of the Project. It permits to visualize the music available on the network, to remove them and also to visualize the entire peers present on the network

  • Uamp is the base Application for the player.

⚠️ Without other users with the application running, you have to use a permanent peer as explained below.

How to use

  • Tracker

    Directory: Tracker/

    Go to tracker's directory.

    • run npm i to install/update dependencies.
    • launch tracker with either:
      npm init
      npm start
      or
      make run
      Tracker_start
    • The tracker can be entirely reset with
      make clean
  • CLI

    Directory: CLI/

    Go to CLI's directory.

    go mod download
    go run main.go

    Follow instructions to upload Metadata. cli_choices

  • Permanent Peer

    Directory: PoC2PeerLibrary/

    Go to PoC2PeerLibrary directory.

    go run main.go

    You are now in a CLI. You can load all files from a directory with:

      load [directory]

    PermPeer_load

  • Dashboard

    Directory: Dashboard/

    Go to dashboard's directory.

    • run flutter start
  • Android

    Directory: app/

    Either:

    • Open Project with Android Studio and run application.
    • Build Apk and install it on your android.

    You Should Have a list of files kept by the tracker

Requirements.

  • Android Application

  • Tracker

    • Coded Typescript and use Express to manage requests made by Kotlin Application, Go Library and CLI.
    • Prisma (ORM) is used with postgres to store available files' metadata and connected peers.
    • Postgres is containerized with docker.
    • (Optional) GNU Make

      A Makefile is provided to ease tracker manipulation.
  • P2P Library

  • CLI

    • Go is the main (and only) language used in CLI.
  • Dashboard

Features

  • Send files metadata to the tracker.
  • Load files into permanent peer
  • Request File from a Peer
  • Listen Requested Files with UAMP

Possible Improvements

  • Add a message type to dump file in storage and store this in remote peer
  • Upgrade local storage to write file given a configuration file.
  • Log System in file and level of verbose.

Timeline

About

A P2P streaming platform design by PoC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •