-
Notifications
You must be signed in to change notification settings - Fork 225
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
Full Light Client WASM support #809
Comments
I have been trying to get this to work. I Implemented custom IO and EvidenceReporter traits using in memory store, however I am not able to figure out how to make requests in the trait methods.
In the current implementation, when a request has to be made it blocks the thread until the call is complete, however I am not sure how this can be done in wasm since it does not allow any kind of blocking. Also other than networking I see alot of blocking functionality being used in the crate such as message passing with crossbeam - I am not sure how we can make it wasm compatible. |
@shravanshetty1 you're right. So right now there are two options here:
|
For now on my fork, I made everything async and removed send+sync conditions, the tests pass. Seems to atleast get initialized but its panicing because the crate is using std::Time. Probably need to port it to https://github.com/chronotope/chrono for wasm support |
Follows from #463. I've modified this issue to turn it into a tracking issue for WASM support for the Light Client.
At present, the tendermint-light-client-js crate just exposes the Light Client's
verify
method to JavaScript, but leaves networking and the verification algorithm (e.g. forward bisection, or backwards verification) up to the implementer to implement in JavaScript.In order to achieve a fully functional, WASM-compatible Light Client, we probably need several issues to be addressed:
async
-ify the light client #953There may be more issues that pop up in this process.
What's the definition of "done" for this issue?
When we can compile the
tendermint-light-client
crate to WASM and use all of its primary functionality (including networking, the verification algorithms, fork detection and evidence reporting) from JavaScript.The text was updated successfully, but these errors were encountered: