Skip to content

Latest commit

 

History

History
81 lines (52 loc) · 11.1 KB

products.md

File metadata and controls

81 lines (52 loc) · 11.1 KB
description layout
The Association develops and manages standards, registries, libraries, nodes, command-line tools and technical documentation
editorial

Products

Standards

The association maintains so-called LNPBP standards: specifications, standards & best practices for Layer 2, 3 solutions (and above) in cases when they do not require soft- or hard-forks on the Bitcoin blockchain level and are not directly related to issues covered in Lightning Network RFCs (BOLTs).

Basically, LNPBPs cover everything that can be anchored to Bitcoin transactions, defines primitives for L2+ solution design and describes complex use cases which can be built from some primitives. This allows such solutions as financial assets, storage, messaging, computing and different forms of secondary markets leveraging Bitcoin security model and Bitcoin as a method of payment/medium of exchange.

Criteria for a LNPBP standard proposal:

  • Should not be covered by existing or proposed BIPs
  • Should not cause soft- or hard-fork in Bitcoin blockchain (but may depend on soft-forks from an existing BIP proposals)
  • Should not distort Bitcoin miner's economic incentives
  • Should not pollute Bitcoin blockchain with unnecessary non-transaction related data or have to maintain such pollution as low as possible
  • Must not require a utility or security tokens to function (but may enable creation of digital assets or tokenized physical goods)
  • Must not depend on non-bitcoin blockchains (but may be applicable to other blockchains)

The current list of standard can be found on a dedicated website or in GitHub repository here. You can use GitHub discussions to:

Registries

Data type libraries

Strict encoding data type libraries used in RGB smart contract development

AluVM libraries

Libraries for AluVM virtual machine used in RGB smart contract development

RGB interfaces

ABI (application binary interfaces) for RGB schemata (fungible tokens, NFTs etc)

RGB schemata

Specific templates for RGB contracts from independent developers

Libraries

Libraries maintained by the Association can be classified into the following categories:

  1. Consensus libraries
  2. Standard library
  3. Node-related libraries
  4. Application-level libraries

The dependencies between these groups are strongly abstracted into four layers, such that underlying group doesn’t know anything about the libraries from the layer above.

Consensus libraries

These libraries are a part of the ossified client-side-validation consensus and must not be modified except of bugfixing. Usually, consensus-level libraries are named with “Core“ or “Foundation” as a part of their name.

  1. Client-side-validation foundation library
  2. Bitcoin common libraries: implementation of parsing bitcoin data related to bitcoin consensus layer. Currently, there are split in two groups:
    1. Rust bitcoin ecosystem, maintained by Rust bitcoin community (mostly Blockstream members and Andrew Poelstra)
    2. BP Foundation Libraries, maintained by LNP/BP Standards Association, Bitcoin Protocol Working Group. Contain re-implementation or improvements of the rust-bitcoin libraries
  3. Bitcoin client-side-validation, also called “BP Core Lib”. It provides primitives such as deterministic bitcoin commitments (“TapRet”, ”OpRet”) and single-use-seals.
Repo (crate)GitHub OrgDescription
rust-lnpbp (lnpbp_secp256k1)LNP-BPFork of Grin re-implementation of rust-secp256k1-zkp; used for bulletproofs only
rust-stens (stens)Strict-EncodingData encoding used in RGB
rust-aluvm (aluvm)AluVMVirtual machine used in RGB
client_side_validationLNP-BPAbstract client-side-validation
bp-foundationBP-WGBitcoin primitives (alternative to rust-bitcoin)
bp-coreBP-WGClient-side-validation for bitcoin protocol
rgb-coreRGB-WGRGB consensus library

Standard libraries

Standard libraries provide high-level convenience API for working with bitcoin, lightning & RGB, and do not perform any consensus-level tasks. Any validation and consensus operations must perform without standard libraries.

Repo (crate)GitHub OrgDescription
psbtBP-WGImplementation of partially-signed bitcoin transactions and operations with them involving signatures, support for client-side-validation etc
descriptor-walletBP-WGPrimitives for constructing wallets supporting bitcoin, lightning and RGB protocols
invoicesLNP-BPImplementation of universal LNP/BP invoices standard
rust-lnpbp (lnpbp)LNP-BPImplementation if LNPBP standards for Base64, Bech32, Elgamal encoding and encryption
lightning_encodingLNP-WGEncoding for BOLT data used in lightning network
lnp-coreLNP-WGImplementation of both BOLT and LNPBP standards of lightning network
storm-coreStorm-WGImplementation of Storm specifications and standards
rgb-stdlibRGB-WGConvenience API for working with RGB smart contracts

Nodes

BP Node

Indexes bitcoin blockchain and mempool, connecting to Bitcoin Core and bitcoin P2P network. Drop-in replacement for Electrum Server, providing modern & fast API supporting monitoring wallet descriptors.BP Logo.png

LNP Node

Lightning node implementation made in rust targeting developers. Has extensible architecture, supports plugins, AluVM scripting, Bifrost, Storm, RGB protocols out of the box.LNP Logo.png

RGB Node

Node performing client-side-verification of RGB smart contract and keeping the stash of all known contracts and their state. Provides API for the wallets and lightning node for accessing information about the contracts.RGB logo.jpg

Storm Node

Runs Storm protocols and provides decentralized messaging, data storage and querying. Works with LNP Node and provides additional revenue for the users running them. Used by RGB and other protocols (like torrent-over-lightning, end-to-end encrypted messaging etc).Storm Logo (1).png

Toolchains

LNP/BP tools

A set of utilities for working with client-side-validated data, single-use-seals, RGB contract data, invoices etc.

Descriptor Wallet

Command-line wallet utility made with eponymous library/

Contractum

Language and compiler for RGB smart contracts

Hadron

Package manager for RGB (the name comes from the RGB-colored quarks confined within hardon particles)

Documentation

DocumentDescriptionAudienceURL
RGB FAQGives introduction into RGB from a power user perspectiveMost broadrgbfaq.com
Blackpaper ("whitepaper")Systematically explains RGB, its capabilities and most important applications in half-technical termsMost broadblackpaper.rgb.tech
Blueprint ("specification")Technical explanation of all RGB internals, more readable than standardsSchema developers, integratorsblueprint.rgb.tech
Code docsDocumentation for the RGB-related APIsRGB maintainersdocs.rs/<crate_name>
LNP-BP StandardsFormal & complete standardization of RGB algorithms & consensusAuditors, RGB maintainersstandards.lnp-bp.org
Yellow paper ("formalism")Formal mathematical specification on RGBComputer scientists, cryptographersyellowpaper.rgb.tech
AluVMDocumentation on AluVM - functional virtual machine used in RGB consensus, node and lightningAluVM contributors, auditors, application developers using AluVMaluvm.org
Strict EncodingDocumentation on binary encoding used in RGB consensusRGB schema (smart contract) developers; application developers using strict encodingstrict-encoding.org
Contractum docsDocumentation on Contrctum languagueRGB schema (smart contract) developerscontractum.org
RGB source codeSource code for RGB consensus, standard lib and nodeRGB contributorsgithub.com/RGB-WG

Contributions to external projects

LNP/BP Association in 2019-2021 was a major contributor into @rust-bitcoin and other related project.