diff --git a/Makefile b/Makefile index df79f1f..8ed05cb 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,3 @@ index.html: index.md style.css - ./bin/gh-md-toc --insert index.md + # ./bin/gh-md-toc --insert index.md ./bin/mmark-linux-amd64 -head head.html -html index.md > index.html \ No newline at end of file diff --git a/head.html b/head.html index 0df7d6a..a23d90d 100644 --- a/head.html +++ b/head.html @@ -1,2 +1,26 @@ + + + \ No newline at end of file diff --git a/index.html b/index.html index fc27bd5..b9a9ac2 100644 --- a/index.html +++ b/index.html @@ -5,8 +5,31 @@ + - + +

LBRY: A Decentralized Digital Content Marketplace

@@ -17,6 +40,9 @@

For more technical information about LBRY, visit lbry.tech.

+

+

+

Introduction

LBRY is a protocol for accessing and publishing digital content in a global, decentralized marketplace. Clients can use LBRY to publish, host, find, download, and pay for content — books, movies, music, or anything else. Anyone can participate and no permission is required, nor can anyone be blocked from participating. The system is distributed, so no single entity has unilateral control, nor will the removal of any single entity prevent the system from functioning.

@@ -29,155 +55,6 @@
  • why is it different/better than what existed before
  • -

    Table of Contents

    - -

    - - - - - -

    -

    Overview

    This document defines the LBRY protocol, its components, and how they fit together. At its core, LBRY consists of several discrete components that are used together in order to provide the end-to-end capabilities of the protocol. There are two distributed data stores (blockchain and DHT), a peer-to-peer protocol for exchanging data, and several specifications for data structure, transformation, and retrieval.

    @@ -244,7 +121,7 @@
    Creates a pseudonym that can be declared as the publisher of a set of stream claims.
    -

    Properties

    +

    Properties

    Claims have four properties:

    @@ -260,7 +137,7 @@ -

    Example Claim

    +

    Example Claim

    @@ -288,7 +165,7 @@ } -

    Operations

    +

    Operations

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

    For more details on the specific claimtrie implementation, see the source code.

    -

    Statuses

    +

    Statuses

    @@ -877,7 +754,7 @@ OP_SUPPORT_CLAIM <name> <claimId> OP_2DROP OP_DROP <pubKey>

    Instead, let’s look at an example and some key fields.

    -

    Example

    +

    Example

    Here’s some example metadata:

    @@ -931,7 +808,7 @@ OP_SUPPORT_CLAIM <name> <claimId> OP_2DROP OP_DROP <pubKey>

    Information related to signing the claim as belonging to a specific channel. Covered more in Channels.

    -

    Channels (Identities)

    +

    Channels (Identities)

    Channels are the unit of identity in the LBRY system. A channel is a claim that:

    @@ -968,7 +845,7 @@ OP_SUPPORT_CLAIM <name> <claimId> OP_2DROP OP_DROP <pubKey> } -

    Validation

    +

    Validation

    No enforcement or validation on metadata happens at the blockchain level. Instead, metadata encoding, decoding, and validation is done by clients. This allows evolution of the metadata without changes to consensus rules.

    @@ -1172,6 +1049,8 @@ specification fairly closely, with some modifications.

    Edit this on Github: https://github.com/lbryio/spec

    +

    + -* [Overview](#overview) -* [Conventions and Terminology](#conventions-and-terminology) -* [Blockchain](#blockchain) - * [Claims](#claims) - * [Properties](#properties) - * [Example Claim](#example-claim) - * [Operations](#operations) - * [Supports](#supports) - * [Claimtrie](#claimtrie) - * [Statuses](#statuses) - * [Accepted](#accepted) - * [Abandoned](#abandoned) - * [Active](#active) - * [Controlling](#controlling) - * [Claimtrie Transitions](#claimtrie-transitions) - * [Determining Active Claims](#determining-active-claims) - * [Claim Transition Example](#claim-transition-example) - * [Normalization](#normalization) - * [URLs](#urls) - * [Components](#components) - * [Stream Claim Name](#stream-claim-name) - * [Channel Claim Name](#channel-claim-name) - * [Channel Claim Name and Stream Claim Name](#channel-claim-name-and-stream-claim-name) - * [Claim ID](#claim-id) - * [Claim Sequence](#claim-sequence) - * [Bid Position](#bid-position) - * [Query Params](#query-params) - * [Grammar](#grammar) - * [Resolution](#resolution) - * [No Modifier](#no-modifier) - * [Claim ID](#claim-id-1) - * [Claim Sequence](#claim-sequence-1) - * [Bid Position](#bid-position-1) - * [ChannelName and ClaimName](#channelname-and-claimname) - * [Examples](#examples) - * [Design Notes](#design-notes) - * [Transactions](#transactions) - * [Operations and Opcodes](#operations-and-opcodes) - * [Addresses](#addresses) - * [Proof of Payment](#proof-of-payment) - * [Consensus](#consensus) - * [Block Timing](#block-timing) - * [Difficulty Adjustment](#difficulty-adjustment) - * [Block Hash Algorithm](#block-hash-algorithm) - * [Block Rewards](#block-rewards) -* [Metadata](#metadata) - * [Specification](#specification) - * [Example](#example) - * [Key Fields](#key-fields) - * [Source and Stream Hashes](#source-and-stream-hashes) - * [Fees and Fee Structure](#fees-and-fee-structure) - * [Title](#title) - * [Thumbnail](#thumbnail) - * [Content Type](#content-type) - * [Certificate](#certificate) - * [ Channels (Identities)](#-channels-identities) - * [Example Channel Metadata](#example-channel-metadata) - * [Validation](#validation) -* [Data](#data) - * [Encoding](#encoding) - * [Blobs](#blobs) - * [Streams](#streams) - * [Manifest Contents](#manifest-contents) - * [Stream Encoding](#stream-encoding) - * [Setup](#setup) - * [Content Blobs](#content-blobs) - * [Manifest Blob](#manifest-blob) - * [Stream Decoding](#stream-decoding) - * [Announce](#announce) - * [Distributed Hash Table](#distributed-hash-table) - * [Announcing to the DHT](#announcing-to-the-dht) - * [Download](#download) - * [Querying the DHT](#querying-the-dht) - * [Blob Exchange Protocol](#blob-exchange-protocol) - * [PriceCheck](#pricecheck) - * [DownloadCheck](#downloadcheck) - * [Download](#download-1) - * [UploadCheck](#uploadcheck) - * [Upload](#upload) - * [Reflectors and Data Markets](#reflectors-and-data-markets) - - - - - - ## Overview This document defines the LBRY protocol, its components, and how they fit together. At its core, LBRY consists of several discrete components that are used together in order to provide the end-to-end capabilities of the protocol. There are two distributed data stores (blockchain and DHT), a peer-to-peer protocol for exchanging data, and several specifications for data structure, transformation, and retrieval. @@ -196,7 +105,7 @@ A _claim_ is a single entry in the blockchain that stores metadata. There are tw
    Creates a pseudonym that can be declared as the publisher of a set of stream claims.
    -#### Properties +#### Properties {#claim-properties} Claims have four properties: @@ -211,7 +120,7 @@ Claims have four properties:
    Metadata about a stream or a channel. See [Metadata](#metadata).
    -#### Example Claim +#### Example Claim @@ -240,7 +149,7 @@ Here is an example stream claim: } ``` -#### Operations +#### Operations {#claim-operations} @@ -277,7 +186,7 @@ Multiple claims can exist for the same name. They are all stored in the leaf nod For more details on the specific claimtrie implementation, see [the source code](https://github.com/lbryio/lbrycrd/blob/master/src/claimtrie.cpp). -#### Statuses +#### Statuses {#claim-statuses} @@ -699,7 +608,7 @@ As the metadata specification is designed to grow and change frequently, the ful Instead, let's look at an example and some key fields. -#### Example +#### Example {#metadata-example} Here’s some example metadata: @@ -752,7 +661,7 @@ The media type of the item as [defined](https://www.iana.org/assignments/media-t Information related to signing the claim as belonging to a specific channel. Covered more in [Channels](#channels). -### Channels (Identities) +### Channels (Identities) {#channels} Channels are the unit of identity in the LBRY system. A channel is a claim that: @@ -789,7 +698,7 @@ When a claim published into a channel, the claim data is signed and the followin } ``` -### Validation +### Validation {#metadata-validation} No enforcement or validation on metadata happens at the blockchain level. Instead, metadata encoding, decoding, and validation is done by clients. This allows evolution of the metadata without changes to consensus rules. @@ -1001,6 +910,13 @@ The current version of the protocol does not support sophisticated price negotia _Edit this on Github: https://github.com/lbryio/spec_ + + + + + + +