# Project List ## mobile: Android Lite Wallet ``` Type: Coding, Graphics, UI/UX Languages: Kotlin Android App Difficulty: Medium to Challenging ``` Currently Hush has an Android app on the [Google Play](https://play.google.com/store/apps/details?id=org.myhush.silentdragon) store, but it is a "remote control" and requires a desktop computer to pair a full node. Many people around the world do not own a desktop and only own a mobile device. This has made us rethink our stance on purely mobile wallets, where private keys are stored locally on-device. This idea would be adding an important feature to https://git.hush.is/hush/SilentDragonAndroid such that the user can create a wallet without connecting/pairing to their full node on a desktop, what is called a "lite wallet". This means generating a "seedphrase" which the user backs up by writing on a peice of paper. That seedphrase is sufficient to recover any private keys of all addresses in the wallet. This idea would be coding in Kotlin in an established Android App codebase, specifically, to add this Kotlin dependency to the app: https://git.hush.is/hush/kotlin-bip39 and also a GUI to do the following things: * Generate a new seedphrase, show to user * Verify user has written down seedphrase, via choosing words on-screen * Restore wallet from seedphrase * Extra credit: Sweep funds from private key in QR code into current wallet More info on HushDroid: https://git.hush.is/hush/hushdroid ## Port HushChat GUI from SDL to SD ``` Type: Coding Languages: C++14, QT5, Rust, Makefile, bash scripts Difficulty: Challenging ``` This is an exciting project to port the functionality of [HushChat](https://git.hush.is/hush/hushchat) from our lite wallet into our GUI full node wallet. Currently HushChat Protocol whitepaper is in development and we have a plan for how to migrate code. A lot of the GUI code will be re-used, QT5 has re-usable XML files that we can use as the basis of the SD HushChat GUI. HushChat is a decentralized encrypted messaging platform, which is Free Software, and can be "federated" with the public "HUSH mainnet" or people can create their own encrypted messaging platforms on their own servers. The HUSH [Twitter](https://twitter.com/MyHushTeam) account and [Duke Leto's LinkedIn](https://linkedin.com/in/jaleto) have explanations about HushChat. ## Port Zcash iOS wallet to Hush ``` Type: Coding Languages: C++, Swift, iOS Difficulty: Medium to Challenging ``` Currently we have no mobile wallet on iOS and this project would be to port code from the Zcash project to work with Hush. This would involve changing the code to use the Hush fork of librustzcash and UI/UX changes related to different currency units, documentation, links and disabling transparent address support. https://github.com/zcash/ZcashLightClientKit ## Package SilentDragon with Tor ``` Type: Coding/Packaging Languages: Build system scripts, Make, autoconfig Difficulty: Medium to Challenging ``` We want our users to have the protections of Tor out-of-the-box, without doing anything extra, like Tor Browser. This task will have students take the latest stable version of Tor at the time, and build a Docker environment where anybody can easily "spin up" a SD instance which connects to the local Tor middle node running on localhost. At first this project will only target Linux support, but it needs to be written in a way that future support for Mac+Windows is not painful. ## Hush Full Node Tor optimizations/improvements ``` Type: Coding Languages: C/C++ Difficulty: Easty to Medium ``` Many new improvements related to Tor have been merged into Bitcoin Core recently, which are compatible with Hush, since we are based on Bitcoin Protocol. These are related to new security and performance improvements, and relate with, but are independent of, the previous task of SD+Tor. One is better tracking of Tor nodes, as different from nodes connecting via the local network and another is to prevent Tor nodes from getting banned as easily as other nodes, since they often have much less bandwidth and higher latency. These are some related Gitea issues: https://git.hush.is/hush/hush3/issues/34 https://git.hush.is/hush/hush3/issues/33 ## web: Improving Hush Smart Chain Creator with Interactive Docs ``` Type: Coding, Documentation, Graphics Languages: HTML, CSS, Javascript Difficulty: Easy ``` https://hush.is/hsc-creator/ This would involved porting some of the documentation from our upstream, with various changes: https://developers.komodoplatform.com/basic-docs/smart-chains/introduction-to-smart-chain-documentation.html There are many more advanced features that the config-generator could learn about, and more importantly, this website is a perfect place to teach people interactively. ## web: Improving Hush Full Node Config Generator with Interactive Docs ``` Type: Coding, Documentation, Graphics Languages: HTML, CSS, Javascript Difficulty: Easy ``` Currently the Hush Config Generator is very useful for CLI users to generate config files, which is done automatically for GUI users: https://hush.is/config-generator Like above, there are many places where links to documentation and videos would make the CG more useful, explaining command-line arguments, adding Frequently Asked Questions and giving some examples of common scenarios. ## hushd: Tor version 3 Hidden Service P2P ``` Type: Coding, testing Languages: C/C++, bash scripting, command line Unix Difficulty: Medium ``` This idea would be to work directly with Duke Leto to merge the `p2p` branch of https://git.hush.is/hush/hush3 , which is the Hush Full Node, to add support for Tor v3 HS's. This will involve porting code from Bitcoin master branch at https://github.com/bitcoin/bitcoin , which recently gained support for Tor v3. Currently Hush only supports Tor v2, which is being deprecated by the Tor Network, due to it's susceptibility to attacks. This task involves coding in C++, and doing network-based tests over Tor to verify things work correctly, which will require running at least two and potentially many nodes to simulate some network conditions. This will be done with various other developers that can help students learn how to setup the environment and run the test suite. ## SilentDragon: HushDEX QT GUI ``` Type: Coding Languages: C++14 with QT5 Difficulty: Medium to Challenging ``` This idea would be to add the frontend GUI component for HushDEX, a decentralized network for privacy coins. The code would be in SilentDragon at https://git.hush.is/hush/SilentDragon . Specifically, a new tab in the GUI will be created for HushDEX, to allow swapping between HUSH and Monero (XMR). More details can be found here: https://hush.is/hushdex This involves coding in C++14 and QT5 GUI framework. QT Creator is an IDE GUI that you can use to create and edit these interfaces: https://doc.qt.io/qtcreator/ Hush uses QT 5.15 currently and does not plan to upgrade to QT6.