Projects
University of California, Davis
-
Scaling ResilientDB by Sharding (code)
(With Dhruv Krishnan and Priya Holani; Mentored by Prof. Mohammad Sadoghi; January 2020 – June 2020)
ResilientDB is an open-sourced permissioned blockchain fabric, which easily allows its users to set up a blockchain application.
Fault tolerance and scalability are the two major limitations of most distributed systems. In this project, we intend to show that sharding is a prominent solution to these limitations in distributed transaction processing, specifically for permissioned blockchain systems. We would achieve this by implementing a sharding protocol called AHL (Attested HyperLedger) in ResilientDB. AHL makes use of Trusted Execution Environment to improve fault-tolerance and sharding to enhance performance and scalability. ResilientDB is a high-throughput yielding permissioned blockchain system.
Developed the sharding protocol by enhancing the Practical Byzantine Fault Tolerant protocol by using 2 Phase Commit Protocol. The result dramatically increased the system throughput by 200% to 240k txns/sec
Technologies: C++, Bash, Python, Google Cloud Platform
-
Paxos based consensus protocol in ResilientDB (code)
(With Dhruv Krishnan, Priya Holani, and Shubham Pandey; October 2019 - December 2019)
Implemented the BFT-SMaRt protocol inside of ResilientDB. The major changes were done to the VP consensus module of BFT-SMaRt which is a Paxos Based Consensus Protocol. Managed to improved the system throughput by 10%.
Technologies: C++, Bash, Python, Docker
-
AutoGrader for ECS 36B (code)
(With Qi Wu; January 2020 - February 2020)
Attempts to reduce the task of manually grading over 190+ students C++ coding assignment submissions. Students submit their programs via the handin command. Each student has a folder containing the .tar file of all the related file to the assignment.
Technologies: Python, Bash
-
Playing Atari Pong Using Deep Q Reinforcement Learning (code)
(May 2020)
A Convolution Neural Deep Q-Learner that learns the game of Pong by Atari with an accuracy of 98% using TensorFlow. Also performed representation learning to understand how the algorithm predict the move.
Technologies: Python, Tensorflow, NumPy, Pandas, Matplotlib.
-
Hand-Written Digits Recognition (code)
(April 2020)
Developed a multi-class Support Vector Machine to recognize digits with an accuracy of 85% using Python and sklearn.
Technologies: Python, sklearn, NumPy, Pandas, Matplotlib.
-
Netflix Movie Recommender System (code)
(March 2020)
Designed movie recommenders using Spectral Clustering and Matrix Completion with an accuracy of 91% using Python
Technologies: Python, NumPy, Pandas, Matplotlib.
-
Threat Analysis of Android Application (code)
(With Nishad Dawkhar, Meghraj Bendre, and Pushkar Badgujar; Aug 2015 – April 2016)
Designed and developed a framework that performs static and dynamic analysis on Android applications and provides a user understandable safety rating making them aware whether the app is good to use.
Technologies: Django, Pymongo, MongoDB, Androwarn - crispy-forms(Django), Apktools for Android Permission Mapper
-
Online Coding Judge for National Computing Contest (code)
(With Abhiraj Darshankar; Jan 2013 – March 2013)
A website where National Computing Competition (NCC) was hosted in which algorithmic questions were uploaded by the admin. The participants submit their code as a solution for a particular question whose verdict (Accepted, Wrong Answer, Compile Time Error, Run Time error etc.) was given by the Judge based on some pre- determined test cases. This Judge was developed on python that worked within a sandboxed environment which was created using a few bash shell commands. The backend was developed using the Django framework.
Technologies: Python, Django, PostgreSQL
-
Android Library Application for PICT (code)
(With Akash Shingte, Vishal Shelke; Aug 2014 – Sept 2014)
This application extracts and then displays the information regarding the books in the library such as the number of books, availability of a particular book to the user and the user could view the issued books as well as their deadlines. The server was designed using Node.js to send HTTP queries from Android to MongoDB and vice versa using the REST API. Technologies: NodeJs, Java, MongoDB