School Notes

Date posted:   Apr 24, 2018

Distributed Systems Poster Session, May 1, 2018

Photo of CS Students examining a poster for the upcoming Distributed Systems Poster Session

Distributed Systems: Poster Session

Time: May 1st  3:00 - 4:30pm

Location: 2nd floor St. Mary Hall South (CS Department)


Please join us for the end-of-semester poster session for CSCI 3359, Distributed Systems. Check out your friends' and students' awesome final projects, ask some hard questions, and consume free food.


Topics range from distributed music and photo applications, distributed games, study on cryptocurrencies, and network analysis.

Project Title & Abstract:

Distributed Applications

 

Title: Juke Jam

Abstract: Juke Jam is at the heart a social jukebox. Our website allows multiple people to seamlessly and in real time add to and alter playlist(s). One person can go onto our website and sign up to be a host using their Spotify account. Using a code generated from our website, the host can then distribute the code and let friends add songs to any one of their Spotify playlists, empty or not. Then the music begins. Juke Jam is perfect for any social gathering and event – use it at any party, or even at a wedding!

 

Title: Collaborative Photo Editing

Abstract: Tired of spending a lot of time on photoshopping everyone in a group picture? Not satisfied with the way your friends photoshop your photo? Collaborative Photo Editor is an application that dedicates to enabling friends to edit photos simultaneously and smoothly. The backend architecture of this application is based on decentralized peer-to-peer system. We also implement modified ABD algorithm and failure detector to ensure data consistency and fault-tolerance.

Distributed Games

 

Title: Liar Dice

Abstract: Liar Dice is the dice version of a famous Wall Street traders game, Liar’s pokers which requires statistical reasoning and behavioral psychology tactics to gamble. It is a great choice for parties, and we aim to implement this game with a distributed system design. Unlike traditional game designs, we only use game server to connect players while players directly communicate with each other during the game. We also design the game so that it can safely even continue during unwanted situations like network delay, nodes crash or messages lost.

 

Title: A new social platform - Travelling Eagles

Abstract: In this poster we present a product that is a delicate combination of a pet game and a social platform. Our game has a travelling game system that is inspired by the game Tabi Kaeru. To add more BC spirit, we decide to make the travelling pet to be an eagle, the Mascot of BC. In particular, we incorporate the chatroom and drift bottle functions to make our game a social platform, using a centralized server. We envision adding more distributed features and eliminating the use of the server in the future.

 

Title: Murder on the Heights

Abstract: Our project involves an online multiplayer game and chat room that resembles Clue, but is customized to occur on BC’s campus. Specifically, instead of moving between the various rooms in the mansion, players will move between different parts of BC including the Mods, Gasson Bell Tower, Newton Bus, and Bapst. In addition, the potential murder suspects are characterized by popular BC figures: Baldwin the Eagle, Saint Ignatius, Jerry York, and Father Leahy. The weapons are also BC-inspired.

   While playing the game, the players have access to a chatroom and chat amongst themselves by partaking in casual conversation or asking each other for clues. The game itself is built with JavaScript and is distributed by utilizing a peer-to-peer architecture. A middleware server initially registers all of the players and randomly determines the mysterious murder suspect, murder location, and weapon. After all players register, the server is not utilized again as the players each peer to broadcast each of their moves.

 

Title: Construct & Destroy: A 2D Real-Time Multiplayer Shooter

Abstract: Construct & Destroy is a two-dimensional multiplayer shooting game that pits players against each other in a real-time competition to survive. The game runs in the browser on a front-end stack of HTML5, JavaScript, and CSS. It is supported by a Node.js server that handles all communication through websockets. The game explores methods of quickly and smoothly rendering an intensive game in the browser. Furthermore, the underlying architecture considers the current standard methods for maintaining and updating a game state. On top of this, it shines a light on the issues that network latency creates for gameplay smoothness and accuracy. Overall, the game manages to address all common issues of game-design, while being an accessible and free to play game. Ultimately, the goal of the game was to allow as many people as possible to play a battle royale style game, which was achieved through design decisions.

Cryptocurrencies

 

Title: Survey of Proof-of-Stake Algorithms in Cryptocurrencies

Abstract: Proof-of-Stake (PoS) distributed consensus algorithms are challenging the current norm of Proof-of-Work (PoW) algorithms as the way cryptocurrencies choose the next block on the blockchain. While blogs and online resources exist that describe PoS and its relationship with PoW, academic resources remain scant. This survey seeks to provide a more formal and comprehensive starting point to Proof-of-Stake algorithms. Our paper first aggregates the existing information of up and coming PoS technology. Next, we compare PoS with PoW, and discuss whether or not PoS has sufficient advantages to overtake PoW as the predominant consensus algorithm in the future. Finally, we explore the most prominent existing and proposed implementations of PoS algorithms, determine the qualities that are sought after in an ideal PoS algorithm, and implement some of the algorithms on a small scale.

 

Title: Designing a Digital Currency: Precedent Cryptocurrencies Comparison

Abstract: For our final project, we researched four digital currencies: Bitcoin, Ethereum, Litecoin, and Ripple XRP. Although all these cryptocurrencies use blockchain technology, they each have their own distinct features to validate transactions and to address scalability needs. Bitcoin was and is the foundation for all similar currencies, while the others have improvements or modifications. Ethereum and Ripple use a proof-of-stake consensus protocol compared to the proof of work used by Bitcoin and Litecoin. Proof of stake reduces the energy needs for mining and increases the block creation rate. Ripple reduced the level of decentralization and allowed those “trusted” validators to share information in order to further reduce its latency by increasing its efficiency, but it is at the cost of centralizing the currency. Litecoin uses an improved encryption algorithm over Bitcoin’s SHA-256. Although each currency has features that improve their performance, they all have core scalability issues when deployed on a global scale for their energy and computational needs.

 

Title: Burgeoning Blockchain Exploration

Abstract: As blockchain continues to command the technological spotlight, we chose to examine and experiment with different implementations of the framework.  Our project focuses on the pros and cons of different protocols including Bitcoin, Ripple, and Ethereum, and highlights the key factors of what goes in to successfully leveraging the power of blockchain tech.  We have surveyed the vast array of literature on blockchain and then created our own smaller scale implementation.


Network Analysis

 

Title: Predicting Champions by using graph analysis

Abstract: Graph theory and network analysis are methods that can be useful for visualizing data and analyzing the interdependencies and relationships between observations. Graph theory has been applied to a wide range of fields such as sociology, mathematics, and sports. Applications of graph theory to sports ranges from allowing researchers to better understand intra-team relationships to using team and season data to predict the winners of matches. A study done at Stanford tried to determine whether graph theory and network analysis could help predict the Super Bowl winners by applying different graph properties such as the PageRank algorithm to examine particular team matchups. In our experiment, we attempted to reproduce the results of this study and determine whether this particular method can be applied to other areas of professional sports such as the NBA and MLB. In addition to network analysis, we applied other statistical models such as the Bradley-Terry model to see if it improves the predictive power of our models. We then compared the results of all our models to determine which approach produced the best results.