Giter Site home page Giter Site logo

jiangwen0105 / rgb-core Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rgb-wg/rgb-core

0.0 0.0 0.0 3.7 MB

RGB Core Library: consensus validation for private & scalable client-validated smart contracts on Bitcoin & Lightning

Home Page: https://spec.rgb.tech

License: Apache License 2.0

Shell 0.05% Rust 91.69% TeX 8.26%

rgb-core's Introduction

RGB Core Library

Build Tests Lints codecov

crates.io Docs unsafe forbidden Apache-2 licensed

RGB is confidential & scalable client-validated smart contracts for Bitcoin & Lightning. To learn more about RGB please check RGB blueprint and RGB FAQ websites.

RGB Core library provides consensus-critical and validation code for RGB. It is a standard implementation, jointly with LNP/BP Standards defining RGB consensus and validation rules.

The consensus-critical code library is shared with the following libraries:

  1. Client-side-validation Foundation Lib. It is non-bitcoin-specific library, covering concepts related to client-side-validation (commitments, single-use-seals abstracted from bitcoin, consensus-critical data encoding protocols).
  2. BP Core Lib. This is client-side-validation applied to bitcoin protocol with deterministic bitcoin commitments (tapret) and TXO-based single-use-seals.
  3. AluVM virtual machine used by RGB for Turing-complete smart contract functionality.
  4. Encoding schema, defining structured data types used in RGB smart contracts.

The development of the project is supported and managed by LNP/BP Standards Association. The design of RGB smart contract system and implementation of this and underlying consensus libraries was done in 2019-2022 by Dr Maxim Orlovsky basing or earlier ideas of client-side-validation and RGB as "assets for bitcoin and LN" by Peter Todd and Giacomo Zucco. Upon the release of RGBv1 the protocol will be immutable and this library will accept only bugfixes; i.e. it will be ossified by requiring consensus ACK for the new changes across the large set of maintainers.

The current list of the projects based on the library include:

  • RGB Standard Lib: library providing high-level RGB smart contract API in rust.
  • RGB Node: standalone & embeddable node for running RGB.
  • MyCitadel Node: wallet node providing RGB smart contract functionality integrated with Lightning network, bitcoin blockchain indexers, decentralized data storage and propagation (Storm) and wallet services. It can run as embedded, desktop, server or cloud-based node.

Use

Minimum supported rust compiler version (MSRV): 1.66, rust 2021 edition.

The library can be integrated into other rust projects via Cargo.toml [dependencies] section:

[dependencies]
rgb-core = "0.10"

If the library will be used for wallet applications and work with PSBT files, than use wallet feature, which is non-default:

[dependencies]
rgb-core = "0.10"

For serialization purposes library provides serde feature, which is turned off by default.

Contributing

Currently, library functionality is freezed and as a part of ossification only bugfixes are accepted.

Altcoins and "blockchains" other than Bitcoin blockchain/Bitcoin protocols are not supported and not planned to be supported; pull requests targeting them will be declined.

License

See LICENCE file.

rgb-core's People

Contributors

dr-orlovsky avatar rajarshimaitra avatar nicbus avatar afilini avatar vuittont60 avatar claudiosdc avatar kixunil avatar zoedberg avatar ukolovaolga avatar fedsten avatar crisdut avatar awesome-doge avatar inaltoasinistra avatar yancyribbens avatar shuoer86 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.