From 7ccb5791e6f3a11738f8c4c40c9efd0679380629 Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Fri, 1 Feb 2019 13:26:49 -0500 Subject: [PATCH] update 'how to build' for desktop --- documents/build.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/documents/build.md b/documents/build.md index 78dbd93..aedeec7 100644 --- a/documents/build.md +++ b/documents/build.md @@ -5,7 +5,7 @@ title: Build ## THIS IS NOT DONE AT ALL AND IF YOU CONTINUE TO READ IT YOU MENTALLY ASSENT TO COMMITTING AT LEAST ONE CHANGE THAT MAKES IT BETTER ## Introduction - + Want to build something on top of LBRY? This is the place to get started. At least, it's the place to get started so long as you have some idea of what LBRY _is_. If you don't, you should read the @@ -18,7 +18,7 @@ Want to build with us rather than on your own? Check out our [Contributing Guide - You want to build an application that contributes to the world's knowledge, or benefits from global, shared discovery. - You want to replace an existing centralized service related to digital content distribution with a decentralized or community-controlled one. - You want to build an application that is [[permissionless]] to interact with. -- You want to further openness, freedom of information, and/or personal choice on the internet. +- You want to further openness, freedom of information, and/or personal choice on the internet. ### When Not to Use LBRY @@ -29,9 +29,9 @@ Want to build with us rather than on your own? Check out our [Contributing Guide You can build many types of apps. Fat apps, short apps, tall apps, skinny apps! -Most end-user applications will use the [lbry-sdk](https://github.com/lbryio/lbry) as a way of accessing and communicating with the LBRY network. A look at the [APIs](/api/sdk) provided by the SDK will help you understand what facilities the SDK provides. +Most end-user applications will use the [lbry-sdk](https://github.com/lbryio/lbry) as a way of accessing and communicating with the LBRY network. A look at the [APIs](/api/sdk) provided by the SDK will help you understand what facilities the SDK provides. -Some applications do not need to access content available on the network (e.g. a wallet-only app, or a blockchain visualizer). These applications might use [lbrycrd](//github.com/lbryio/lbrycrd), the blockchain daemon, or [chainquery](//github.com/lbryio/lbrycrd), which parses blockchain data into SQL. +Some applications do not need to access content available on the network (e.g. a wallet-only app, or a blockchain visualizer). These applications might use [lbrycrd](https://github.com/lbryio/lbrycrd), the blockchain daemon, or [chainquery](https://github.com/lbryio/chainquery), which parses blockchain data into SQL. Let's look at some specific types of applications and the basic design for each. @@ -40,7 +40,7 @@ Let's look at some specific types of applications and the basic design for each. #### Full Web Applications By full web application, we mean a centrally-hosted web application that uses most or all of the suite of capabilities the LBRY protocol provides. - + 1. Pick your favorite language and stack and do your typical setup to get a "Hello World" application running. 1. Install [lbry-sdk](//github.com/lbryio/lbry). (Docker images? Other convenient ways of doing this?) 1. Bridging basics. @@ -48,24 +48,28 @@ By full web application, we mean a centrally-hosted web application that uses mo #### Blockchain Applications -1. Might not need SDK -1. Just use chainquery/lbrycrd +Sometimes you don't need the [SDK](https://github.com/lbryio/lbry). If you wanted to build a block explorer, you would only need to include [lbrycrd](https://github.com/lbryio/lbrycrd). Or if you only want to search through blockchain, [chainquery](https://github.com/lbryio/chainquery) is perfect for that. You can pair these with any language or tooling you want. #### Other Web Applications -1. Do these exist? +It is also possible to create a browser extension similar to Joule and Metamask. The browser could interact with the [SDK](https://github.com/lbryio/lbry) running locally on a users computer, or through a centrally hosted server. + ### Desktop Applications +If you are looking for more decentralization, a full desktop app can achieve that. If that is not something you care about, there are still a number of features that are desirable over a traditional web application, with full access to the file system being one of those. This allows users to be in control of how they view their files, and if they want to help strengthen LBRY network through seeding. + +If you would like to create a desktop application, there are a few ways to do so. + #### Electron Apps -1. Use electron-starter kit -1. (Explain basic development) +The [official LBRY desktop app](https://github.com/lbryio/lbry-desktop) is built with electron. It is very easy to develop with, and allows web developers to easily start creating "native" desktop applications. You can use a plain html page with a `