## Overview of Siacoin

Sia is a decentralized storage platform secured by blockchain technology. The Sia Storage Platform leverages underutilized hard drive capacity around the world to create a data storage marketplace that is more reliable and lower cost than traditional cloud storage providers.

Your data is sliced up, encrypted, and stored on nodes all across the globe to eliminate any single point of failure and ensure the highest possible uptime. Since you hold the keys, you own your data. No outside company can access or control your files.

## Inspiration

Currently, Siacoin runs on charging the host for bandwidth and storage used for the file. We think this leaves the file especially vulnerable when the host stops watching and paying for the file. Additionally, the host might not have the ability to buy Siacoin quickly. We want to make decentralized storage truly free for all.

## What it does

To mitigate this issue, we're creating an ad-supported upload and download web server portal that will allow the file to sustain itself monetarily on the network.

To use, the user will visit the site, upload the file after watching an ad and then receive a download link as well as their Sia permanent link. They could then disseminate the links to the users who would like to access the file.

## Based on these calculations the Sia Cost: (prices as of 9/4/19)

Storage $0.68 / 1TB $6.8E-7/1MB
Upload $0.11 /1TB $1.1E-7/1MB
Download $0.59 /1TB $5.9E-7/1MB

We can clearly see that one 30 second video ad ~$0.01 can conservatively handle the price of 1gb of data on a download. One 30 second video ad on upload can also cover close to a year of hosting. One could say this isn't the true cost as explained below but we'll use this as a rough order of magnitude approximation.

## Prototype Status:

We tried using a Node.Js server backend to get the files into the Siacoin. We had some difficulties understanding the API and understanding how the Sia daemon uses the Node.Js server to fully do everything we need. Additionally, It was difficult to get the Sia client working.

Still if we got the right configuration working, the upload side of the file would have to go to the web server, then uploaded to Sia. On the reverse side, the file needs to be queried from Sia to the web server, then downloaded to the client. In summary, this increases the bandwidth requirements considerably to use Sia as the final destination which will increase costs.

However, there are situations that this could make sense. On fairly small files, few ads could cover all of these costs anyway. One could assert that the bandwidth is the majority cost of the file hosting so this is only useful for mostly cold storage.
However, as long as the original Sia path is known, the file is not reliant on the central web server shutting down. This allows the file to stay up indefinitely as multiple client software can still access the file. One could simply recover their password for their Sia files they uploaded and still access them.

## What's next for Sustainable Ad-Supported Blockchain File Storage

Of course, this is all in the abstract. Due to difficulties getting the wallet working, much development would have to be done in the future. This idea was thought up by our hackathon team and we think might have promise in the future for Sia.
# Do You Want To Hug Me?

## Overview

Do You Want To Hug Me (or DYWTHM, an acronym that rolls straight off the tongue) is a combination of a stress ball, desktop pal, and mental health counter. Simply "hug" our Android friend, and he'll record your squeeze and put it into our database. From our mobile/desktop apps, you'll be able to look at your hug trends as well as other hug data. While it's innately simple, Do You Want To Hug Me is extremely flexible. Individuals can choose what hugging the plush means (e.g. hug each time I'm stressed, hug each time I'm very happy), and then look at a visual representation of their day in forms of hugs. Users can then figure out, for example, what times they're the most stressed, or when they're the most happy, or every time they see a Donald Trump post on Facebook. The world is their oyster!

## Inspiration

Well, that Android plush from Google was pretty cute looking, so much in fact that we decided to hug it repeatedly (it's very, very soft). Hugging makes you feel naturally better, but we started wondering what we could do with our hugs. A simple action like squeezing a toy can give a lot of information about a person: how hard they squeeze, how long they squeeze, and how frequently they squeeze. Unfortunately, due to time and resource constraints, we focused on only one: hug frequency. While the hug can mean something different for each person, it's still a pretty cool insight into your life. You can see when you're hugging more, and also have a lot of fun squeezing a little plush. It's a win win!

## Challenges

We failed **a lot**, but during that process we learned even more, so it was generally alright! Originally, we planned to measure pressure, frequency, and time, but we quickly realized that we had to focus our resources on a more narrow goal. Throughout our development cycle, we encountered numerous problems: whether it was with Bluetooth interfacing between the Arduino 101 and our Computers/Phones, to huge backend server mishaps, and a complete shift from a mobile-oriented product to a desktop-focused product (after a colossal mobile failure), it was a very rocky road. Ultimately, our final product wasn't close to what we imagined at the start, but that was fine! We're still super happy that we were able to make something so cool, and plus we know what kinds of mistakes that we probably shouldn't make again in the future. Probably.

## Learning

One of Hack Western's themes this year was learning, and we tried our best to use this hackathon as an opportunity to do just that. Each of our team members took to learning a new topic area that they hadn't practiced before. Here are a few quotes from our team members:

"I worked mostly on the backend. I've used node before, but this was my first time actually peaking into the HTTP(S) protocol, which was awesome. It was also my first time taking security seriously, so I also learned a ton about encryption techniques. Next time I'm at a hackathon, I think I'd like to write my own SSL client to take a deeper poke at the world of web security" - Jack Sarick

"I worked mostly on the front-end of DYWTHM, but also did a few backend tasks when I could. While I'm not a complete stranger to front-end frameworks, this was my first time dealing with asynchronous development: our mobile (and desktop) applications needed to sync their data with our webserver, updating each other every time new data was made. I learned a lot about the do's (and many, many dont's) of async development, and I'm super excited to take this new knowledge into the future! I *promise* to try more back-end things at my next hackathon: full-stack development looks super cool, and I'm hungry for more!" - Matthew Wang

"I worked mostly on the hardware testing, connection and bluetooth communications. I test individual sensors and algorithms on bluetooth communications with smartphones. Finally, I make sure all components are working together." - Simon Guo

All of us learned a lot at Hack Western, especially from our fellow hackers and mentors.

## Conclusion

Our team absolutely loved Hack Western: we got to meet tons of new, super smart and cool people; we got to demo awesome new tech; and we got to learn from industry pros. We're also super proud that we were able to complete Do You Want To Hug Me: it's a project that we put a lot of time, effort, and love into, and we're excited to see what'll come next. And, we got to hug a lot of people. That's always nice.
## Inspiration

The rise of AI and deep learning technology has lead to new technological advancements in society. But it also poses a critical threat to security and authenticity. It holds the power to impersonate important figures with absolute perfection. Imagine a scenario where an AI generated president authorized an attack that could lead to world war three? However, we can fight deep fakes using the same technological advancements.

## What it does

Quick Live is the new age of video authentication. Using the same technology that brought you Bitcoin, Quick Live stores important metadata at the time of recording. Then, it stores a transaction of that recording in a dedicated block-chain. That's right, decentralized records means a seal of authenticity for your important videos.

All you need to get started is to open up the the browser to our secure dashboard. Using a webcam, record your true self as our powerful back-end hashes your video frames for the block-chain. Will let you know when your video is fully processed.

## How we built it

Quick Live is a full-stack web app that utilizes Python as its back-end. All UI elements are powered by the Bootstrap library for a polished presentation. In addition to client-side Javascript, we stream the video using web socket frames to ensure a fast and safe route. Meanwhile in the python interpreter, frames are going through several hashes and a transaction is recorded and appended to the block-chain.

## Challenges we ran into

Believe it or not, the challenge was to get the webcam frames delivered to the backend. Because of the latency factor that comes from transferring images twenty four times per second, it was hard to optimize a real-time method for up-streaming.

Another challenge was processing the frames received and using the block-chain API. When we switched over to Flask, it was rather difficult to run multi-threaded processes that are required to hash frames.

## Accomplishments that we're proud of

For the first time in a hackathon, we used a web based front-end using Bootstrap. As a result, our project looks professional and polished. It also makes it accessible for most users, especially on mobile.

The video streaming itself was a grand accomplishment that was challenging to implement. It pushed us to use other web technologies that we were unfamiliar with.

## What we learned

This hackathon was very education for all of us. In addition to learning more about proper git collaboration, we dived into a new back-end framework (Flask) that was unfamiliar. It was similar to Express.js as it used routes and rendering templates.

On the other hand, we learned about web-sockets for the first time and how to provide consistent communication between the server and client. The video data needed to be optimized for sending at high speeds.

Finally, we learned about the fascinating word of block-chain transactions and how to write our own using a simple API. All being done in the comfort of a Python interpreter,

## What's next for Quite Live

As we only had the time to create the general process for processing videos, we would add more CRUD functionality and user authentication to keep track of recent video transactions.