Skip to content

QuestNetwork/qD

Repository files navigation

Completion Help Wanted Version 0.9.3 Version 0.9.3 Sponsors Join the chat at https://gitter.im/QuestNetwork/qD

qD

Cross-Platform Trustless Social Network

Screenshot

In case you are experiencing connectivity issues, on the app you can try using different star node configurations in Settings > IPFS.

Description

qD is an example app for our JavaScript p2p library qOS with cool open source modules such as qD Messages and qD Social and the upcoming qD Vibes, qD Markets, qD News, qD Apps, qD Games and qD Calendar.

qD makes it possible to build custom, secure and decentralized social networks in less than 20 days.

Our quest network aims to allow the creation and (distributed) completion of quests supported by a feature rich decentralized social network.

0.9.5+ allow to connect qD Social profiles to Twitter without sharing information with Twitter as an additional layer of verification. It is planned to add passive verification for a custom list of external networks to verify the peer identities.

1.0.0+ complies with privacy regulations and can be used for confidential information as a production social network worldwide.

We have chosen Angular/Electron as an example environment because we believe it offers the best accessibility for developers coming from any other language/framework. The Quest Network is already being used in Python on PyQt5 and we aim to provide the underlying library in Go and wherever possible in Rust as well.

This app is built on qOS which makes use of the Interplanetary Filesystem, IPFS GossipSub and IPFS DAGs.

Look what other people have built with qD: Awesome Quest Network dApps!

qD allows to lazy load modules.

Security

Completion 1.0.0 EC AES

qOS uses 4096 Bit RSA-OAEP encryption, 256 Bit AES-CBC encryption and NIST P-521 EC signatures.

Download

Version Linux Mac Windows
0.9.4 qDesk-0.9.4.AppImage qDesk-0.9.4.dmg No Official Build
0.9.3-rc1 q-desk-0.9.3.AppImage q-desk-0.9.3.dmg No Official Build
0.9.2 quest-messenger-0.9.2.AppImage quest-messenger-0.9.2.dmg No Official Build
0.9.1 quest-messenger-0.9.1.AppImage quest-messenger-0.9.1.dmg No Official Build

If you want anything else, you'll have to build from sources and probably fix some stuff.

WARNING: 3rd party dependencies not audited. We recommend to use the downloaded app in a virtual machine until version 1.0.0.

Web Demo

0.9.4

Try our example application live in your browser. We recommend Chrome & Firefox.

https://gateway.pinata.cloud/ipfs/QmZNvMbTPCEW1vebsEc5L2dx18PeYCKgwP5oMCVREkmr3p/

https://cloudflare-ipfs.com/ipfs/QmZNvMbTPCEW1vebsEc5L2dx18PeYCKgwP5oMCVREkmr3p/

https://ipfs.eternum.io/ipfs/QmZNvMbTPCEW1vebsEc5L2dx18PeYCKgwP5oMCVREkmr3p/

https://ipfs.io/ipfs/QmZNvMbTPCEW1vebsEc5L2dx18PeYCKgwP5oMCVREkmr3p/

http://ipfs.infura.io/ipfs/QmZNvMbTPCEW1vebsEc5L2dx18PeYCKgwP5oMCVREkmr3p/

0.9.3-rc1

https://gateway.pinata.cloud/ipfs/QmTSuYWm2LXyYndEq2W62raSpjjUioSoSW3otSJRFQ1wra/

https://cloudflare-ipfs.com/ipfs/QmTSuYWm2LXyYndEq2W62raSpjjUioSoSW3otSJRFQ1wra/

https://ipfs.eternum.io/ipfs/QmTSuYWm2LXyYndEq2W62raSpjjUioSoSW3otSJRFQ1wra/

https://ipfs.io/ipfs/QmTSuYWm2LXyYndEq2W62raSpjjUioSoSW3otSJRFQ1wra/

http://ipfs.infura.io/ipfs/QmTSuYWm2LXyYndEq2W62raSpjjUioSoSW3otSJRFQ1wra/

Manual & Documentation

See our automated documentation for more information: https://questnetwork.github.io/docs

Lead Maintainer

StationedInTheField

Support Us

Please consider supporting us, so that we can build a non-profit for this project (ツ)

Ethereum Bitcoin
0xBC2A050E7B87610Bc29657e7e7901DdBA6f2D34E bc1qujrqa3s34r5h0exgmmcuf8ejhyydm8wwja4fmq

Development

Planning

See our Kanban for the development of 0.9.5, feel free to add or pick up features!

Prerequisites

1.)

Clone & Checkout essential repositories:

git clone https://github.com/QuestNetwork/qd-social-ts && git clone https://github.com/QuestNetwork/qd-messages-ts && git clone https://github.com/QuestNetwork/qD && cd qd-social-ts   && git checkout 0.9.4 && cd ..  &&  cd qd-messages-ts   && git checkout 0.9.4 && cd ..  &&  cd qD   && git checkout 0.9.4 && cd ..

OR

Clone & Checkout all repositories on the latest dev branch:

git clone https://github.com/QuestNetwork/qD && cd qD && git checkout 0.9.5-dev && npm run q-dev && cd ..

2.) Install Dependencies & Enter qD Repository:

cd quest-utilities-js && npm install && cd .. && cd quest-crypto-js && npm install && cd .. && cd quest-os-js && npm install && cd .. && cd qd-social-ts && npm run inst && cd .. && cd qd-messages-ts && npm run inst && cd .. && cd qD && npm run inst

Commands

Prepare Package

To The same directory you're cloning this repository to.

npm run inst Removes package-lock.json and runs npm install

Build For Linux

npm run linux Builds Linux AppImage and Snap files to dist/

Build For Mac

sed -i 's/"@questnetwork\/q-desk"/"q-desk"/g' package.json
&& npm run mac &&
sed -i  's/"q-desk"/"@questnetwork\/q-desk"/g'  package.json

Builds MacOS DMG and .app files to dist/ and dist/mac

Build For IPFS

ipfs daemon & npm run ipfs Creates the bundled application for the web with dynamic base path to dist/web

Build For Web

npm run web Creates the bundled application for the web with static base path / to dist/web

Serve For Web

npm run serve Serves the bundled application on localhost:4200 from dist/web

Serve For Web JIT

ng serve Serves a just in time compilation of the messenger on localhost:4200

Rest node_modules And Build For Web JIT

npm run serve-fresh Runs rm -rf node_modules && npm run inst && ng serve

Clear Watchlist

watch-reset Cleans the watch list, in case of System Limit error

IPFS Deploy

System Requirements: Memory 3.75GB Storage 6GB NodeJS 14 NPM 6 IPFS 0.6

ipfs daemon & npm run ipfs

ipfs pin add <CID>

If you have trouble getting the directory discovered by gateways, you can try ./ipfs-propagate.sh from the root of this repository. Keep in mind that the bundled web application is >14MB alone without assets, please be patient until we have a preloader.

We added an example swarm.json to the src/app folder with an example node to make reproduction easier, but we strongly recommend to use our Quest CLI to test and build the app.

Pro Tip: Put a file in your /bin that runs the quest-cli like so node /path/to/quest-cli/index.js from any folder on your system. It's much nicer!

Features

0.9.3

  • Does not depend on the internet
  • Does not depend on centralized servers
  • No static external address or port forwarding necessary
  • Dark Mode
  • AutoSave For Settings
  • Auto SignIn, if signed in
  • Enhanced Mobile UI, Centered Snackbar, New Fonts, Icons & Buttons
  • Included All Fonts And Icons In The Bundle
  • Export Settings
  • SignOut
  • Enable Write Lock To Keep All Processes From Writing
  • Disable AutoSave
  • Change AutoSave Interval
  • Dynamic Swarm Peer List On Desktop (add and remove bootstrap peers)
  • App is now modular, makes building add-ons easy
  • Drive Lock Fixed
  • Offer "LocalStorage" As A Storage Container On The Web To Stay Signed In
  • qD Messages [Beta]
  • qD Social [Beta]

0.9.4

  • Encrypt Account
  • Change Swarm Peers In The Browser
  • Quest Coral Module
  • Additional Peering, option to pull from GitHub.
  • Module Upgrades

0.9.5

  • Account Name For Additional Security & Hashing
  • qD redirects to the originally requested URI after signIn
  • New Help Link

Roadmap

0.9.5

0.9.6

0.9.7

  • qD News [Beta]
  • Quest Worker To Render .blend Files And Earn Rewards
  • Add Custom Themes By Pasting CSS Into The Built-In Theme Editor
  • Import/Export Themes
  • Light Mode
  • Unlimited Custom Emojis

0.9.8

  • Badges For Notifications
  • Desktop Notifications

0.9.9

1.0.0

2.0.0

3.0.0

4.0.0

  • OpenAI GPT3 Integration For Suggestions, AutoRespond And Completion

5.0.0

  • Modular Crypto Currency Integration (presets for Bitcoin, Monero and Chainlink)

Troubleshooting

⚠️ Messages are not being delivered || Participants won't update || Can't join channels

Solution: qD ^0.9.4 go to Settings > IPFS and either download an example swarm peer list from GitHub (https://github.com/QuestNetwork/qD/blob/0.9.4/src/app/swarm.json) or enter your own.

If your problem is not solved here, please file an issue on GitHub.

License

GNU Affero GPLv3