To date, IPFS has been a project focused on data. IPVM is a specification for bringing content-addressed execution to content-addressed data on IPFS. To this end, the IPVM spec aims to be the easiest, fastest, most secure, and open way to run decentralized compute jobs everywhere.
Another way to describe IPVM would be "an open, decentralized, and local-first competitor to AWS Lambda".
The project leverages Wasm, content addressing, SPKI, and object capabilities to liberate computation from depending on specific prenegotiated services like the big cloud providers. Execution should scale flexibly from on-device by default all the way up to edge PoPs and data centers.
- Wasm-on-IPFS
- Declarative invocation (not an ABI, see section below)
- Captured results, re-ingested to IPFS
- A distributed scheduler
- Single vs cron, local vs remote vs either, etc
- Matchmaking
- Poster/acceptor
- Push-to-remote
- (Global) memoization table & adaptive optimization
- Managed effects (via an IPVM runtime)
- Mobile (ambient) computing, compute-to-data, and data-to-compute
- "The HTTP of Compute"
- Stretch: autonomous agents
- Homestar - the core, Rust-based implementation and runtime of IPVM
- A replacement of IPFS internals — that's wasm-ipfs
- A language for distributed applications
- A WASI interface
- A new blockchain
- Autocodec
- wasm-ipfs
- IPVM
These are related, but separate. The relatedness comes from the fact that if we have one Wasm engine in IPFS, then the other components can rely on it too.
- Seamless Services for an Open World by Brooklyn Zelenka
- Foundations for Open-World Compute by Zeeshan Lakhani
- Foundations for Open-World Compute: Homestar, an IPVM Tale by Zeeshan Lakhani
- IPVM: The Long-Fabled Execution Layer by Brooklyn Zelenka
- IPVM: Content Addressed Compute for an Open World by Brooklyn Zelenka
- IPVM - IPFS and WASM by Brooklyn Zelenka
- IPVM: Use Cases & System Designs by Juan Benet