Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2 way reliable messaging (VatTP) layer #94

Open
1 task
dckc opened this issue Jan 11, 2022 · 9 comments
Open
1 task

2 way reliable messaging (VatTP) layer #94

dckc opened this issue Jan 11, 2022 · 9 comments

Comments

@dckc
Copy link
Collaborator

dckc commented Jan 11, 2022

Currently, https://github.com/rchain-community/rchain-api/blob/master/src/proxy.js only supports calls from off chain to the chain and back, not the other way.

To support CapTP, it should be split into a lower level that just does reliable messaging (with acknowledgements) in both direction.
For example, perhaps listenAtDeployId should be used for acknowledgements, not for the results of computation.

A design wrinkle:

  • in Agoric, reliable messaging is done with sequence numbers. listenAtDeployId would support a more concurrent approach. Should we take advantage of that? Or stick to the simpler vat model? I lean toward embedding the simpler approach for now.

cc @Bill-Kunj

@Bill-Kunj
Copy link

My 2c: this should not be a separate layer.
I like the idea of

new
   outsider(`rho:io:network:some-uri`)
in {
   // code here using outsider
}

@dckc
Copy link
Collaborator Author

dckc commented Jan 19, 2022

not separate from what? I propose/expect to build this with vanilla rholang.

Also, a new abbreviation such as rho:io:network:some-uri needs a change to the rnode scala code. I don't see any need for that. we already have deployerId which suffices to acknowledge client->rnode messages, and polling in the other direction is straightforward.

@dckc
Copy link
Collaborator Author

dckc commented Jan 19, 2022

oh... ideally, we'd have a websocket connection to rnode. Does rnode support that, @zsluedem?

@zsluedem
Copy link

oh... ideally, we'd have a websocket connection to rnode. Does rnode support that, @zsluedem?

Well. The rnode got websocket endpoint but provides very limited(useless) function now. The dev wants to refactor that.

@dckc
Copy link
Collaborator Author

dckc commented Jan 20, 2022

@zsluedem is there a github issue about addressing the websocket limitations? I'd like to track it.

@zsluedem
Copy link

@zsluedem is there a github issue about addressing the websocket limitations? I'd like to track it.

Sorry. We don't have that right now. I would create one

@zsluedem
Copy link

@dckc rchain/rchain#3585 a draft one.

@dckc
Copy link
Collaborator Author

dckc commented Mar 5, 2022

Hm. this simple protocol works if parties trust the bridge. But it would be much more powerful to have an RChain light client (rchain/rchip-proposals#35 ) . That way, the Agoric side would be compelled to accept that the RChain side had sent a message.

@dckc
Copy link
Collaborator Author

dckc commented Mar 12, 2022

progress in office hours today:
https://github.com/rchain-community/js2rho/blob/captp/lib/messageQueue.js 331e08d

cc @jimscarver

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants