Skip to content

Releases: LNP-BP/rust-lnpbp

0.2 Alpha 1

26 Oct 20:41
ae62f47
Compare
Choose a tag to compare
0.2 Alpha 1 Pre-release
Pre-release

This is alpha release with some major refactoring in LNP mod adding support for
LN and Internet2 protocols.

  • Refactoring of LNP protocol stack; introduction of Internet2 architacture
  • Services crate implementing common client/server and other node architecture
    patterns
  • Basic implementation of core Lightning network data structures

0.1 Release

21 Oct 03:43
108e0fb
Compare
Choose a tag to compare

Library overview

  • Paradigms: generic APIs for L1/L3 best practices
    • Client-side validation
    • Single-use-seals
    • Strict encoding
  • Bitcoin protocol: extensions to bitcoin crate and L2/L3 APIs
    • Deterministic bitcoin commitments (DBC) based on LNPBP1-4 standard
    • Tagged hashes: additional procedures for working with Tapproot-style
      tagged hashes
    • Short bitcoin identifiers based on LNPBP-4 standard
    • Resolver API for requesting transaction graph using providers (like
      Bitcoin Core RPC, Electrum Server API etc)
    • Chains, chain parameters and universal asset identifiers
    • Script types for differentiating script cycle through different
      transaction parts
    • Transaction-output-based single-use-seals: bitcoin-specific
      implementation of single-use-seals
  • RGB: confidential smart-contract system for Bitcoin & Lightning Network
    based on client-side validation paradigm (LNPBP11-13 standards)
    • Schema: structure defining contract creation and evolution rules and
      restrictions
    • Contracts: data types for contract lifecycle
    • Scripting with embedded procedures for fungible assets
      The library implements RGB Core v1 release candidate set of standards
  • Lightning networking protocol: generalized P2P and RPC networking APIs
    based on the original Lightning standard; early preview
    • Universal P2P node ids supporting IPv4, IPv6, Onion v2 and v3 addresses and
      public keys
    • Feature vectors for defining and workinf with set of feature bits
    • LNP networking with ZMQ sockets for RPC interfaces

Major changes since RC2

  • Support for Rust stable and MSRV reduction to 1.41.1
  • Custom forks for upstream bitcoin-related dependencies are changed onto the
    latest publicly-released versions

Breaking changes since RC2

  • Updated taproot-based hashed tag system (BIP-340) according to the most
    recent specs.
  • RGB Amount renamed into AtomicValue
  • RGB amount mod renamed into value
  • RGB seal definitions and related structures are now Copy and returned by
    value

0.1 RC 2

12 Oct 02:58
96832d9
Compare
Choose a tag to compare
0.1 RC 2 Pre-release
Pre-release

Breaking changes:

  • Changed embedded procedure names for RGB VM
  • Removed requirement for PSBT to contain fee key in RGB anchor creation (it needs to be a properly constructed PSBT with witness_utxo/non_witness_utxo data)

Other changes:

  • Schema serde serialization (YAML, JSON, ....)
  • More embedded procedures for RGB VM
  • Serde serialization for all RGB structures
  • Strict encoding and decoding of Curve25519 public keys and Ed25519 signatures
  • Implementation of Curve25519 public keys and Ed25519 signatures as RGB state and metadata
  • Bech32 types for Pedersen commitments, Bulletproofs, Curve25519 data
  • Tweaking factor is added into PSBT information during anchor creation
  • Added bitcoin protocol resolvers API

0.1 RC 1

09 Oct 16:49
55519da
Compare
Choose a tag to compare
0.1 RC 1 Pre-release
Pre-release

Breaking changes:

  • RGB protocol & schema versioning with feature bits
  • Consignment versioning
  • Changed Bech32 encodings of RGB data structures; added deflation encoding
  • Implemented RGB public state extensions
  • Refactored LNP addressing and URL encodings
  • Completed Tor v2 and v3 addresses support
  • RGB data structure names got refactored
  • Changed bulletproofs commitments which will enable future aggregation
  • Introduced Chain and ChainParam types instead of old network versioning

Other changes:

  • Test coverage >70%
  • Code docs >50%

0.1 Beta 4

18 Sep 11:33
Compare
Choose a tag to compare
0.1 Beta 4 Pre-release
Pre-release

Breaking changes:

  • Updated upstream crates (bitcoin, bitcoin_hashes, secp256k1, grin_secp256k1zpk, miniscript, lightning) with many PRs merged
  • EmbedCommitVerify now can mutate container data (used for returning tweaking factors)
  • Upgrading rand version to the most recent one (blocked previously by grin_secp256k1zpk dependency)
  • Changied txout seals to use u32 vouts instead of u16
  • Changed txout blinding factor to be u64 instead of u32

Other changes:

  • Test coverage >50% (zero-knowledge functionality & RGB contracts structures)
  • Returning tweaking factors
  • Minimal support for Tor V2 addresses; improved internet address parsing

0.1 Beta 3

12 Aug 17:59
Compare
Choose a tag to compare
0.1 Beta 3 Pre-release
Pre-release

Breaking changes

  • Single-use-seals blinding factor changed from 32-bit to 64-bit of entropy
  • Transaction output indexes in single-use-seal definitions are now 32-bit, as in Bitcoin Core / rust-bitcoin (previously were 16-bit)

New features

  • Initial Tor V2 address support
  • Test cases for BP mod strict encoding

0.1 Beta 2

05 Jul 00:14
Compare
Choose a tag to compare
0.1 Beta 2 Pre-release
Pre-release

Features overview

  • Complete validation workflow with new Validator object
  • Virtual machines for RGB contracts (interface + embedded VM)
  • Consignment now has a version field, so in the future more space-saving variants can be created (like removing txid from anchors and using short universal bitcoin IDs when BP node adoption will increase)
  • Anchor contains txid field; so validation can be performed with just Bitcoin Core (no Electrum or BP node is required). This also speeded up validation performance significantly.

Breaking changes

  • Change of TransitionId hash tag value (previously-generated transition ids will be invalid)
  • Change of GenesisId hash tag value (previously-generated contract/assets ids will be invalid)
  • TransitionId type is replaced with NodeId
  • NodeId and ContractId are now equal by value; ContractId is NodeId wrapper
  • ancestors() method moved from Transition to Node trait; genesis returns an empty array
  • Consignment endpoints contain NodeId information

0.1 Beta 1

24 Jun 15:09
Compare
Choose a tag to compare
0.1 Beta 1 Pre-release
Pre-release

Grand refactoring into the final code

0.1 Alpha 3

05 Jun 12:25
Compare
Choose a tag to compare
0.1 Alpha 3 Pre-release
Pre-release

Release with which initial versions of RGB, LNP and BP nodes are built. RGB node is integrated with both mobile apps and server-side NodeJS

0.1 Alpha 2

05 Jun 12:24
Compare
Choose a tag to compare
0.1 Alpha 2 Pre-release
Pre-release

Intermediate test release