JIT for Truebit

Sami Mäkelä
Dec 21, 2018 · 6 min read

Running Truebit tasks using JIT

Floating point

Stack size

(func
(param i64)
(result i64)
(local i64 i64)
(set_local 1 (get_local 0))
(set_local 2 (i64.mul (get_local 0) (get_local 1)))
(get_local 2)
)
A stack frame in the stack

Metering

Intermediate states

(func
(param i64)
(result i64)
(call $f (call $g (get_local 0))
(call $f (get_local 0) (get_local 0)))
)
(func
(param i64)
(result i64)
(local i64)
(call $f (tee_local 1 (call $g (get_local 0)))
(call $f (get_local 0) (get_local 0)))
)

Handling breakpoints in the interpreter

Critical path

Status

Truebit

Scalable, trustless computation

Thanks to Jason Teutsch.

Sami Mäkelä

Written by

Truebit

Truebit

Scalable, trustless computation