Project Abstract
Jira issue for project Zeppelin has implementations for storing notebook in local filesystem, local Git repository, S3 and Azure. The idea of this project is to add storage using P2P protocols like IPFS, dat , Zeronet or Bittorrent. Hence supporting versioning and allowing users to share their notebooks easily.
Mentor : Alexander Bezzubov
Pull requests My blogTimeline
-
Application period
March 15 - March 26
-
Community bonding
April 23 - May 16
Initially I was trying AngularJS as I was unfamiliar with it.
Zeppelin notes are stored as note.json. The goal was to get familiar with the source code as much as possible. My mentor gave me the task to store notebooks in XML format. More details here
Also maven basic functionality. -
Final Semester exams
May 16 - May 27
Focus on academics.
-
Comparison of protocols
May 27 - June 7
Read the P2P protocols IPFS, Dat, Zeronet for a comparative study to see which protocol best fits and the software stack available(libraries etc.)
Chose IPFS to start with. Read the original paper. Tried all commands in command line tool. Wrote about merkle DAG and ipfs object in second post here
-
Submitted First PR
June 10
Submitted the PR containing save, list, get methods
-
Ipfs with versioning
June 15 - June 22
implemented NotebookRepoVersioned interface for storing and getting revisions.
Wrote some google docs for description of design and what ipfs features were used
-
Ipfs asynchronous callbacks
June 23 - June 28
Read and worked on
- Websocket Jetty's own and JSR-356 both are quite similar.
- Concurrency : Callable, Runnable, Executors , google-guava for callbacks
- To handle many ipfs download tasks at once and send message to the front-end when complete or about progress.
More Info But this was scrapped later. -
-
BittorrentNotebookRepo
July 17 - July 27
Created BittorentNotebookRepo and sent a PR
In my design I considered BittorentNotebookRepo with separate communication servlet other than NotebookServer handling Bittorrent specific messages like download add, progress, peersalert etc.
August 1 - August 14
Created some diagrams to explain my architecture. Design was refactored to use DHT mutable and immutable store. So read the bep44 specs and tried some sample code, realized data storage limit is 1000 bytes.
-
Ipfs import feature
August 15 - August 17
Worked on ipfs import, added import url option, server to client message of import status and ng-toast.
August 18 - August 20
Created this site as final work submission