A presentation at IPFS รพing โ23 in in Brussels, Belgium by Brooklyn Zelenka
Interplanetary Virtual Machine ๐คน Content Addressed Compute for an Open World ๐ค github.com/ipvm-wg lu.ma/ipvm
Sometimes I think the only universal in the computing field is the fetch-execute-cycle. Alan Perlis, Epigrams on Programming #44
IPVM Brooklyn Zelenka @expede github.com/expede
IPVM Brooklyn Zelenka @expede Cofounder & CTO at Fission discord.gg/fissioncodes @fission@plnetwork.xyz IPVM Spec Wrangler โ github.com/ipvm-wg github.com/expede
IPVM Brooklyn Zelenka @expede Cofounder & CTO at Fission discord.gg/fissioncodes @fission@plnetwork.xyz IPVM Spec Wrangler โ github.com/ipvm-wg github.com/expede
IPVM Greatest Hits ๐ชฉ๐บ
IPVM Greatest Hits ๐ชฉ๐บ How we got here What is an โIPVMโ anyway? What weโve learned How to get involved
IPVM ๐ค Brought To You Byโฆ
IPVM ๐ค Brought To You Byโฆ
IPVM ๐ค Brought To You Byโฆ
IPVM ๐ค Brought To You Byโฆ
IPVM Timeline
IPVM Timeline 2023
IPVM Timeline ๐ IPFS รพing Reykjavรญk 2023
IPVM Timeline ๐ IPFS รพing Reykjavรญk 2023 <crickets>
IPVM Timeline ๐ Specs v0.1 Varsig, Invocation, Task, Workflow IPFS รพing Reykjavรญk <crickets> 2023
IPVM Timeline ๐ Specs v0.1 Varsig, Invocation, Task, Workflow IPFS รพing Reykjavรญk <crickets> 2023 Proof of Concept
IPVM Timeline ๐ Specs v0.1 Varsig, Invocation, Task, Workflow IPFS รพing Reykjavรญk <crickets> 2023 Proof of Concept Homestar (rs-ipvm) Starts
IPVM Timeline ๐ Specs v0.1 Varsig, Invocation, Task, Workflow IPFS รพing Reykjavรญk <crickets> 2023 Proof of Concept Specs v0.2 Homestar (rs-ipvm) Starts
IPVM Timeline ๐ Specs v0.1 Varsig, Invocation, Task, Workflow IPFS รพing Reykjavรญk <crickets> 2023 Proof of Concept Specs v0.2 Homestar (rs-ipvm) Starts IPVM Q1 Workshop Vancouver
IPVM Timeline ๐ Specs v0.1 Varsig, Invocation, Task, Workflow IPFS รพing Reykjavรญk <crickets> ๐ 2023 Proof of Concept Specs v0.2 Homestar (rs-ipvm) Starts IPFS รพing Brussels IPVM Q1 Workshop Vancouver
IPVM What Is An IPVM? ๐ค
What is an IPVM ๐ค The HTTP of Compute ๐คฉ
What is an IPVM ๐ค The HTTP of Compute ๐คฉ Compute โ like data โ should be a ubiquitous commodity End users & IPFS teams can depend on having compute around Fully consistent functionality between clients Replace (e.g.) AWS Lambda with an open protocol & nodes
UCAN Decentralize Auth Everywhere
UCAN Decentralize Auth Everywhere Far Edge Commons Cloud & Edge
UCAN Decentralize Auth Everywhere Far Edge Commons Cloud & Edge
UCAN Decentralize Auth Everywhere Far Edge Commons Cloud & Edge
What is an IPVM ๐ค Permissionless Interop
What is an IPVM ๐ค Permissionless Interop ๐ต โ
What is an IPVM ๐ค Permissionless Interop ๐ต โ ๐ โ๐จ๐ก
What is an IPVM ๐ค Permissionless Interop ๐ต โ ๐ ๐ โ๐จ๐ก
What is an IPVM ๐ค With Their Powers Combined
What is an IPVM ๐ค With Their Powers Combined Compute โ Data ๐พ Auth ๐
What is an IPVM ๐ค With Their Powers Combined Compute โ Data ๐พ Auth ๐
What is an IPVM ๐ค With Their Powers Combined Compute โ Data ๐พ Auth ๐
What is an IPVM ๐ค With Their Powers Combined Compute โ Data ๐พ Auth ๐
What is an IPVM ๐ค With Their Powers Combined { IPVM Compute โ Data ๐พ Auth ๐
What is an IPVM ๐ค
What is an IPVM ๐ค Reusable Spec Stack
What is an IPVM ๐ค Reusable Spec Stack UCAN Core ๐ Distributed Authority IPLD-WIT โ ABI Varsig โ Signature Multiformat
What is an IPVM ๐ค Reusable Spec Stack UCAN Pipeline ๐ Call Graph, Awaits, etc UCAN Invocation ๐ช Input Addressing, Execution, Memoization, etc UCAN Core ๐ Distributed Authority IPLD-WIT โ ABI Varsig โ Signature Multiformat
What is an IPVM ๐ค Reusable Spec Stack IPVM Task โ VM Config, Verification, etc UCAN Pipeline ๐ Call Graph, Awaits, etc UCAN Invocation ๐ช Input Addressing, Execution, Memoization, etc UCAN Core ๐ Distributed Authority IPLD-WIT โ ABI Varsig โ Signature Multiformat
What is an IPVM ๐ค Reusable Spec Stack IPVM Workflow ๐ Transactions, Error Handling, Defaults IPVM Task โ VM Config, Verification, etc UCAN Pipeline ๐ Call Graph, Awaits, etc UCAN Invocation ๐ช Input Addressing, Execution, Memoization, etc UCAN Core ๐ Distributed Authority IPLD-WIT โ ABI Varsig โ Signature Multiformat
What is an IPVM ๐ค Reusable Spec Stack IPVM Workflow ๐ Transactions, Error Handling, Defaults IPVM Task โ VM Config, Verification, etc UCAN Pipeline ๐ Call Graph, Awaits, etc UCAN-Chan / ใฆใผใญใฃใณใกใใ Payments UCAN Invocation ๐ช Input Addressing, Execution, Memoization, etc UCAN Core ๐ Distributed Authority IPLD-WIT โ ABI Varsig โ Signature Multiformat
What is an IPVM ๐ค The Friends You Made Along the Way
What is an IPVM ๐ค The Friends You Made Along the Way
What is an IPVM ๐ค The Friends You Made Along the Way G N I K R O W S P U O GR
IPVM Invocation-as-IPLD UCAN Invocation Spec
Invocation-as-IPLD Reference vs Dispatch ๐๐
Invocation-as-IPLD Reference vs Dispatch ๐๐ Arguments
Invocation-as-IPLD Reference vs Dispatch ๐๐ Task f Arguments Scheduling Con ig, etc
Invocation-as-IPLD Reference vs Dispatch ๐๐ Task f Arguments Scheduling Con ig, etc
Invocation-as-IPLD Reference vs Dispatch ๐๐ Task f Arguments Scheduling Con ig, etc
Invocation-as-IPLD Reference vs Dispatch ๐๐ Task f Arguments Scheduling Con ig, etc
Invocation-as-IPLD Reference vs Dispatch ๐๐ Receipt Task f Arguments Scheduling Con ig, etc
Invocation-as-IPLD Reference vs Dispatch ๐๐ Task f ff Arguments Receipt Pure Values & E ects Scheduling Con ig, etc Metadata (e.g. trace)
Invocation-as-IPLD IPLD Schema
Invocation-as-IPLD IPLD Schema Instruction (Closure)
Invocation-as-IPLD IPLD Schema Task Instruction (Closure)
Invocation-as-IPLD IPLD Schema Invocation Task Instruction (Closure)
Invocation-as-IPLD IPLD Schema Invocation Invocation Invocation Task Task Task Instruction (Closure) Instruction (Closure) Instruction (Closure)
Invocation-as-IPLD IPLD Schema f Work low Invocation Invocation Invocation Task Task Task Instruction (Closure) Instruction (Closure) Instruction (Closure)
Invocation-as-IPLD Matching Impedance
Invocation-as-IPLD Matching Impedance
Invocation-as-IPLD Matching Impedance
Invocation-as-IPLD Matching Impedance
Invocation-as-IPLD Matching Impedance e.g. 2 IPLD numerics < 10 WIT numerics
Invocation-as-IPLD Matching Impedance e.g. 2 IPLD numerics < 10 WIT numerics
Invocation-as-IPLD Matching Impedance
IPVM Dataflow & Pipelining ๐ฐ
Dataflow & Pipelining ๐ฐ
Dataflow & Pipelining ๐ฐ Their recommendation, which I feel was prescient, was that [dataflow] seemed to them more like a law of nature, which is not patentable. J. Paul Morrison, Flow-Based Programming
Dataflow & Pipelining ๐ฐ Solving for Data Gravity
Dataflow & Pipelining ๐ฐ Solving for Data Gravity
Dataflow & Pipelining ๐ฐ Solving for Data Gravity
Dataflow & Pipelining ๐ฐ Transfer Authority
Dataflow & Pipelining ๐ฐ Transfer Authority ๐ฉ๐ป ๐ ๐ถ ๐ฌ ๐พ ๐งธ
Dataflow & Pipelining ๐ฐ Transfer Authority ๐ฉ๐ป ๐จ๐ฆณ๐ฅ ๐ ๐ถ ๐ฌ ๐พ ๐งธ ๐ ๐ถ ๐ฌ ๐พ ๐งธ
Dataflow & Pipelining ๐ฐ Transfer Authority ๐ฉ๐ป ๐จ๐ฆณ๐ฅ ๐ ๐ถ ๐ฌ ๐พ ๐งธ ๐ ๐ถ ๐ฌ ๐พ ๐งธ ๐ฉ๐ ๐ถ
Dataflow & Pipelining ๐ฐ Transfer Authority ๐ฉ๐ป ๐จ๐ฆณ๐ฅ ๐ ๐ถ ๐ฌ ๐พ ๐งธ ๐ ๐ถ ๐ฌ ๐พ ๐งธ ๐ ๐พ ๐งธ ๐จ๐จ ๐ฉ๐ ๐ถ
Dataflow & Pipelining ๐ฐ Transfer Authority ๐ฉ๐ป ๐จ๐ฆณ๐ฅ ๐ ๐ถ ๐ฌ ๐พ ๐งธ ๐ ๐ถ ๐ฌ ๐พ ๐งธ ๐ ๐ฉ๐ ๐ถ ๐ ๐ถ ๐พ ๐งธ ๐จ๐จ โโ
Dataflow & Pipelining ๐ฐ Distributed Invocation
Dataflow & Pipelining ๐ฐ Distributed Invocation dns:example.com/TYPE=TXT crud/update
Dataflow & Pipelining ๐ฐ Distributed Invocation dns:example.com/TYPE=TXT crud/update await mailto:alice@example.com msg/send {to: bob@example.com}
Dataflow & Pipelining ๐ฐ Distributed Invocation dns:example.com/TYPE=TXT crud/update await mailto:alice@example.com msg/send {to: bob@example.com} await mailto:alice@example.com msg/send {to: carol@example.com}
Dataflow & Pipelining ๐ฐ Distributed Invocation dns:example.com/TYPE=TXT crud/update await await mailto:alice@example.com msg/send {to: bob@example.com} await mailto:alice@example.com msg/send {to: carol@example.com} await https://example.com/report crud/update
Dataflow & Pipelining ๐ฐ Distributed Invocation dns:example.com/TYPE=TXT crud/update await mailto:alice@example.com msg/send {to: carol@example.com} await mailto:alice@example.com msg/send {to: bob@example.com} await await https://example.com/report crud/update
Dataflow & Pipelining ๐ฐ Distributed Invocation ๐ฉ๐ ๐จ๐ณ dns:example.com/TYPE=TXT crud/update await mailto:alice@example.com msg/send {to: carol@example.com} await mailto:alice@example.com msg/send {to: bob@example.com} await await https://example.com/report crud/update
Dataflow & Pipelining ๐ฐ Abstract Resolution Cycle
Dataflow & Pipelining ๐ฐ Abstract Resolution Cycle
Dataflow & Pipelining ๐ฐ Abstract Resolution Cycle
Dataflow & Pipelining ๐ฐ Abstract Resolution Cycle
Dataflow & Pipelining ๐ฐ Abstract Resolution Cycle
Dataflow & Pipelining ๐ฐ Abstract Resolution Cycle
Dataflow & Pipelining ๐ฐ Input Addressing
Dataflow & Pipelining ๐ฐ Input Addressing ๐ง
Dataflow & Pipelining ๐ฐ Input Addressing hash(๐ง) ๐ง
Dataflow & Pipelining ๐ฐ Input Addressing hash(๐ง) ๐ง ๐งพ
Dataflow & Pipelining ๐ฐ Input Addressing hash(๐ง) hash({ rsc: โdns:example.comโ op: โcrud/updateโ input: {foo: โbarโ} }) ๐ง ๐งพ
Dataflow & Pipelining ๐ฐ Input Addressing hash(๐ง) hash({ rsc: โdns:example.comโ op: โcrud/updateโ input: {foo: โbarโ} }) ๐ง ๐งพ
Dataflow & Pipelining ๐ฐ Cache Intermediate Results
Dataflow & Pipelining ๐ฐ Cache Intermediate Results ๐ฐ ๐ฐ
Dataflow & Pipelining ๐ฐ Cache Intermediate Results ๐ฐ ๐ฐ
Dataflow & Pipelining ๐ฐ Cache Intermediate Results ๐ฐ ๐ฐ
Dataflow & Pipelining ๐ฐ Cache Intermediate Results ๐ฐ ๐ฐ ๐ฐ
Dataflow & Pipelining ๐ฐ Reduce, Resume, Recycle โป
Dataflow & Pipelining ๐ฐ Reduce, Resume, Recycle โป
Dataflow & Pipelining ๐ฐ Reduce, Resume, Recycle โป
Dataflow & Pipelining ๐ฐ Reduce, Resume, Recycle โป
IPVM Decentralised Memoization ๐งพ
Decentralised Memoization ๐งพ
Decentralised Memoization ๐งพ [T]he speed of light is constant and New York is not getting any closer to Tokyo. As hardware continues to improve, the latency barrier between distant machines will increasingly dominate Mark Miller, Robust Composition
Decentralised Memoization ๐งพ With a Little Scale From My Friends
Decentralised Memoization ๐งพ Throughput With a Little Scale From My Friends Parallelization
Decentralised Memoization ๐งพ With a Little Scale From My Friends Throughput Ideal (Linear) Parallelization
Decentralised Memoization ๐งพ With a Little Scale From My Friends Ideal (Linear) Throughput Amdahlโs Law Parallelization
Decentralised Memoization ๐งพ With a Little Scale From My Friends Ideal (Linear) Throughput Amdahlโs Law Universal Scaling Law Parallelization
Decentralised Memoization ๐งพ With a Little Scale From My Friends Ideal (Linear) Throughput Amdahlโs Law Incoherence, Data Contention Parallelization Universal Scaling Law
Decentralised Memoization ๐งพ With a Little Scale From My Friends Throughput Global Adaptive Optimization ๐ Ideal (Linear) Amdahlโs Law Incoherence, Data Contention Parallelization Universal Scaling Law
Decentralised Memoization ๐งพ Surprise: Reverse Lookup For Free
Decentralised Memoization ๐งพ Surprise: Reverse Lookup For Free CID โ Computed Metadata
Decentralised Memoization ๐งพ Surprise: Reverse Lookup For Free CID โ Computed Metadata e.g. AI moderation classifier
Decentralised Memoization ๐งพ Surprise: Reverse Lookup For Free CID โ Computed Metadata e.g. AI moderation classifier e.g. Distributed token validation
IPVM The Safety Dance ๐บ
The Safety Dance ๐บ
The Safety Dance ๐บ โvirtual resiliencyโ, analogous to virtual memory [โฆ] allows failure oblivious code to run in a failure resistant manner Goldstein et al, AMBROSIA: Providing Performant Virtual Resiliency for Distributed Applications
The Safety Dance ๐บ
The Safety Dance ๐บ If their application can be cast as pure data processing, they benefit from the past 40-50 years of work form the database community, which has shown how declarative database systems can completely isolate the developer from the possibility of failure Goldstein et al, AMBROSIA: Providing Performant Virtual Resiliency for Distributed Applications
The Safety Dance ๐บ Non-Monotonicity
The Safety Dance ๐บ Non-Monotonicity Impure E ect Stream Pure E ect Stream Pure Function Stream ff ff Base Event Stream
The Safety Dance ๐บ Non-Monotonicity Impure E ect Stream Pure E ect Stream Pure Function Stream ff ff Base Event Stream
The Safety Dance ๐บ Non-Monotonicity Impure E ect Stream Pure E ect Stream Pure Function Stream ff ff Base Event Stream
The Safety Dance ๐บ Non-Monotonicity Impure E ect Stream Pure E ect Stream Pure Function Stream ff ff Base Event Stream
The Safety Dance ๐บ Non-Monotonicity Impure E ect Stream Pure E ect Stream Pure Function Stream ff ff Base Event Stream
The Safety Dance ๐บ Non-Monotonicity Impure E ect Stream Pure E ect Stream Pure Function Stream ff ff Base Event Stream
The Safety Dance ๐บ Non-Monotonicity Impure E ect Stream Pure E ect Stream Pure Function Stream ff ff Base Event Stream
The Safety Dance ๐บ Non-Monotonicity Impure E ect Stream Pure E ect Stream Pure Function Stream ff ff Base Event Stream ๐
The Safety Dance ๐บ Non-Monotonicity Impure E ect Stream Pure E ect Stream Pure Function Stream ff ff Base Event Stream ๐
The Safety Dance ๐บ Virtual Resiliency
The Safety Dance ๐บ Virtual Resiliency Mutation ๐ฆ Idempotent ๐ Deterministic ๐
The Safety Dance ๐บ Virtual Resiliency Mutation ๐ฆ Idempotent ๐ Deterministic ๐ Query A Query B
The Safety Dance ๐บ Virtual Resiliency Query A Query B Compute A Mutation ๐ฆ Idempotent ๐ Deterministic ๐
The Safety Dance ๐บ Virtual Resiliency Query A Query B Compute A Mutation ๐ฆ Query C Idempotent ๐ Deterministic ๐
The Safety Dance ๐บ Virtual Resiliency Query A Query B Compute A Mutation ๐ฆ Query C Idempotent ๐ Deterministic ๐ Compute B Query D
The Safety Dance ๐บ Virtual Resiliency Query A Query B Compute A Mutation ๐ฆ Query C Idempotent ๐ Deterministic ๐ Compute B Query D Mutation
The Safety Dance ๐บ Virtual Resiliency Mutation Query A Query B Compute A Mutation ๐ฆ Query C Mutation Idempotent ๐ Deterministic ๐ Compute B Query D Mutation
The Safety Dance ๐บ Simplified Safe Layout
The Safety Dance ๐บ Simplified Safe Layout Queries Queries Queries
The Safety Dance ๐บ Simplified Safe Layout Queries Queries Queries Pure Computation Pure Computation Pure Computation
The Safety Dance ๐บ Simplified Safe Layout Queries Queries Queries Pure Computation Pure Computation Pure Computation
The Safety Dance ๐บ Simplified Safe Layout Queries Queries Queries Pure Computation Pure Computation Pure Computation Mutation
The Safety Dance ๐บ Simple Example Compute A Query Compute B Mutation
The Safety Dance ๐บ Simple Example Compute A Query Compute B Mutation
The Safety Dance ๐บ From CID to CHa ๐ต
The Safety Dance ๐บ From CID to CHa ๐ต CID
The Safety Dance ๐บ From CID to CHa ๐ต CID โ
The Safety Dance ๐บ From CID to CHa ๐ต CID โ โ
The Safety Dance ๐บ From CID to CHa ๐ต CID โ โ โ
The Safety Dance ๐บ From CID to CHa ๐ต CID โ โ โ CHa
The Safety Dance ๐บ From CID to CHa ๐ต CID โ โ โ CHa Task
UCAN Decentralize Auth โCuratedโ Future & Todos ๐ฎ
Requirements On Deck: Optimistic Verification
Requirements On Deck: Optimistic Verification
Requirements On Deck: Optimistic Verification
UCAN Decentralize Auth โIPFS Runโ
UCAN Decentralize Auth Decentralised Wasm Repositories
UCAN Decentralize Auth Decentralised Wasm Repositories
UCAN Decentralize Auth Join Us โ
Join Us โ Connect
Join Us โ Connect Community: github.com/ipvm-wg
Join Us โ Connect Community: github.com/ipvm-wg
Join Us โ Connect Community: github.com/ipvm-wg Calls: lu.ma/ipvm
Join Us โ Connect Community: github.com/ipvm-wg Calls: lu.ma/ipvm
github.com/ipvm-wg lu.ma/ipvm ๐ รพank you, IPFS รพing ๐ง๐ช brooklyn@fission.codes discord.gg/fissioncodes github.com/expede