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

Agent RPC migration #512

Closed
tegefaulkes opened this issue Mar 9, 2023 · 7 comments · Fixed by #525
Closed

Agent RPC migration #512

tegefaulkes opened this issue Mar 9, 2023 · 7 comments · Fixed by #525
Assignees
Labels
development Standard development r&d:polykey:core activity 3 Peer to Peer Federated Hierarchy

Comments

@tegefaulkes
Copy link
Contributor

tegefaulkes commented Mar 9, 2023

Specification

Similar to #509 but separate enough to be it's own issue/PR. We need to migrate the agent-agent communication to make use of the new agnostic RPC and quic system being developed. Thankfully there are much fewer agent-agent handlers we need to migrate but they tend to be more complicated.

Some complications that need to be addresses is the the git pull and clone logic. They need to be updated to make use of the raw streams. The raw stream feature may need to be expanded to support this.

This is currently blocked by the quic system.

Part of migrating the agent, the network and GRPC domains should be removed. Any code still depending on them need to be updated to the new systems.

We need to spec out how we want to handle the common elements between the client and agent RPC. They will end up sharing middleware, message data structure and metadata structure. These things should be kept in a common location but the RPC domain isn't appropriate.

Additional context

Tasks

  1. migrate handlers to the new RPC system
  2. migrate tests
  3. update RPC usage within the code
  4. Remove any old GRPC or network code. GRPC domain should be fully removed at this point. Not sure about network.
@tegefaulkes tegefaulkes added the development Standard development label Mar 9, 2023
@tegefaulkes tegefaulkes self-assigned this Mar 9, 2023
@tegefaulkes tegefaulkes mentioned this issue Mar 9, 2023
24 tasks
@tegefaulkes
Copy link
Contributor Author

This one will take much less time compared to the client migration since there are much less handlers to migrate. At the same time we need to work out some things with the git handlers. They need to be implemented with the raw handlers and possibly need some features added to it to support middlware.

For timing this is blocked by the quic changes but doesn't strictly require them to get started, just to run it.

@tegefaulkes
Copy link
Contributor Author

There are going to be common elements used between the agent RPC and the client RPC. This stuff should be kept to a common domain. The specifics of this need to be worked out during this issue.

#513 (comment)

@tegefaulkes
Copy link
Contributor Author

When migrating the agent handlers, we need to update them to use the CTX and timeouts.

@CMCDragonkai
Copy link
Member

CMCDragonkai commented Apr 24, 2023

Since closing #466:

Very important to review also the client RPC to ensure deadlines are also applied too.

On the server side, handlers that are asynchronous should have a deadline propagated into asynchronous subcalls.

@tegefaulkes
Copy link
Contributor Author

There are a few stages to this one.

  1. Migrate the agent handlers to the agnostic RPC.
  2. Convert any handlers to use the timeout system if needed, Anything that is long running, async or canncellable needs to be updated.
  3. Replace the Proxy/GRPC server/client with js-quic. This will be a major change to the NodeConnectionManager.
    A. NodeConnectionManager needs to use js-quic and agnostic RPC clients.
    B. PolykeyAgent needs to use the js-quic/agnostic RPC server.
  4. Gut any Proxy, GRPC and utp dependencies and code.

@tegefaulkes
Copy link
Contributor Author

tegefaulkes added a commit that referenced this issue May 23, 2023
* Related #512
* Related #495

[ci skip]
tegefaulkes added a commit that referenced this issue May 23, 2023
* Related #512
* Related #495

[ci skip]
tegefaulkes added a commit that referenced this issue May 25, 2023
* Related #512
* Related #495
* Related #234

[ci skip]
tegefaulkes added a commit that referenced this issue Jun 5, 2023
* Related #512
* Related #495

[ci skip]
tegefaulkes added a commit that referenced this issue Jun 5, 2023
* Related #512
* Related #495

[ci skip]
tegefaulkes added a commit that referenced this issue Jun 5, 2023
* Related #512
* Related #495
* Related #234

[ci skip]
@CMCDragonkai
Copy link
Member

CMCDragonkai commented Jun 26, 2023

Shouldn't this have been part of #495?


Ah yes it is.

tegefaulkes added a commit that referenced this issue Jul 7, 2023
* Related #512
* Related #495

[ci skip]
tegefaulkes added a commit that referenced this issue Jul 7, 2023
* Related #512
* Related #495

[ci skip]
tegefaulkes added a commit that referenced this issue Jul 7, 2023
* Related #512
* Related #495
* Related #234

[ci skip]
@CMCDragonkai CMCDragonkai added the r&d:polykey:core activity 3 Peer to Peer Federated Hierarchy label Jul 9, 2023
tegefaulkes added a commit that referenced this issue Jul 10, 2023
* Related #512
* Related #495

[ci skip]
tegefaulkes added a commit that referenced this issue Jul 10, 2023
* Related #512
* Related #495

[ci skip]
tegefaulkes added a commit that referenced this issue Jul 10, 2023
* Related #512
* Related #495
* Related #234

[ci skip]
tegefaulkes added a commit that referenced this issue Jul 20, 2023
* Related #512
* Related #495

[ci skip]
tegefaulkes added a commit that referenced this issue Jul 20, 2023
* Related #512
* Related #495
* Related #234

[ci skip]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
development Standard development r&d:polykey:core activity 3 Peer to Peer Federated Hierarchy
Development

Successfully merging a pull request may close this issue.

2 participants