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

Level 3 RPC support #160

Open
zenhack opened this issue Sep 24, 2020 · 11 comments
Open

Level 3 RPC support #160

zenhack opened this issue Sep 24, 2020 · 11 comments

Comments

@zenhack
Copy link
Contributor

zenhack commented Sep 24, 2020

Some discussion came up on the mailing list about adding Level 3 RPC support:

https://groups.google.com/forum/#!topic/capnproto/iXuK8wjmG8o

Louis was looking to arrange a video call around this; @zombiezen I know you don't have a ton of bandwidth for this project these days, but thought I'd ping to see if you'd be interested in joining us? No pressure.

I don't know Louis's GitHub handle, but I'll cross-link this issue on the mailing list.

@zombiezen
Copy link
Contributor

If there's someone looking to get ramped up on contributing to the Go package, I'm happy to pass on knowledge, but otherwise I'm going to have to decline due to other commitments.

@lthibault
Copy link
Collaborator

I don't know Louis's GitHub handle, but I'll cross-link this issue on the mailing list.

@zenhack I'm here 🙂

If there's someone looking to get ramped up on contributing to the Go package, I'm happy to pass on knowledge

@zombiezen I'm quite interested in maintaining this package, and would definitely appreciate a guided tour. Happy to work around your schedule as much as possible.

@zombiezen
Copy link
Contributor

zombiezen commented Sep 25, 2020

Excellent! Left a reply on the mailing list so you've got my email address.

@taylorjdawson
Copy link

@lthibault have you assumed the role of package maintainer yet? I am also interested in helping 🙌
cc @zombiezen

@lthibault
Copy link
Collaborator

lthibault commented Feb 5, 2021 via email

@RamakrishnaChilaka
Copy link

RamakrishnaChilaka commented Feb 5, 2021 via email

@zenhack
Copy link
Contributor Author

zenhack commented Feb 5, 2021

I'd definitely be interested in joining, let's use jitsi again. I have a preference for early afternoon EST, but am flexible.

@lthibault
Copy link
Collaborator

@zenhack Awesome! In the meantime, I'll add you to our Slack community, as I think some real-time coordination is helpful.

@taylorjdawson
Copy link

taylorjdawson commented Feb 5, 2021

@lthibault Excellent! I am on the west coast, PST. Thanks!

@lthibault
Copy link
Collaborator

'Morning, @taylorjdawson !

You should have an invitation in the gmail account listed in your GitHub profile 🙂 . I'll re-send it, just in case.

@zenhack
Copy link
Contributor Author

zenhack commented Feb 14, 2023

We're finally ready to break ground on this! There are some preliminary things we should think about, and some design questions. In particular:

  • I've already addressed this, but recvCap: use the vine for thirdPartyHosted caps. #451 adds support for using vines, which we'll want to ease upgrades.
  • We may want to consider finally addressing rpc.Conn doesn't support promise capabilities #2 first, and maybe add a corresponding API to generate non-answer promises. This would make path shortening much more useful.
  • There are a few parts of the implementation I want to audit & think through the soundness of. In particular:
  • We'll want to define the main logic on top of an abstraction like the VatNetwork described in rpc.capnp, but we also will need to define at least one real implementation for it to be of any use.
    • We may want consider looping Kenton in on the design of that, to get buy-in for compatibility with any future implementation in C++ (and likely others).
    • Since BN is funding the work on this, I'd obviously like to hear from @lthibault what the environment they're using this in is like, and factor in those constraints.
    • I'd like to be able to use both websockets & webrtc at some point so we can have vats in the browser use 3PH. The fact that webrtc doesn't give vats an obvious stable identifier to work with introduces some challenges, and I'd like to think about how these might be solved before we commit to a design that prevents it.
    • It might be nice to design this in a way that different transports can be negotiated (with vats having preferences) within the same VatNetwork. Maybe using a public key as an identifier for the vat and having a signed statement or such that tells other vats how to connect to it.
    • I do want to think a bit about how to make interop with an ocapn bridge work smoothly as we design this. At the last pre-standardization meeting Jessica gave a presentation on how goblins currently does this, which is worth digesting & reviewing: https://share.tube/w/44DhG6pcEyCFgnUHhxnUTn

Probably some of the above should be split out into their own issues.

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

No branches or pull requests

5 participants