XRPLF / rippled

Decentralized cryptocurrency blockchain daemon implementing the XRP Ledger protocol in C++
https://xrpl.org
ISC License
4.52k stars 1.47k forks source link

IOU Escrow feature #3233

Open GildedHonour opened 4 years ago

GildedHonour commented 4 years ago

I'm going to be working on IOU Escrow feature. Is there documentation that I may not have seen? Are there pointers that you'd give me?

MarkusTeufelberger commented 4 years ago

There was a pull request (that seemed to be more of a code dump) about this feature already, might be worth checking it out and/or improving on top of that.

GildedHonour commented 4 years ago

Yes, I've seen it.

mDuo13 commented 4 years ago

I wrote a summary on the costs & benefits of IOU escrow and some of the complexitities:

XRP escrow is very easy because every account in the XRP Ledger can hold an unlimited amount of XRP, and the XRP can be sent directly to any one of them. Issued currencies, by contrast, have to flow through paths and be stored in trust lines, which have maximum values that can change. Even if you created an issued currency escrow today, it's possible your intended recipient couldn't receive the XRP when the escrow is finished. Issued currencies can also have transfer fees, which can fluctuate as well, and trust lines have quality settings which can have some unexpected consequences. And that's not an exhaustive list of the complications that are specific to issued currency escrow; those are just the ones I've thought up in a couple minutes.

Some of the comments on PR #2672 are also elucidating. For example, as Nik points out:

Since you are allowing IOUs to be escrowed, you MUST support IOU-specific features, such as freeze and support the "authorization required" that IOU issuers can set.

Hopefully this issue can serve as a map for implementing IOU Escrow.

GildedHonour commented 4 years ago

@mDuo13 what is this merge

https://github.com/ChainSQL/rippled/commit/90501b1c26dbcead68b6bef2215f13198f9bfa70 ---> "Merge branch 'develop' into feature/escrowForIOU"

about?

mDuo13 commented 4 years ago

That merge looks like it's just about catching their feature branch up to the latest develop work. But I, personally, have no idea what ChainSQL is working on.

luleigreat commented 4 years ago

@mDuo13 ChainSQL is used to write data to blockchain just like our traditional projects to write data to database. ChainSQL has a backend module to sync blockchain table-tx to mysql, so that we can select data in db instead of on blockchain.

intelliot commented 1 year ago

related: https://github.com/XRPLF/XRPL-Standards/pull/112

intelliot commented 1 year ago

one proposal: https://github.com/XRPLF/rippled/pull/4396