-
Notifications
You must be signed in to change notification settings - Fork 145
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
refactor mobilecoind api to not depend on consensus-api #3307
Conversation
I am having a lot of build problems in another project due to mc-mobilecoind-api pulling in mbedtls, which exports some symbols that conflicts with another C library that some rust code depends on. I determined that the only reason I have mbedtls in my build is that `mobilecoind-api` depends on `consensus-api` and this pulls in `mc-attest-core` etc. This change allows me to break this dependency.
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.
Looks good as long as we're OK with the two LastBlockInfo
versions possibly deviating.
This specific dependency issue will hopefully go away with mobilecoinfoundation/mcips#64, but that's a ways out for this current problem
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 is a breaking change to the mobilecoind API, so it should be noted in the commit message (or a ChangeLog added), and the reserved 2
issue @nick-mobilecoin identified should be fixed. I'm ambivalent about the change itself.
What impact does this have on mobilecoind-json
, if any?
I dont think its a breaking change as long as new and old structs are wire compatible (the reserved 2 thing is fine though) |
I dont think this struct is exposed through mobilecoind-json, we generally dont add new features to that. |
Deleting deprecated fields and methods is always a breaking change :-) |
* refactor mobilecoind api to not depend on consensus-api I am having a lot of build problems in another project due to mc-mobilecoind-api pulling in mbedtls, which exports some symbols that conflicts with another C library that some rust code depends on. I determined that the only reason I have mbedtls in my build is that `mobilecoind-api` depends on `consensus-api` and this pulls in `mc-attest-core` etc. This change allows me to break this dependency. * remove stuff from build.rs that isn't needed anymore * cargo lock * fixup * fixup * restore deprecated field (avoid compatibility break) * add changelog entry * fixup
I am having a lot of build problems in another project due to mc-mobilecoind-api pulling in mbedtls, which exports some symbols that conflicts with another C library that some rust code depends on.
(A grpcio thread crashes, causing the next thread to make a grpc request to hang:
)
I determined that the only reason I have mbedtls in my build is that
mobilecoind-api
depends onconsensus-api
and this pulls inmc-attest-core
etc.This change allows me to break this dependency.
I think this change is good from a separation of concerns point of view anyway. Consensus should be able to evolve its API without worrying if it's breaking mobilecoind users.