With @koute’s help here, we were able to compile our first JAM service built in Rust into PVM byte code. Woohoo!
Amazingly, its nothing more than a “cargo build” and a polkatool
call. No more hand assembling PVM byte code like its 1964!
We opened a draft pull request here. Check the README for details.
We should be able to prepend a header soon to make this byte code fully GP-compatible/JAM-ready within polkatool
, enabling JAM implementers to fold Rust-built JAM Services into JAM’s guaranteeing/assuring/auditing/disputes processes.
The first few JAM service builders can aggregate JAM Services examples here showing many of host functions in action in the context of refine-accumulate for multiple languages: Rust right now, C/C++ surely, Solidity (with revive
), and maybe other languages too.