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

Client node support for hosting runtimes #3653

Merged
merged 5 commits into from
Feb 3, 2021

Conversation

kostko
Copy link
Member

@kostko kostko commented Jan 26, 2021

TODO

  • Move runtime host configuration to the runtime registry.
  • Support the client node hosting runtimes.
  • Support for provisioner remapping (a client node may use a non-TEE version of the runtime to perform local queries for public state against a runtime which runs in a TEE on executor nodes).
  • Describe all configuration changes.

@kostko kostko added c:runtime/compute Category: runtime compute worker c:breaking/cfg Category: breaks configuration labels Jan 26, 2021
@kostko kostko force-pushed the kostko/feature/rt-client-side branch 2 times, most recently from 4567b8e to 11d0093 Compare January 26, 2021 13:18
@codecov
Copy link

codecov bot commented Jan 26, 2021

Codecov Report

Merging #3653 (80710c8) into master (0036da8) will decrease coverage by 0.15%.
The diff coverage is 54.71%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #3653      +/-   ##
==========================================
- Coverage   66.78%   66.63%   -0.16%     
==========================================
  Files         391      393       +2     
  Lines       38138    38258     +120     
==========================================
+ Hits        25472    25492      +20     
- Misses       9017     9091      +74     
- Partials     3649     3675      +26     
Impacted Files Coverage Δ
go/runtime/client/api/grpc.go 61.30% <ø> (ø)
go/worker/common/config.go 60.60% <ø> (-1.02%) ⬇️
go/worker/keymanager/worker.go 63.86% <ø> (ø)
go/worker/compute/executor/committee/node.go 66.51% <30.00%> (+1.51%) ⬆️
go/runtime/client/host.go 34.21% <34.21%> (ø)
go/oasis-node/cmd/node/node.go 53.31% <50.00%> (-1.93%) ⬇️
go/runtime/host/helpers.go 52.38% <52.38%> (ø)
go/runtime/registry/registry.go 70.93% <60.86%> (-1.05%) ⬇️
go/runtime/client/client.go 65.68% <62.50%> (-0.57%) ⬇️
go/runtime/registry/config.go 68.26% <64.47%> (-10.31%) ⬇️
... and 45 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0036da8...f386f83. Read the comment docs.

@kostko kostko force-pushed the kostko/feature/rt-client-side branch 5 times, most recently from 57ff8f6 to 8509b23 Compare January 28, 2021 11:45
@kostko kostko marked this pull request as ready for review January 28, 2021 11:46
@kostko kostko force-pushed the kostko/feature/rt-client-side branch 2 times, most recently from c17d9e1 to b9a4c6b Compare February 1, 2021 14:02
go/runtime/client/host.go Outdated Show resolved Hide resolved
go/runtime/client/host.go Outdated Show resolved Hide resolved

// RichRuntime provides higher-level functions for talking with a runtime.
type RichRuntime interface {
Runtime
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what are the cases where we'll use Runtime instead of RichRuntime?

Copy link
Member Author

@kostko kostko Feb 1, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking about that as well. Probably RichRuntime would mostly be used and it could just be merged into Runtime. But we also wouldn't want each Runtime implementation to implement all of these wrappers. Maybe we could just provide a BaseRuntime with the wrapper implementations?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay yeah. I guess since we don't have plans to have a different implementation of CheckTx, all we have to gain that way is the code being more direct.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

feel free to split this out

go/runtime/client/host.go Show resolved Hide resolved
@kostko kostko force-pushed the kostko/feature/rt-client-side branch 2 times, most recently from 5b174c3 to 80710c8 Compare February 2, 2021 09:52
Copy link
Contributor

@pro-wh pro-wh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the explanations. lg


// RichRuntime provides higher-level functions for talking with a runtime.
type RichRuntime interface {
Runtime
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

feel free to split this out

@kostko kostko force-pushed the kostko/feature/rt-client-side branch from 80710c8 to f386f83 Compare February 3, 2021 12:27
@kostko kostko enabled auto-merge February 3, 2021 12:27
@kostko kostko merged commit 9e37cea into master Feb 3, 2021
@kostko kostko deleted the kostko/feature/rt-client-side branch February 3, 2021 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c:breaking/cfg Category: breaks configuration c:runtime/compute Category: runtime compute worker
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants