wavesplatform / wavesplatform/gowaves

Transpiling of RIDE scripts to native Go code

Open
#217 0 comments 0 reactions 1 assignee View on GitHub

@alexeykiselev is already working on this.

Since Dec 4, 2019.

enhancement
Dominant language
Go
Stars
251
Forks
73
Avg merge
1d 11h
Merged PRs (30d)
28

Description

Аbstract
The interpretation of RIDE scripts is slow. The idea is to transpile scripts those already in blockchain into a native Go functions and use them while importing blockchain or while validation of all scripts known at the moment of release.

Motivation and Purposes
To speedup the import and validation of blocks, to reduce the memory footprint of the node.

Specification

  1. Transpiler
    Implement the transpiler as a command line utility that will extract all scripts that in given blockchain file and generate Go source code for every script.
  2. Node with built-in scripts
    Include the generated functions in separate package in gowaves node. Add the index to lookup for the native function for a script. If there is a native function for a script in blockchain use it to validate transactions, if not use the default interpretation technic.

Backwards Compatibility
In case of impossibility to transpile a script the existing interpretation will be used.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.