Hush is Free Software for making decentralized and federated encrypted messaging platforms. We are also a privacy coin, with a public "HUSH mainnet". https://hush.is/privacy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Duke Leto 3d33dafb85 Update 'README.md' 3 years ago
LICENSE Initial commit 3 years ago
README.md Update 'README.md' 3 years ago

README.md

Google Summer Of Code 2021

Hush is a first-time organization applying to GSoC 2021! This is our first year but we have lots of experience 😄

Idea List

Port HushChat GUI from SDL to SD

Type: Coding
Languages: C++14, QT5, Rust, Makefile, bash scripts

This is an exciting project to port the functionality of 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.

Port BTC Core bitcoin-asmap to Hush

Type: Coding
Languages: C/C++, Rust, Makefile

This is currently a Bitcoin Core Pull Request on Github:

https://github.com/bitcoin/bitcoin/pull/18573

This is something the Hush community also wants, as it helps protect against new network-level attacks like the "Erebus Attack" https://erebus-attack.comp.nus.edu.sg

This is an active topic in the Bitcoin community and may be a way for the interested student to become a Bitcoin Core Contributor, if we send code upstream to Bitcoin.

Related info:

BTC Core review club: https://bitcoincore.reviews/16702

BitMex research: https://blog.bitmex.com/call-to-action-testing-and-improving-asmap/

web: Improving Hush Smart Chain Creator with Interactive Docs

Type: Coding, Documentation, Graphics
Languages: HTML, CSS, Javascript

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

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++

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.

SilentDragon: GUI tab showing Peer Info

Type: Coding
Languages: C++14 with QT5

Add a GUI tab to SD that shows information from getpeerinfo, specifically:

  • IP address
  • Ping time
  • TLS cipher used
  • ASN (Autonomous System Number)

This is important to make it easier for users to see who their peers are, including metrics to decide if they are under attack. This data is currently very hard to see except for command-line users.

This "Peers Tab" should also show a list of Banned Peers and Disconnected Peers, to further help debug and research potential network attacks.

SilentDragon: HushDEX QT GUI

Type: Coding
Languages: C++14 with QT5

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.

mobile: Android Lite Wallet

Type: Coding, Graphics, UI/UX
Languages: Kotlin Android App

Currently Hush has an Android app on the Google Play 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