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 mission of LBRY:
That’s a fancy sentence, so here’s a plainer one: we just thought it’d be really damn cool if a system made is easy to discover and distribute 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.
2 Accessible anywhere in the world on any internet-connected device.
3 Not controlled by any one person, party or authority.
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).
6 The most complete collection of world’s books, films, art, games, etc. should be available via LBRY.
Learn more about how LBRY works from this ecosystem overview.
Blockchain The foundation of the LBRY protocol
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. For a more comprehensive introduction to blockchain, try starting here
LBRY uses a public, proof-of-work blockchain that is very similar to Bitcoin. The blockchain is the foundation of the protocol stack.
The most salient feature of the LBRY blockchain is the association of a normalized string of characters (a “name”) with a structured set of metadata. This coupling is called a claim. The content referenced by a claim can be accessed as a LBRY URL, e.g. lbry://hellolbry.
The LBRY blockchain stores names and metadata in a parallel Merkle tree, separate from the tree used to store transaction data. This allows LBRY URLs to be trustfully resolved even without a full copy of the blockchain.
The metadata contains information about the content, such as the title, creator, 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.
- See the Whitepaper for a more comprehensive introduction to the LBRY blockchain.
- See the Resources for documentation about the LBRY blockchain, including its API.
- See Naming for learning more about LBRY URLs and how they work.
- See Identities for learning how the LBRY blockchain handles publisher identities.
Data Network The "nuts and bolts" (fix this) of the LBRY protocol
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:
- 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.
Applications Browsers, spee.ch, and ∞
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:
- 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.