Building JAM Services in Rust

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! :sweat_smile: :joy: :smiling_face_with_three_hearts:

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.

9 Likes