XRPLF / XRPL-Standards

XLS: XRP(L) community defined Suggestions, Proposals, RFCs / Standards / Drafts & discussions, to be added to the core protocol, used for platform & apps devemopment, etc.
MIT License
190 stars 51 forks source link

XLS-1d Standard for inter-contract communication #2

Closed RichardAH closed 3 years ago

RichardAH commented 5 years ago

I'm going to suggest: https://github.com/elpheria/rpc-websockets

Happy to hear thoughts

WietseWind commented 5 years ago

Can you elaborate on the use case? Where should this be implemented?

RichardAH commented 5 years ago

There was some debate as to whether or not XLS standards should encompass all the standards needed for Codius and ILP as well as direct XRP ledger standards. It is of course possible to set up separate standards letterings for Codius and ILP and put them in their own git. E.g. CLS-123, ILS-123. However after thinking about it for some time I've come to the conclusion that we should seek to include as many XRPL ecosystem standards under the one numbering system as possible.

The point of publishing standards is to make standard documents easily accessible and in particular easy to look up. XLS gives us one place to look up, refer to and debate all XRPL community ecosystem standards. This is also consistent with the likes of W3C, RFC, and ISO, using the same numbering system for a wide range of standards.

All of that said XLS-1d is supposed to define the way Codius contracts talk to eachother and to the outside world. This is functionality I want to add to Toast in the version after next so that it can talk to a Codius project I am working on.

JSON-RPC over websockets seems the obvious starting point for this. We need to take into consideration the unique constraints of working with contracts. (Keeping in mind that contracts can be blackboxes.)

Here's some things that need to be discussed and thought about:

RichardAH commented 5 years ago

Unfinished version of the standard is here: https://github.com/xrp-community/standards-drafts/tree/master/xls-1d

WietseWind commented 5 years ago

Wow @codetsunami you've been busy! Looking great!

RichardAH commented 5 years ago

Even though I have a reference implementation mostly done I think we need to be careful not to dictate how an implementation must specifically work. For example it doesn't matter for the purpose of the standard how requests are actually sequenced and how specifically the BFT consensus occurs. All that matters is that it does occur and that each instance applies the same sequence of inputs (requests) at about the same time. This is complicated by the fact that IIC messages are being defined in the standard which more or less do dictate the implementation specifics. I may need to break the standard into two parts: a set of blackbox interfaces and a non-mandatory glassbox advisory.

RichardAH commented 5 years ago

I decided this standard was far too specific and really just needed to be a project.

https://github.com/codetsunami/hotpocket/

I will replace XLS-1d with just the public communication component (I.e. what a user needs to do to connect to and talk to a smart contract)