Collecting Garbage on the Blockchain
summary
An incremental garbage collector for a WebAssembly blockchain (Internet Computer) that bounds GC work to fit transaction instruction limits and avoid unbounded stop the world pauses. It uses snapshot-at-beginning conservative marking, per-run empty call stack at phase boundaries, partitioned heaps with 32 MB partitions, incremental evacuation compaction using Brooks forwarding pointers, and a separate updating phase that patches all pointers so reclaimed memory is available immediately. Measurements show bounded pause behavior, slightly lower total instruction cost than alternatives, higher peak heap due to forwarding and copy space, and better scalability past previous GC instruction limits.
AI-written summary · about
chapters (11)
- 0:00Introduction to blockchain garbage collection
- 1:24Transactional execution model
- 3:32Moto language GC basics
- 4:57Incremental GC requirements
- 6:00Moto incremental GC design
- 9:34Evacuation phase pointers
- 11:26Updating phase patching
- 12:50Experimental results
- 15:39Scalability trade-offs
- 16:41Key takeaways
- 17:02Q&A
related talks
30mA Compiler Author’s Guide to WebAssembly GC
57mIs Wasm Becoming Garbage? (Keynote)
57mWasm GC
21mDecentralized and Stateful Serverless Computing on the Internet Computer Blockchain
31mWasm GC: What Exactly Is It (and Why I Should Care)
22m[Keynote] Wasm GC and the Future of High-Level Language Compilation
17mImplementing and Evaluating a High-Level Language with WasmGC and the Wasm (…)
10mMobile app development with WebAssembly GC
