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

WebAssembly in Blockchains #206

Closed
sinahab opened this issue Apr 6, 2018 · 7 comments
Closed

WebAssembly in Blockchains #206

sinahab opened this issue Apr 6, 2018 · 7 comments

Comments

@sinahab
Copy link
Contributor

sinahab commented Apr 6, 2018

WebAssembly is finding a home within blockchains.

As a non-web platform, blockchains have distinct requirements. We have compiled notes from projects across the space (Ethereum, Parity, Dfinity, and Truebit), and will use this session to give an overview of approaches and challenges to the wider community. Referenced in CG-04.

We will discuss the following points:

  • An overview of the blockchain VM:

    • A coordination layer between the WebAssembly VM and blockchain state.
  • The blockchain VM needs to be deterministic (for nodes to reach consensus within the distributed network):

    • Resource limits: stack depth & memory.
    • Floating point.
    • Other sources of indeterminism: instantiation of a module
  • Blockchains meter resource utilization:

    • The mechanics of metering: insert metering instructions per branch after verification.
    • Time: metering for instructions
    • Space: metering for memory
  • Typed traps

    • To enable symbolic execution and static analysis tools.
  • Imports

    • Accessing the memory: a spec for non-browser-based VMs.
    • Async / promises.
    • Having a WebAssembly standard library which defines operating system syscall.
  • Instrumentation:

    • Two parts: 1) what to collect, 2) how to collect it.
    • Introducing ways to inspect the stack.
  • Backward compatibility

    • Good: WASM binaries starts with a distinct flag.
    • Existing projects: JULIA, evm2wasm.
  • New WASM developments which will be helpful:

    • Multi-values
    • References types
    • Annotations
    • Capabilities
  • New WASM developments which might not be helpful (due to non-determinism):

    • Threads (with shared memory).
    • GC
    • SIMD.
@aj07
Copy link

aj07 commented Nov 1, 2018

@sinahab did you had meeting on it? When will be the next meeting. I want to be part of it.

@lrettig
Copy link

lrettig commented Mar 10, 2019

@sinahab any interest in planning one of these for 2019?

@sinahab
Copy link
Contributor Author

sinahab commented Mar 11, 2019

@lrettig – happy to help, though will probably not have the capacity to be the primary driver. What are you thinking?

@lrettig
Copy link

lrettig commented Mar 12, 2019

Did this happen last year? If so, are there any notes or recordings?

@binji
Copy link
Member

binji commented Mar 12, 2019

Here are the meeting notes and slides from the April 2018 meeting: https://github.com/WebAssembly/meetings/blob/master/2018/CG-04.md#webassembly-in-blockchain

@lrettig
Copy link

lrettig commented Mar 13, 2019

Thanks @binji, this is awesome and very helpful.

Several of us are hoping/planning to attend CG-06 including @recmo, @axic, maybe @sinahab? I wonder if we don't have some interesting findings from the past year of work on Ethereum and related projects to share.

@binji
Copy link
Member

binji commented Mar 13, 2019

@lrettig Sounds good! Feel free to send a PR to that document w/ with an agenda item, and who wants to lead the discussion. We haven't really started planning that meeting yet, so things may end up moving around a bit.

esoterra pushed a commit to esoterra/meetings that referenced this issue Dec 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants