From 0e361ee8117b873534a3420261af133c09628a0e Mon Sep 17 00:00:00 2001 From: Thomas Zarebczan Date: Thu, 12 Jul 2018 16:35:06 -0400 Subject: [PATCH 1/8] lbry-app > lbry-desktop --- content/contribute/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/contribute/index.md b/content/contribute/index.md index 48347fb..958ab8f 100644 --- a/content/contribute/index.md +++ b/content/contribute/index.md @@ -31,8 +31,8 @@ If you want to contribute to LBRY, the first step is to understand where. | Application | Language (Toolset) | What Is It --- | --- | --- | [lbry-desktop](https://github.com/lbryio/lbry-desktop) | JavaScript (ReactJS, Electron) | A graphical browser for the LBRY protocol for Windows, macOS, and Linux. `lbry-desktop` bundles `lbry` and is primarily frontend code. -| [lbry-android](https://github.com/lbryio/lbry-app) | JavaScript (ReactNative), Python (kivy) | A graphical browser for the LBRY protocol for Android. `lbry-android` bundles `lbry` and is primarily frontend code. -| [lbry-redux](https://github.com/lbryio/lbry-app) | JavaScript (Redux) | A common codebase for shared Redux logic between `lbry-desktop` and `lbry-android`. +| [lbry-android](https://github.com/lbryio/lbry-desktop) | JavaScript (ReactNative), Python (kivy) | A graphical browser for the LBRY protocol for Android. `lbry-android` bundles `lbry` and is primarily frontend code. +| [lbry-redux](https://github.com/lbryio/lbry-redux) | JavaScript (Redux) | A common codebase for shared Redux logic between `lbry-desktop` and `lbry-android`. | [spee.ch](https://github.com/lbryio/spee.ch) | JavaScript (Node, ReactJS, Express) | A web-based host for free LBRY content. Usable directly as a content link dump site or as a customized, standalone install. ### Websites From d6e220d3dbfa9891355bff9534815da91af47bc9 Mon Sep 17 00:00:00 2001 From: Thomas Zarebczan Date: Thu, 12 Jul 2018 16:40:35 -0400 Subject: [PATCH 2/8] lbry-app > lbry-desktop + add outpoint/resolve --- content/glossary.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/content/glossary.md b/content/glossary.md index af338a4..ff0b034 100644 --- a/content/glossary.md +++ b/content/glossary.md @@ -136,7 +136,7 @@ The daemon combines various components to provide a single API across the LBRY e ### LBRY Redux -[lbry-redux](https://github.com/lbryio/lbry-redux) is a module which contains common React and redux code shared between lbry-app and lbry-android. +[lbry-redux](https://github.com/lbryio/lbry-redux) is a module which contains common React and redux code shared between lbry-desktop and lbry-android. ### LBRY Protocol @@ -210,6 +210,10 @@ Stands for "number used once". A 32-bit number in a *block header* which is iter A valid block that is no longer a part of a *main chain*. Usually happens when two or more blocks of the same *height* are produced at the same time. When one of them becomes a part of the main chain, others are considered "orphaned". Orphans also may happen when the blockchain is *forked* due to an attack (see *51% attack*) or a bug. Then a chain of several blocks may become abandoned. Usually a transaction is included in all blocks of the same height, so its *confirmation* is not delayed and there is no *double spend*. See also *Fork*. +### Outpoint + +An outpoint, as refereenced in API documentation and elsewhere, is the most specific identification for a particular version of a claim (a claim may be updated and will be referenced by a new outpoint). The outpoint is the concatenation of the transaction id and nout (position in the transaction). Outpoint example: f6dea4ad26fd526b77935969a17b081342fc92d68b3a1daf69d4a3378657c2fc:0 + ### Peer A peer is one instance of a client running on a computer on the Internet to which other clients connect and transfer data. Depending on context, "peer" can refer either to any client in the swarm or more specifically to a downloader, a client that has only parts of the file. @@ -246,6 +250,10 @@ A reflector cluster to accept LBRY content for hosting en masse, rehost the cont An event in the *node* when one or more blocks in the *main chain* become *orphaned*. Usually, newly received blocks are extending existing main chain. Sometimes (4-6 times a week) a couple of blocks of the same *height* are produced almost simultaneously and for a short period of time some nodes may see one block as a tip of the main chain which will be eventually replaced by a more difficult block(s). Each transaction in the orphaned blocks either becomes invalid (if already included in the main chain block) or becomes *unconfirmed* and moved to the *mempool*. In case of a major bug or a *51% attack*, reorganization may involve reorganizing more than one block. +### Resolve + +The resolve API command returns all available information about a claim or channel. + ### Reward Amount of newly generated LBRY credits that a *miner* may claim in a new block. The first transaction in the block allows miner to claim currently allowed reward as well as all *transaction fees* from all transactions in the block. For security reasons, rewards cannot be *spent* before 100 blocks built on top of the current block. From f7d2eb3bf5ca8ef616fba87356917777a96a40ef Mon Sep 17 00:00:00 2001 From: Thomas Zarebczan Date: Thu, 12 Jul 2018 16:45:49 -0400 Subject: [PATCH 3/8] Update Ecosystem.vue --- content/.vuepress/components/Ecosystem.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/.vuepress/components/Ecosystem.vue b/content/.vuepress/components/Ecosystem.vue index 2cedf58..0ec2c1b 100644 --- a/content/.vuepress/components/Ecosystem.vue +++ b/content/.vuepress/components/Ecosystem.vue @@ -38,7 +38,7 @@

Source

    @@ -202,7 +202,7 @@

    Additional Resources

    • - Linux, macOS, and Windows apps + Linux, macOS, and Windows apps
    • Android app From 9f0a7fb7a530f91f33d4e33ce28cffb2b0b6c035 Mon Sep 17 00:00:00 2001 From: Alex Grin Date: Mon, 16 Jul 2018 14:46:07 -0400 Subject: [PATCH 4/8] Update index.md --- content/overview/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/overview/index.md b/content/overview/index.md index 61cf040..850aa00 100644 --- a/content/overview/index.md +++ b/content/overview/index.md @@ -12,7 +12,7 @@ That's the idea behind LBRY. That's a fancy sentence, so here's a plainer one: we just thought it'd be really damn cool if there was a system that stored as much of the world's information as possible, but was owned and controlled by no one. -1 In the information theoric sense, i.e. any data. LBRY facilitates distribution of all data, whether it be a video or a spreadsheet. +1 In the information-theoretic sense, i.e. any data. LBRY facilitates distribution of all data, whether it be a video or a spreadsheet. 2 Accessible anywhere in the world on any internet-connected device. From f5b46409ac423f7d18e63aec33be869afd46da05 Mon Sep 17 00:00:00 2001 From: Electron - Mark Firth Date: Wed, 18 Jul 2018 00:26:23 +1000 Subject: [PATCH 5/8] Effective Amount ### Effective Amount The total amount assigned to the claim, including supports. --- content/glossary.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/glossary.md b/content/glossary.md index ff0b034..8c5cc45 100644 --- a/content/glossary.md +++ b/content/glossary.md @@ -86,6 +86,10 @@ A transaction output that is smaller than a typically fee required to spend it. Stands for *Elliptic Curve Digital Signature Algorithm*. Used to verify transaction ownership when making a transfer of bitcoins. See *Signature*. +### Effective Amount + +The total amount assigned to the claim, including supports. + ### Elliptic Curve Arithmetic A set of mathematical operations defined on a group of points on a 2D elliptic curve. LBRY, similar to the Bitcoin protocol, uses predefined curve [secp256k1](https://en.bitcoin.it/wiki/Secp256k1). Here's the simplest possible explanation of the operations: you can add and subtract points and multiply them by an integer. Dividing by an integer is computationally infeasible (otherwise cryptographic signatures won't work). The private key is a 256-bit integer and the public key is a product of a predefined point G ("generator") by that integer: A = G * a. Associativity law allows implementing interesting cryptographic schemes like Diffie-Hellman key exchange (ECDH): two parties with private keys *a* and *b* may exchange their public keys *A* and *B* to compute a shared secret point C: C = A * b = B * a because (G * a) * b == (G * b) * a. Then this point C can be used as an AES encryption key to protect their communication channel. From 8850ea8e9638544f408b62507b6bb95a2ea56756 Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 17 Jul 2018 20:18:31 -0400 Subject: [PATCH 6/8] Update lbry-claimtrie.md // https://github.com/lbryio/lbrycrd/pull/137 --- content/resources/lbry-claimtrie.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/resources/lbry-claimtrie.md b/content/resources/lbry-claimtrie.md index bcc0796..159c5dd 100644 --- a/content/resources/lbry-claimtrie.md +++ b/content/resources/lbry-claimtrie.md @@ -36,7 +36,7 @@ This section describes how bids are processed by the ClaimTrie in order to deter * If the bid with the greatest amount does not have the same claimID as the bid which was ‘controlling’ prior to including the current block, change the delay for the name as of the current block to 0, redetermine which bids and supports should be active, and then perform the previous calculation again. * At this point, the bid calculated to have the greatest amount behind it is the ‘controlling’ bid as of this block 5. *Spent*: A transaction has been included in the blockchain which spends the TXout which contains the bid. Must be in the ‘accepted’ state. -6. *Expired*: All bids ‘expire’ regardless of what state they are in when the current block height exceeds the height of the block at which the bid was accepted plus 52416 blocks, or 91 days ( currently this is set to 262974 blocks, or 456 days, which will be fixed in a future hard fork ). Updated claims will restart the expiration timer at the block height of the update. +6. *Expired*: All bids ‘expire’ regardless of what state they are in when the current block height exceeds the height of the block at which the bid was accepted plus 2102400 blocks, or 3650 days or 10 years considering a 2.5 minute block time. ( Prior to block 400155 this was set to 262974 blocks, or 456 days, which was changed with a [hardfork](https://github.com/lbryio/lbrycrd/pull/137). Updated claims will restart the expiration timer at the block height of the update. ## ClaimTrie Transaction Implementation From d695e3ceb7ccbace906e2671f929dc71594bad51 Mon Sep 17 00:00:00 2001 From: Jeremy Kauffman Date: Mon, 23 Jul 2018 18:14:55 -0400 Subject: [PATCH 7/8] more words --- content/.vuepress/components/Ecosystem.vue | 133 ++++++++---------- .../.vuepress/components/MissionStatement.vue | 12 +- content/overview/index.md | 18 +-- 3 files changed, 77 insertions(+), 86 deletions(-) diff --git a/content/.vuepress/components/Ecosystem.vue b/content/.vuepress/components/Ecosystem.vue index 0ec2c1b..200740f 100644 --- a/content/.vuepress/components/Ecosystem.vue +++ b/content/.vuepress/components/Ecosystem.vue @@ -57,30 +57,29 @@

      Blockchain - The blockchain is "lbrycrd" + The foundation of the LBRY protocol
      - Applications - Data Network + lbrycrd

      - This section assumes "blockchain" already means something to you. If you're totally new, the key problem solved by blockhain is the ability for distributed, disparate entities to all agree on a rivalrous state of affairs (such as account balances or metadata associated with a URL). + This section assumes "blockchain" already means something to you. If you're totally new, the key problem solved by blockhain is the ability for distributed, disparate entities to all agree on a state of affairs. For a more comprehensive introduction to blockchain, try starting [here].

      - The LBRY blockchain is a public and uses proof-of-work consensus. It is the foundation of the protocol stack. + The LBRY blockchain is a public, proof-of-work of work blockchain consensus. It is the foundation of the protocol stack.

      The most salient feature of the LBRY blockchain is the association of a normalized character string with up to 8KB of metadata. - This string of characters forms a LBRY URL, e.g. + This string of characters forms a LBRY URL, e.g. lbry://hellolbry.

      - The LBRY blockchain contains two parallel [[Merkle Tree]]s, one for transactions (ala Bitcoin) and one for storing LBRY URLs and metadata. + The LBRY blockchain contains two parallel [[Merkle Tree]]s, one for transactions (ala Bitcoin) and one for storing LBRY URLs and metadata. This allows LBRY URLs to be trustfully resolved even without a full copy of the blockchain.

      Conventionally, this metadata contains information about the content, such as the title and creator, the price (if any), and a unique signature allowing the actual content to be fetched from the data network, the next level in the LBRY stack. @@ -88,7 +87,10 @@

      Additional Resources

      • - See the [Whitepaper] + See the [[Whitepaper]] for a more comprehensive introduction to the LBRY blockchain. +
      • +
      • + See the [[Resources]] for documentation about the LBRY blockchain, including it's API.
      • See [[Naming]] for learning more about LBRY URLs and how they work. @@ -106,51 +108,46 @@

        Data Network - The data network is "lbry" + The "nuts and bolts" (fix this) of the LBRY protocol
        - Applications - Blockchain + lbry + torba + lbryschema

        +

        + While blockchain is the innovation that makes LBRY possible, the Data Network is the layer that actually + makes the blockchain useful. +

        +

        + The primary component for this level is lbry, a daemon that: +

          -
        • - lbryschema - -

          Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.

          - -
            -
          • Lorem ipsum dolor sit amet, consectetur adipiscing elit.
          • -
          • Himenaeos purus facilisi litora suspendisse molestie, cubilia maecenas faucibus vivamus.
          • -
          • Nisi sociosqu interdum augue condimentum vivamus, ac leo feugiat.
          • -
          • Justo eu neque aenean nec sagittis, cubilia magnis arcu.
          • -
          -
        • - -
        • - lbryumx - -

          Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.

          - -
            -
          • Lorem ipsum dolor sit amet, consectetur adipiscing elit.
          • -
          • Himenaeos purus facilisi litora suspendisse molestie, cubilia maecenas faucibus vivamus.
          • -
          • Nisi sociosqu interdum augue condimentum vivamus, ac leo feugiat.
          • -
          • Justo eu neque aenean nec sagittis, cubilia magnis arcu.
          • -
          -
        • +
        • Interprets and validates metadata in the LBRY blockchain via [lbryschema].
        • +
        • Accesses and distributes the data referenced by metadata in the LBRY blockchain via a peer-to-peer network.
        • +
        • Provides wallet functionality via an [[SPV]] wallet ([torba]).
        • +
        • Facilitates building applications by being easily bundable and providing a simple, clean API for the LBRY protocol.
        - +

        + Unless choosing to re-implement aspects of the LBRY protocol by hand, most applications that interact with the LBRY network will bundle lbry. +

        Additional Resources

        • - lbryschema + See the [[Whitepaper]] for a more comprehensive introduction to the LBRY data network.
        • - lbryumx + See [[Resources]] for documentation of the LBRY APIs. +
        • +
        • + See [[Whatever]] for learning more about LBRY distributes data. +
        • +
        • + See [[Build]] for learning how to use the daemon to solve your own problem or build your own app!
        @@ -162,59 +159,43 @@

        Applications - LBRY has a lot of applications + Browsers, spee.ch, and ∞
        - Blockchain - Data Network + desktop + android + spee.ch

        +

        + Applications are the final level of the LBRY stack, and they represent how most people will actually use LBRY. +

        +

        + LBRY Inc. currently releases and maintains three applications: +

          -
        • - Desktop -

          Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.

          -
        • - -
        • - Mobile -

          Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.

          -
        • - -
        • - spee.ch -

          Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.

          -
        • - -
        • - lighthouse -

          Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.

          -
        • - -
        • - chainquery -

          Vel nisi hendrerit id tristique congue tortor nisl luctus, vulputate sem ridiculus inceptos et at torquent feugiat, mus cursus lobortis aenean senectus posuere odio. Imperdiet nascetur dapibus eget convallis ante donec iaculis dictumst mi est, venenatis quisque integer etiam justo id aliquet non diam semper erat, blandit quis lectus ac aptent magna cubilia augue laoreet. Mollis luctus pharetra nisl auctor potenti magna penatibus cras, justo lobortis iaculis porta a vel habitasse vulputate, taciti sociis arcu facilisis duis orci aliquam.

          -
        • +
        • lbry-desktop, a desktop browser for the LBRY network based in React and Electron.
        • +
        • lbry-android, an Android browser for the LBRY network in React Native.
        • +
        • spee.ch, a web-based viewer and link dump for free LBRY content.
        - +

        + However, the very idea of LBRY is that there's not just one way to interact with the network. + Anyone can build on top of LBRY in a permissionless manner. + These applications exist to show what's possible and to give new users a user-friendly way to use LBRY. +

        Additional Resources

        diff --git a/content/.vuepress/components/MissionStatement.vue b/content/.vuepress/components/MissionStatement.vue index 6d32f26..8510155 100644 --- a/content/.vuepress/components/MissionStatement.vue +++ b/content/.vuepress/components/MissionStatement.vue @@ -2,7 +2,13 @@
        Mission Statement - To create a market for accessing and publishing information1 that is global2, decentralized3, robust4, optimal5 and complete6. + To create a market for accessing and publishing + information1 + that is global2, + decentralized3, + robust4, + optimal5 and + complete6.
        @@ -17,6 +23,10 @@ line-height: 1.55; position: relative; + a { + background-image: none; + } + @media (min-width: 901px) { font-size: 1.25rem; } diff --git a/content/overview/index.md b/content/overview/index.md index 850aa00..453c06a 100644 --- a/content/overview/index.md +++ b/content/overview/index.md @@ -4,25 +4,25 @@ title: Overview ## Mission -What if anyone in the world could publish a piece of digital content, anyone else in the world could access it, for free or for payment, and that entire system worked without any centralized authority or point of control? +What if anyone in the world could publish digital content, anyone else in the world could access it, for free or for payment, and that entire system worked without any centralized authority or point of control? -That's the idea behind LBRY. +That's the mission of LBRY: -That's a fancy sentence, so here's a plainer one: we just thought it'd be really damn cool if there was a system that stored as much of the world's information as possible, but was owned and controlled by no one. +That's a fancy sentence, so here's a plainer one: we just thought it'd be really damn cool if there was a system that made discoverable and distributable as much of the world's information as possible, but was owned and controlled by no one. -1 In the information-theoretic sense, i.e. any data. LBRY facilitates distribution of all data, whether it be a video or a spreadsheet. +1 In the information theoric sense, i.e. any data. LBRY facilitates distribution of all data, whether a video or a spreadsheet. -2 Accessible anywhere in the world on any internet-connected device. +2 Accessible anywhere in the world on any internet-connected device. -3 Not controlled by any one person, party or authority. +3 Not controlled by any one person, party or authority. -4 Resistant to censorship or attempts to control; impervious to attacks or disruptions. +4 Resistant to censorship or attempts to control; impervious to attacks or disruptions. -5 In the Pareto sense, with regards to the production and distribution of information (i.e. digital information is both created and distributed in a way that could not be any more efficient from the perspectives of information producers and consumers) +5 In the Pareto sense, with regards to the production and distribution of information (i.e. digital information is both created and distributed in a way that could not be any more efficient from the perspectives of information producers and consumers) -6 The most complete collection of world’s books, films, art, games, etc. should be available via LBRY. +6 The most complete collection of world’s books, films, art, games, etc. should be available via LBRY. ## Ecosystem Overview From 047a6e6912d63405d4c25245f2b3085fe18d7bb7 Mon Sep 17 00:00:00 2001 From: Thomas Zarebczan Date: Tue, 24 Jul 2018 09:51:24 -0400 Subject: [PATCH 8/8] effective amount + added Support --- content/glossary.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/content/glossary.md b/content/glossary.md index 8c5cc45..c20e7e6 100644 --- a/content/glossary.md +++ b/content/glossary.md @@ -88,7 +88,7 @@ Stands for *Elliptic Curve Digital Signature Algorithm*. Used to verify transact ### Effective Amount -The total amount assigned to the claim, including supports. +The total LBC amount assigned to a claim, including the original bid and any tips/supports. During a vanity URL takeover, the effective amount is shown as 0. ### Elliptic Curve Arithmetic @@ -298,6 +298,10 @@ A transaction *output* can be spent only once: when another valid transaction ma Streaming media is multimedia that is constantly received by and presented to an end-user while being delivered by a provider. In LBRY, streams as associated with claim data in order to provide the capability to download files over a Peer to Peer network. +### Support (Claim Support) + +A support is a wallet send transaction that includes claim information, which results in adding to a claim's effective amount. A tip is a special type of suppot that is sent from one wallet to another, so that the receiver can spend it to their own wallet. + ### Target A 256-bit number that puts an upper limit for a block header hash to be valid. The lower the target is, the higher the *difficulty* to find a valid hash. The maximum (easiest) target is 0x00000000FFFF0000000000000000000000000000000000000000000000000000. The difficulty and the target are adjusted every 2016 blocks (approx. 2 weeks) to keep interval between the blocks close to 10 minutes.