- PoC2Peer
- Table Of Content
- Introduction
- How to use
- Requirements.
- Features
- Possible Improvements
- Timeline
Table of contents generated with markdown-toc
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.
-
Directory: Tracker/
Go to tracker's directory.
-
Directory: CLI/
Go to CLI's directory.
go mod download go run main.go
-
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]
-
Directory: Dashboard/
Go to dashboard's directory.
- run
flutter start
- run
-
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
-
-
- 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.
-
A Makefile is provided to ease tracker manipulation.
(Optional) GNU Make
-
-
(Optional)GoMobile
-
- Go is the main (and only) language used in CLI.
-
- Send files metadata to the tracker.
- Load files into permanent peer
- Request File from a Peer
- Listen Requested Files with UAMP
- 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.