/eduba-desktop

A desktop client implementation of the Eduba Protocol

Primary LanguageTypeScriptMIT LicenseMIT

Eduba Logo

About

Eduba is a protocol for publishing linked articles peer-to-peer on the Holepunch platform.

In this repository is the initial proof of concept client. It is a desktop application built on Electron.

See the architecture overview PDF.

Use

Eduba is still in phase 1 (see architecture overview PDF), and while there are installers available, Eduba will make changes that are not backwards compatible. Please use Eduba only for testing.

Download and run the package for your OS from the releases page.

Note: Publishers are being renamed to Channels, so you may see those used interchangeably. A publisher/channel is essentially the underlying data structure for transferring content.

Sign In

Signing in allows you to publish articles, save bookmarks, and subscribe to channels. Eduba uses your login credentials to generate the identifiers of the channels that you create. To ensure that your publishers' identifiers are unique, Eduba uses recovery phrases and hardware wallets for signing in, as is common in cryptocurrency. Eduba supports Ethereum and Bitcoin addresses, where each address is a unique user. You are not required to be familiar with cryptocurrency to use Eduba. Just click on the icon for generating a phrase, save it as you would a password, and use it to sign in. In the future, Eduba will use a smart contract based account identifier instead of login credentials as the key to generate channel identifiers.

Create Article

Articles are written in Markdown. To create an article, you must first create a publisher.

Troubleshooting

Eduba is a proof of concept and there are some bugs. If you get stuck, try deleting the localstorage cache. Article markdown supports HTML, but there is a bug, so HTML cannot have an open tag that does not have a closing tag.

Develop

yarn
touch .env
yarn start

Files are saved in the default application data directory for your OS.

Configure

Edit .env as desired.

APP_DATA_DIRECTORY="ABSOLUTE_PATH_TO_THIS_REPO/data"
LOG_LEVEL="debug"

Local Testnet

You can run a local Hyperswarm testnet for development.

node scripts/testnet.js

The script will output the environment variable DHT_BOOTSTRAP_NODES. Add it to your .env

Electron Forge

See the Electron Forge documentation for instructions on building native OS packages.

Warning

This application is in development. Do not trust it to be a reliable store of data. Keep a copy of all the articles and files that you publish, so that if you need to, you can easily restore your data. Do not use Eduba for sensitive information.