blockstack-packages / blockstack-desktop-specs

Specifications for the Blockstack desktop app - a local node with a rest API and a web dashboard
MIT License
4 stars 5 forks source link

Critical Path Proposal #6

Open shea256 opened 7 years ago

shea256 commented 7 years ago

Here's a proposal of the critical path for the Blockstack desktop app, which will give users access to the new Blockstack internet:

  1. Pull out the ID panel into a single-page web app
  2. Update the Blockstack client daemon to provide HTTP servers on localhost:80
    1. localhost:80 serves up the ID panel app
    2. localhost:80/api serves up the client API
  3. Create an unbound fork
    1. The fork delegates all DNS calls that end with ICANN TLDs (http://www.iana.org/domains/root/db) to the user’s traditional resolver.
    2. The fork delegates all DNS calls that end with non-ICANN TLDs to Blockstack Core
    3. The fork delegates local://id to localhost:80
  4. Create a desktop app that users install to run in the background and give them access to the new internet
    1. The app comes with a Blockstack client daemon that runs in the background
    2. The app comes with an unbound resolver that runs in the background
    3. The app changes the operating system's DNS settings to the local unbound resolver
shea256 commented 7 years ago

The Blockstack desktop app should come with a locally running Blockstack Core node (with it's own HTTP REST API), a DNS resolver, and an identity and storage management dashboard that's served over localhost.

shea256 commented 7 years ago

Updated proposal:

  1. Create a dashboard for managing identity, apps, and storage (as a single-page web app)
  2. Update the Blockstack client daemon to provide HTTP servers on localhost:80
    1. localhost:80 serves up the dashboard
    2. localhost:80/api serves up the client API
  3. Create a DNS resolver as either an unbound fork or a python server
    1. The resolver delegates all DNS calls that end with ICANN TLDs to the user’s traditional resolver.
    2. The resolver delegates all DNS calls that end with non-ICANN TLDs to Blockstack Core
    3. The fork delegates blockstack.app to localhost:80
  4. Create a desktop installer
    1. The app comes with a Blockstack client daemon that runs in the background
    2. The app comes with a local resolver that runs in the background
    3. The app changes the operating system's DNS settings to the local unbound resolver