Developer calls

Here you will find links and agendas of RGB weekly dev calls

Intro

ā€‹šŸ•” Time and day - every Wednesday, 5pm CET* šŸ”— Jitsi link to join the call https://meet.jit.si/RGBcall1 šŸŽ§ Calls are being recorded and uploaded to the devcalls repository šŸŽ„ Demos and presentations are uploaded to the YouTube channel *sometimes time and date can be changed, follow the announcements on RGB Telegram Groupā€‹

2021-05-12

Agenda: 1. Technical updates on the development (client-side validation repo). 2. Q&A session: - Have you thought about bad actors trying to patent stuff, like someone sees something in here and then tries to patent it? - What are the time estimates and release dates of Storm, Bifrost and other components? - Do you need Taproot? - Does lightning support have external dependencies like smth needs to happen in Bitcoin Core or elsewhere (like rust-bitcoin) in order to enable lightning for RGB? - Smart-contracts and client side validation - RGB POV and high level explanations. - Are you planning a future conference? - Do you have plan to work on "channel factories" ? etc šŸŽ§ Audio recordingsā€‹

2021-05-05

Agenda: Presentation on šŸ”„ RGB 2021 roadmap & beyond: 1. Technical details behind new version of client-side-validation library. 2. Updates on deterministic bitcoin commitment standards. 3. Thoughts on RGB layers & LightningNetwork (LN dissection). 4. LNP/BP technical roadmap šŸŽ§ Audio recordings, šŸŽ„ YouTube videos šŸ“ Presentation slidesā€‹

2021-04-28

Agenda:

Community-driven call, where community members tried to install RGB Node, issue assets using CLI tools and Bitcoin Pro, transfer assets from Bitcoin Pro to MyCitadel wallet after downloading it from Testflight etc. šŸŽ§ Audio recordings, šŸŽ„ YouTube videosā€‹

2021-04-07

Agenda: Presentation on šŸ”„ RGB Identity, Naming and Reputation šŸŽ§ Audio recordings, šŸŽ„ YouTube videos šŸ“ Presentation slidesā€‹

2021-03-31

Agenda: 1. RGB v.1 and RGB v.2 overview. 2. Development updates: - Completing the development of disclosures - Use cases for burn & replacement procedure - NFT progress - Subschema for simplified RGB20 asset without replacement procedure - Data containers API - RGB20 secondary issuance - Improving and extending general API to work with state transitions etc 3. Virtualisation of RGB validation rules: - What is RGB client-side validation? - Schema & scripting - Introduction of šŸ”„ AluVM and Contractum language šŸŽ§ Audio recordings, šŸŽ„ YouTube videos šŸ“ Presentation slidesā€‹

2021-03-24

Agenda NFT-related RGB Schemata & protocols presentation: 1. Implementation progress & updates. 2. Moving from genesis-based information transmission to consignment-based. 3. Subschemata: overview and usage in RGB20 use case. 4. Anarchic DRM systems. 5. How to sell usage rights without onchain transactions. 6. Introduction of Data containers. 7. Introduction to Bifrost. 8. Virtualization of client-side validation. šŸŽ§ Audio recordings, šŸŽ„ YouTube videos šŸ“ Presentation slidesā€‹

2021-03-18

Agenda: Building RGB adoption presentation: - Intro. RGB vs Ethereum and 'Multi blockchain world' - RGB mission & core drivers for its adoption - LNP/BP Association tools - Internet 2 architecture - Bitcoin Pro, Citadel SDK, MyCitadel Node, MyCitadel box, MyCitadel cloud - Introduction of šŸ”„ RGBex.io - the first RGB explorer for publishing and sharing information about your assets - Dev vacancies & Fundraising info šŸŽ§ Audio recordings, šŸŽ„ YouTube videos šŸ“ Presentation slidesā€‹

2021-03-10

Agenda: 1. Double consignments updates 2. Disclosures https://github.com/rgb-org/rgb-core/pull/26 3. Multiple asset transfers rgb-org/rgb-node#148 4. Revealed-merge procedure rgb-org/rgb-core#23 5. Command-line tools: - PSBT - RGB - Invoice šŸŽ§ Audio recordingsā€‹

2021-03-03

Agenda: šŸ”„MyCitadel Wallet Beta release šŸŽ§ Audio recordings, šŸŽ„ YouTube videos [WIP]

2021-02-24

Agenda:

  1. Development updates from @dr-orlovsky:

    • wallet architecture advancements

    • plans & roadmap for more testing command-line, tx-generation and wallet-based tools

  2. Recap on transition mutability refactoring on the previous week

  3. Review of quality assurance issues from https://github.com/orgs/rgb-org/projects/11, pay special attention to consignment merges

  4. Priorities for further development process

  5. Developer Q&As

  6. Update Stash merge logic to account for previously known transition data. This is a security vulnerability and can cause fund loss. Ref: https://github.com/rgb-org/rgb-node/pull/136#issuecomment-782355933ā€‹

    Ref PR: https://github.com/rgb-org/rgb-node/pull/137#issue-579380172ā€‹

šŸŽ§ Audio recordingsā€‹

2021-02-17

Agenda: RGB NFT Q&A 1. How you transfer 1 of 1 tokens on LN since by definition there's no liquidity? 2. Will moving digital art RGB tokens require escrow channels? 3. Are multi-asset channels something that is possible to use with fungible assets and NFTs? Are they implemented? How do they work? 4. Multi-peer channels and multi-hop payments - how can they work in NFT case (if they can)? 5. How you deal if somebody lost his token for his art-piece ? How do you issue a new one? 6. Why try to link real world assets with NFTs ?

RGB Q&A 1. Could we use RGB tokens as representing the state in a more complex state machine ? A state machine that could be represented by a Directed Graph (allowing cycles), a general petrinet for example. 2. If you lend your bitcoin to some financial institution and then something happens to it, can you use the RGB-bearer right to prove that you are still the holder of bitcoin and get your funds back?

DEMO Demo of a command-line šŸ”„ā€‹MyCitadel node - the wallet's node and command-line interface of it. šŸŽ„ YouTube video šŸŽ§ Audio recordingsā€‹

2021-02-10

Agenda: RGB QA session Issues from https://github.com/orgs/rgb-org/projects/11ā€‹

  1. Properly handle result from 'validate' request to Stash daemon - https://github.com/rgb-org/rgb-node/issues/132ā€‹

  2. Asset state transition node ID mutability

  3. Question about fungible asset known allocations semantics - https://github.com/rgb-org/rgb-node/pull/134ā€‹

  4. Transfer change allocation not being registered - https://github.com/rgb-org/rgb-node/pull/129ā€‹

  5. Transaction output duplicated by 'fungible transfer' - https://github.com/rgb-org/rgb-node/issues/127

    Wallet integration

    • RGB derivation paths

    • where to keep the blinding secrets

    • use of descriptor-based invoices

    • invoice updates supporting recurrent payments & donations

    • dedicated tweaked key derivation path

    • wallet integration abstraction layers

    Wallet demo

    • what is MyCitadel node and its command-line interface https://github.com/mycitadel/mycitadel-nodeā€‹

    • support for taproot

    • support of legacy and novel wallet contracts, BIP identity proposal

    • creation of a single-sig wallet contract

    • detecting UTXOs

    • issuing RGB assets to the wallet-controlled output

    Documentation

    šŸŽ§ Audio recordingsā€‹

2021-02-03

Agenda: 1. Brief demo of RGB working with real-life software (Bitcoin Pro tool and WIP on MyCitadel wallet that are being developed by Pandora Core). 2. Proposal to create standards that would cover the ways to visually represent the client-side functionality that is not a part of Core RGB Library and protocol. 3. Technical update on the progress. 4. RGB workflow diagram. 5. Android bounty bug. 6. Other bugs and issues raised by the core dev team and external contributors. šŸŽ§ Audio recordingsā€‹

2021-01-27

Agenda: Presentation on šŸ”„ā€‹RGB Wallets integration, that covers: - diagrams explaining how the wallet part of the business logic, storage etc. should be done in order to use RGB SDK; - PSBT structure required for RGB work with hardware wallet; - universal invoices updates; - use of Bech32 encodings in RGB & LNP/BP tech stack. šŸŽ§ Audio recordings, šŸŽ„ YouTube videos šŸ“ Presentation slidesā€‹

2021-01-20

Agenda: 1. Dev Updates and future roadmap (see the slides): - Updates on related projects: rust-bitcoin & rust-miniscript - Updates on refactoring LNP/BP Core Lib and info on new crates (wallet descriptors, RGB Core, LNP Core, Internet2) - Moving repositories into project-specific github orgs (RGB-org, Internet2-org) - v0.3.0 release of LNP/BP Core Lib, RGB Core Lib & RGB Node - New developments with LNP Core & BOLT-7 by @raj - Proposed architecture for mobile wallets using RGB+LNP Node - RGB/LN invoicing protocol: aspects related to mobile payment 2. Pending issues to discuss: - LNP-BP/LNPBPs#83 - rgb-org/rgb-sdk#47 - #33 šŸŽ§ Audio recordings, šŸŽ„ YouTube videos šŸ“ Presentation slides

2021-01-13

Agenda: 1. 2021 Agenda for LNP/BP Standards Association: - LNP SDK & improvements to RGB SDK; support first wallets & exchanges integrating RGB (SDKs & docs) - Fundraising to support Association operations - Completion of LNP/BP standards for RGB & related protocols: official RGB standard release - Completion of LNP Node to fully support all LN features - Bifrost protocol for public RGB infrastructure & decentralized exchange over LN - Further development of Internet2 libraries; support of software using Internet2 tech stack - BP Node: indexing node for bitcoin blockchain replacing need in Electrum - Initial work on implementation of Lightspeed, Storm & Prometheus protocols 2. šŸ”„ Presentation of the LNP/BP Core Lib BP module šŸŽ„ YouTube video and šŸ“ Presentation slides 3. Discussion: - Updates on related projects: rust-bitcoin & rust-miniscript - Advanced descriptors with BP module of LNP/BP Core Lib - Proposed architecture for mobile wallets using RGB+LNP Node - RGB/LN invoicing protocol: aspects related to mobile payment šŸŽ§ Audio recordingsā€‹

2020-12-17

Agenda: 1. Docs & community - RGB Reddit - RGB FAQ release 2. Releases - LNP Node v0.2 beta 2: upgrade to LNP/BP Core lib release & bugfixing from @St333p - RGB Node v0.2 release - librgb v0.2 release candidate - RGB SDK updates 3. šŸ’„ Universal LNP/BP invoices standard proposal presentation šŸŽ§ Audio recordings, šŸŽ„ YouTube video and šŸ“ Presentation slides

2020-12-09

Agenda: 1. Release of v0.2 of LNP/BP Core Library šŸ”„ 2. How will Taproot affect RGB? 3. Difference between Bitcoin Pro and MyCitadel wallet 4. WASM & bindings of RGB SDK 5. Issue #31 - channel data inconsistency between peers 6. Brief introduction of Generic invoices (BP+LNP+RGB) šŸŽ§ Audio recordingsā€‹

2020-12-02

Agenda: 1. Presentation of Bitcoin Pro šŸ”„ 2. Technical discussion šŸŽ§ Audio recordings and šŸŽ„ YouTube videosā€‹

2020-11-25

Agenda: 1. Updates from the call with Ledger 2. RGB-21 Collectible Schema: - Unique tokens & token-specfic data - Issuance control - Generic token data, internal or external, in different formats - Engravings (and why Schema subclassing is required) - LockUTXOs and descriptors for proof of reserves - Renominations - Rights splits šŸŽ§ Audio recordingsā€‹

2020-11-18

Agenda: 1. RGB branding 2. Reduce asset name length limit - Issue #74 3. Support for asset name registries - Issue #75 4. PSBT and deterministic bitcoin commitments/public key tweaks - Issue #69 5. RGB-20 Schema update: - Removed dust limit - Multiple inflation rights with better control over total inflation - Epoch-based burn and burn-and-replace procedures; enhanced with UTXO set and versioned proofs of burn data, supporting up to 15 burn proof variants (+"no proofs" option) - Asset renomination procedure, for changing asset names or splitting stock shares after @sabina_sa proposal - Standardisation of contract text URL and commitment format - Rights split procedure šŸŽ§ Audio recordingsā€‹

2020-11-12

Agenda: 1. Reduce asset name length limit - Issue #74 2. PSBT and deterministic bitcoin commitments / public key tweaks - Issue #69 3. OP_RETURN - is there still the need in it, should we support it? 4. Support of multiple assets and funding the LN channel with assets 'on the flight' 5. Solving the problem of American Call Option 6. Sign-to-contract and Pay-to-contract schemes 7. Simplicity language support in RGB (update) 8. Andrew Poelstra's work on bringing Buletproofs to lib secp256k1 (update) šŸŽ§ Audio recordingsā€‹

2020-11-05

Agenda: Demo of the LNP Node 0.1 Alpha 4šŸ”„ šŸŽ§ Audio recordings and šŸŽ„ YouTube videosā€‹

2020-10-28

Agenda: Presentation of the LNP Node 0.1 Alpha 1šŸ”„ šŸŽ§ Audio recordings and šŸŽ„ YouTube videoā€‹

2020-10-21

Agenda: Releases Roadmap Tracking RGB Core releaseā€‹

Features

  • Supporting Rust stable and down to v1.41! Removed all unstable language components

  • No more upstream forks, for now dependencies are only on published bitcoin-related crates (miniscript v2, bitcoin v0.25, latest bitcoin_hashes with Taproot updates, removed unstable lightning dependency)

  • SQLite support for RGB Node by @rajarshimaitra

RGB SDK https://github.com/LNP-BP/rgb-sdk is prepared for the release this week by @zoedberg

Lightning Network

  • Generalized payment channels and relation to RGB and LN Node

  • LNP Node architecture and overall design approach to node architecture

  • Universal protocol for node oprations (RGB, LNP, Bifrost ...): node ids, compatible messaging system & message ids (see details in last call agenda) https://github.com/LNP-BP/LNPBPs/issues/55. Explanation on RGB peer network and Bitfrost peer network as a part of Lightning peer network. Considerations and discussions.

  • Generalized Lightning networking on top of alternative transports (Websocket, HTTP overlay, SMTP, messaging) and RPC stack with ZMQ et al

  • Ongoing work on structuring Internet2 stack as a set of Lightning related networking protocols on top of Tor

Wallet integration

  • Explanations on matters related to DBC tweaks of public keys: lessons learned from Liquid https://github.com/LNP-BP/LNPBPs/issues/69 Excerpt: After discussion with Andrew Poelstra it became obvious that the previous decision of storing public key tweak information within PSBT as a single value (https://github.com/LNP-BP/rust-lnpbp/issues/86) will be insecure and incompatible with hardware signing units, wallets or airgapped solutions. The problems is that the device must be able to verify what is hidden behind the tweak, otherwise it will be possible for a malware to change the tweak in such a way that it will substitue the underlying state transition with some other (assigning assets to the thief-controlled UTXOs) or, even, apply some taproot-based alternative spending conditions.

  • Simple APIs for read-only access https://github.com/LNP-BP/rgb-node/issues/84ā€‹

Protocol future

Related updates from other projects

  • Proposals (first, second) for onion messaging BOLT extensions from Rusty Russel for new extenstions allowing non-payment (i.e. generic) messaging.

  • Simplicity WIP branch in elements/liquid beta

  • Schnorr signature implementation PR for rust-secp256k1 by Tibo from Digital garage.

šŸŽ§ Audio recordingsā€‹

2020-10-14

Agenda:

RGB-20 Schema update: - Removed dust limit - Multiple inflation rights with better control over total inflation - Epoch-based burn and burn-and-replace procedures; enhanced with UTXO set and versioned proofs of burn data, supporting up to 15 burn proof variants (+"no proofs" option) - Asset renomination procedure, for changing asset names or splitting stock shares after @sabina_sa proposal - Standardization of contract text URL and commitment format - Rights split procedure šŸŽ§ Audio recordingsā€‹

2020-10-07

Agenda:

Roadmap

Releases

Decisions taken throughout the week & implemented

Finalization of decisions

Protocol future

Related updates from other projects

  • Proposals (first, second) for onion messaging BOLT extensions from Rusty Russel for new extenstions allowing non-payment (i.e. generic) messaging.

  • Simplicity WIP branch in elements/liquid beta

  • Schnorr signature implementation PR for rust-secp256k1 by Tibo from Digital garage.

šŸŽ§ Audio recordingsā€‹

2020-09-30

Agenda:

1.RGB Protocol

Invoicing

  • New unified invoicing proposal with protocol layerization, extensibility, interoperability:

    • "Payment specification" layer. Current example - Bitcoin addresses. Will be extended for RGB with new types from this table:

      • Blinded UTXO (RGB-specific)

      • Descriptor-based (can be used for Bitcoin also). Hints:

        • Deterministic key derivation with block height

        • In RGB we can make keys truly random since we know payment txo anyway from the consignment

      • PSBT-based (can be used for Bitcoin!)

      • Channel (LN)-based: not the same as BOLT-11, but just a node id, address and routing hints

    • "Invoce" layer (current example - BOLT-11, parts of the proposed BOLT-12/13)

      • Just an LN message serialized into Bech32 format!

      • Now LN messages can be send over non-interactive or high-latency networks (mesh, satellite, SMTP/mail, messengers/tweets)

      • Very extensible: TLVs, new message types. Making new invoice type is just like defining new LN message: decentralized

    • "Interactive payment protocol" layer (current examples - BIP70, LNURL, BOLT12 from above)

      • Potentially should work with any invoice and data type (it is the case for LNURL already; will try to direct BOLT12 into this; BIP70 is depricated anyway)

      • We will have Bifrost for RGB-related interactivity; it will utilize LN messaging format so complete invoice data workflow (offer/request/invoice/ failback/alternative) may fit into bech32-encoded strings as described below:

  • Bech32 encodings for invoicing & RGB-related data entities

    • Any message can be serialized with <4hex>_lnp1bechdata, or for known formats <id>[_<4hex>_lnp]1bechdata (this is interoperable with Russel new invoices), for instance inv1invoicedata can be a universal invoice message.

    • Bech32 for raw data (non-LN messages) will use normal HRPs, so this is backward-compatible with current Bech32 use, and will fit well with RGB- related Bech32 for hashes (RGB contract id, schema id etc) and data types. See sample implementation in https://github.com/LNP-BP/rust-lnpbp/pull/112/commits/485ea355e625624aba40679f134be94cd47882d5ā€‹

    • Public keys & LN node ids can also use Bech32 encoding with pk_ prefixes:

      • pk1keydata - for public keys

      • pkx1keydata - for extended public keys

      • pkn1keydata - for node ids in LN (b/c of the unification, see below, this id will work with LN, RGB network & Bifrost) This can potentially replace multiple formats (WIFs, hex encoded keys, BASE64 encoded xpubs and serve the original goals for which Bech32 encoding was proposed.

Schema, genesis, versioning

  • Schema extensibility for things like multiple asset schemas: instead of extending schema, we will have one "most advanced" schema with all features (for assets, NFTs, reputation etc) and smaller sub-schemas which will commit to the most advanced schema for which they are just a subset. It will resolve security considerations by Alekos Filini and allow simple wallet adoption of new asset schema types.

  • Interoperability & networks explanations and structuring:

    • P2P network differentiation (P2pNetworkIds and NetworkMagic)

    • Layer 1 differentiation: ChainHash and ChainParams

    • Xpub/Xpriv specifics: ChainCode

    • Bringing it all Layer 1 stuff together with single & simple Chain

    • Asset cross-layer differentiation (on-chain ChainHash, Liquid CA, RGB, OMNI): AssetId

  • How it is used:

    • Schema do not commit to anything

    • Genesis commits to chain hash, but stores full set of chain params

    • This is why genesis needs a "data structure version" flag in chainparams field (to allow chain params extensibility), and must represent a list of data, starting from the first version

    • LN nodes uses AssetId as a ChainHash to identify in which "network" they operate/accept channels

  • More LN-specific asset details for asset geneses: https://github.com/LNP-BP/LNPBPs/issues/60ā€‹

  • RGB versioning clarification:

    • Schema has a version identifying RGB protocol version https://github.com/LNP-BP/LNPBPs/issues/45. An RGB contract genesis (asset issuance) commits to Schema and thus to a specific RGB protocol version forever: no "forks"/version upgrades within single contracts, but different contracts from different issuers may operate on different RGB versions

    • Consignments use "serializetion version" field indicating network serialization format used for data transfer. Receiver specifies desired/ supported formats as a part of invoice data. This allows more efficient compression of network-transferred data (like use of bulletproof/pedersen aggregation, shor bitcoin ids)

    • Genesis uses version for ChainParams field data structure (see above), which has nothing to do with protocol or serialization version. Receiver do not need to specify version in invoice, since all legacy versions are always included.

Protocol unification

  • Proposed invoicing protocol operate not only with RGB, but also can be used for native bitcoin on-chain and LN payments.

  • API/message type unification for RGB Node, Ligthning network (all nodes) and future Bifrost. Now node type will be defined just by the set of features, and networks can inter-operate.

  • RGB Node, LNP Node and Bifrost will be unifiable into a single piece of software, so wallet devs will be able to use just a single integration point to run RGB onchain, RGB lightning & native lightning payments.

Other

  • Decentralized issuance & "call to contract method": public extensions to RGB contract state proposal & PR to the core library

  • Mimblewimble-style Pedersen commitment aggregation & history cut-through better privacy concept for the future & updated RGB scalability roadmapā€‹

2.Dev updates

Notable releases

Completed implementation

WIP

  • Key management & signing functionality within LNP Node will help wallet devs with this part of functionality. Unfortunatelly we can't use BDK since it lacks RGB specific PSBT key type support (for Pk tweaks) and Xpub/Xpriv other chains, so LNP/BP Core library will include special mod for all necessary extensions to Xpub/Xpriv keys and PSBTs, as well as signers, based on miniscript, supporting necessary RGB functionality. See sections above on more details to Xpub/Xpriv specifics.

  • Better test coverage approaching ~60% for the Core Library and ~100% for the underlying amplify crate, including new exhaustive tests for some encodings covering all possible encoding options.

  • Better code docs: ~50% for the Core Library & 100% for the underlying amplify crate.

  • Proposals (first, second) for onion messaging BOLT extensions from Rusty Russel for new extenstions allowing non-payment (i.e. generic) messaging.

  • Simplicity WIP branch in elements/liquid beta

  • Schnorr signature implementation PR for rust-secp256k1 by Tibo from Digital garage.

šŸŽ§ Audio recordingsā€‹

2020-09-23

Agenda:

I.Ongoing developments 1. Last beta 4 pre-release before RC1 2. Invoicing protocol: - LNURL downsides - new LN developments (lni, lno, lnr by Rusty Russel) - possible applications of the above for RGB LN workflows - miniscript/descriptor bitcoin invoices with TLV-LN style - results of research and plans for RGB universal invoicing 3. PSBT development: - main format for data storage & exchange - brining rust-bitcoin libraries closer to full implementation - Schema/Genesis: versioning, chain params - Implications: DEX/Spectrum outside RGB in LN II. Closing old discussions: - Monero bulletproofs - Lexicographic output ordering III. CI & infrastructure: - Dockerization: full set up images - Signet & Lightning - Exhaustive tests

IV. Future protocol developments - Zk: bulletproofs aggregation - Decentralized issuance with public transitions

V. Tasks for the community discussion: - LNP-BP/LNPBPs#57 - LNP-BP/LNPBPs#46 - LNP-BP/rust-lnpbp#104 šŸŽ§ Audio recordingsā€‹

ā€‹