-
Notifications
You must be signed in to change notification settings - Fork 113
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
Rewrite ekiden runtime implementation (aka Fortanix SGX) #1531
Conversation
610e937
to
f8f1cf6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dumping comments from older version
/// Dispatch a raw call to the node. | ||
pub fn submit_tx_raw<C>(&self, call: C) -> BoxFuture<Vec<u8>> | ||
where | ||
C: Serialize, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we were to serialize call
outside this, either in call
or an additional layer, would it save the compiler the trouble of emitting several specializations of this relatively large function?
kind of unbalanced that serializing call happens inside but deserializing the output happens outside
this PR also rearranges a lot of code. can you post a guide of what new code (roughly) corresponds to what old code? |
Sure. So roughly everything from common, storage, db, rpc, runtime (and maybe more) is now in |
f8f1cf6
to
baf8f27
Compare
The bigger change is that the IPC protocol now goes directly into the runtime instead of only to the worker. This means that some of the attestation stuff (AESM interaction) is now handled at the worker host. |
baf8f27
to
ab84ced
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dumping the day's comments
ekiden-runtime = { path = "../runtime" } | ||
serde = "1.0.71" | ||
# TODO: Change to released version when 0.10.0 is released. | ||
serde_cbor = { git = "https://github.com/pyfisch/cbor", rev = "114ecaeac53799d0bf81ca8d1b980c7c419d76fe" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This revision is just the master at a specific point in time. The important PR that we need is pyfisch/cbor#67.
pub mod transaction; | ||
|
||
/// Boxed future type. | ||
pub type BoxFuture<T> = Box<futures::Future<Item = T, Error = failure::Error> + Send>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(me) check if we do the same thing elsewhere
59b6547
to
ed07194
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First pass over the Go, I'll look over the rust changes in a bit.
"github.com/oasislabs/ekiden/go/common/sgx/ias" | ||
) | ||
|
||
//go:generate protoc --go_out=. aesm_proto.proto |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While I understand why this lives here, I'd rather it lived with all the other protobuf files.
5c97bb5
to
e5449b2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dumping today's comments
c41ad76
to
792af83
Compare
843122c
to
5128aa6
Compare
The OpenBSD project has songs for each release, this is the ekiden 0.3 one. |
c881a7c
to
ed15809
Compare
23b15c9
to
c9ddbdc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yolo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm also committed to maintaining this
None => return Err(RAKError::NotConfigured.into()), | ||
}; | ||
let _authenticated_avr = avr::verify(&avr)?; | ||
// TODO: Verify that the AVR has H(RAK) in report body. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ℹ️ downstream consumers will check our AVR. this would be a convenience sanity check
c4cc89a
to
3e1a08f
Compare
6a04d1c
to
2e374db
Compare
2e374db
to
3ff39a5
Compare
Closes #1364
Closes #96
Closes #1022
Closes #1235
Closes #167
Closes #1260
Closes #1222
Closes #52
See #1000 (comment)
See #1318
TODO
sgxs
crate).cargo-elf2sgxs
based onftxsgx-runner-cargo
fromfortanix-sgx-tools
(that one almost works, but runs the binary as well which is annoying).