Better Together πŸ«‚ IPVM For an Open World πŸš€ github.com/ipvm-wg fission.codes

IPVM: Better Together

IPVM: Better Together

IPVM: Better Together Jesper, I have this idea in which we’ll connect all of the worlds Erlang systems to each other, imagine if every process could talk to every other process, world-wide! – Joe Armstrong, email to Jesper L. Andersen

IPVM: Better Together Brooklyn Zelenka, @expede github.com/expede

IPVM: Better Together Brooklyn Zelenka, @expede Cofounder & CTO at Fission discord.gg/fissioncodes @fission@plnetwork.xyz IPVM Spec Wrangler β€” github.com/ipvm-wg github.com/expede

IPVM: Better Together Brooklyn Zelenka, @expede Cofounder & CTO at Fission discord.gg/fissioncodes @fission@plnetwork.xyz IPVM Spec Wrangler β€” github.com/ipvm-wg github.com/expede

IPVM: Better Together 🀝 Brought To You By…

IPVM: Better Together 🀝 Brought To You By…

IPVM: Better Together 🀝 Brought To You By…

IPVM: Better Together 🀝 Brought To You By…

IPVM: Better Together Consistency & Distribution

IPVM: Better Together Consistency & Distribution

IPVM: Better Together Consistency & Distribution

IPVM: Better Together Consistency & Distribution

IPVM: Better Together Consistency & Distribution

IPVM: Better Together Consistency & Distribution

IPVM: Better Together Consistency & Distribution IPVM

IPVM: Better Together Consistency & Distribution IPVM

IPVM: Better Together Everything, Everywhere, All At Once

IPVM: Better Together Everything, Everywhere, All At Once Nothing less than connecting all of the world’s users & services. The β€œHTTP of Compute”: open, interoperable, & everywhere. Must be substantially better than the status quo.

β€”We Can Do Better Than β€” The Status Quo

The Status Quo Consequences πŸ‚

The Status Quo Consequences πŸ‚ β€’ Single source of truth (β€œthe” database)

The Status Quo Consequences πŸ‚ β€’ Single source of truth (β€œthe” database)

The Status Quo Consequences πŸ‚ β€’ Single source of truth (β€œthe” database) β€’ Server-centric β€’ β€œFront vs back end developers” β€’ DevOps, Docker, k8s β€’ How to train enough engineers?

The Status Quo Rolling Weight

The Status Quo Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%

The Status Quo Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%

The Status Quo Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%

The Status Quo Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%

The Status Quo Rolling Weight Other 35% IBM 4% Alibaba 4% Google 9% AWS 32% Azure 17%

The Status Quo Sending a β€œDirect” Message

The Status Quo Sending a β€œDirect” Message

The Status Quo Sending a β€œDirect” Message

The Status Quo Sending a β€œDirect” Message β³πŸ”‹πŸ›’πŸͺ 

The Status Quo Users vs Cloud Infra Source: AWS

The Status Quo Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS

The Status Quo Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS

The Status Quo Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS

The Status Quo Users vs Cloud Infra 6 7 6 2 1 1 1 1 Source: AWS

The Status Quo Users vs Cloud Infra 6 7 2 6 50M 1 1 1 1 Source: AWS

The Status Quo Users vs Cloud Infra 371 million 56M/centre 6 7 2 6 50M 1 1 1 1 Source: AWS

The Status Quo Users vs Cloud Infra 371 million 56M/centre 6 7 2 6 50M 1 1 ~435 million 435M/centre 1 1 Source: AWS

The Status Quo Users vs Cloud Infra 371 million 56M/centre 6 7 2 6 50M 1 1 ~435 million 435M/centre 1 ~1.4 billion 1400M/centre 1 Source: AWS

The Status Quo Event Horizon Aggregated Data

The Status Quo

The Status Quo As we continue to increase the number of globally connected devices, we must embrace a design that considers every single member in the system as the primary site for the data that it is generates. It is completely impractical that we can look at a single, or a small number, of globally distributed data centers as the primary site for all global information that we desire to perform computations with. – Meiklejohn, A Certain Tendency Of The Database Community

The Status Quo

β€” The Times They Are A-Changin’ β€” Signs of a Way Out

Signs of a Way Out Back to Our Roots

Signs of a Way Out Back to Our Roots 1. Decentralisation 2. Non-discrimination 3. Bottom-up Design 4. Universality 5. Consensus – The Web Foundation, History of the Web

Signs of a Way Out Back to Our Roots 1. Decentralisation 2. Non-discrimination 3. Bottom-up Design 4. Universality 5. Consensus en.wikipedia.org/wiki/OSI_model – The Web Foundation, History of the Web

Signs of a Way Out Back to Our Roots 1. Decentralisation 2. Non-discrimination 3. Bottom-up Design 4. Universality 5. Consensus en.wikipedia.org/wiki/OSI_model – The Web Foundation, History of the Web

Signs of a Way Out Back to Our Roots 1. Decentralisation 2. Non-discrimination 3. Bottom-up Design 4. Universality 5. Consensus en.wikipedia.org/wiki/OSI_model – The Web Foundation, History of the Web

Signs of a Way Out Everything, Everywhere

Signs of a Way Out Everything, Everywhere Commons Cloud & Edge Far Edge

Signs of a Way Out Everything, Everywhere Commons Cloud & Edge Far Edge

Signs of a Way Out Everything, Everywhere Commons Cloud & Edge Far Edge

Signs of a Way Out Dependency Stack

Signs of a Way Out Dependency Stack Compute βš™

Signs of a Way Out Dependency Stack Compute βš™ Data πŸ’Ύ

Signs of a Way Out Dependency Stack Compute βš™ Data πŸ’Ύ Auth 🎟

Signs of a Way Out ACL Redux

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ βš™

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ πŸ’‚ βœ‹ βš™

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ πŸ“‘ πŸ’‚ βœ‹ βš™

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ πŸ“‘ πŸ’‚ βœ‹ βš™

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ πŸ“‘ πŸ’‚ βœ‹ βš™

Signs of a Way Out ACL Redux πŸ§‘πŸŒΎ πŸ“‘ πŸ’‚ βœ‹ Not in control βš™

Signs of a Way Out ACL Redux πŸ“‘ In control πŸ§‘πŸŒΎ πŸ’‚ βœ‹ Not in control βš™

Signs of a Way Out ACL Redux πŸ“‘ πŸ’‚ βœ‹ In control πŸ§‘πŸŒΎ πŸ’‚ βœ‹ Not in control βš™

Signs of a Way Out Capabilities

Signs of a Way Out Capabilities πŸ•΅

Signs of a Way Out Capabilities πŸ•΅ βš™

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr βš™

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr 🎟 βš™

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr In control 🎟 βš™

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr In control 🎟 βš™ All req info

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr 🎟 βš™

Signs of a Way Out Capabilities πŸ•΅ 🎟 πŸ—Ί 🎟 🎟 Addr βš™

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr 🎟 βš™

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr πŸ‘¨πŸŽ¨ 🎟 βš™

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr 🎟 🎟 πŸ‘¨πŸŽ¨ βš™

Signs of a Way Out Capabilities πŸ•΅ πŸ—Ί Addr 🎟 🎟 πŸ‘¨πŸŽ¨ βš™ 🎟

Signs of a Way Out OAuth Sequence

Signs of a Way Out OAuth Sequence

Signs of a Way Out OAuth Sequence

Signs of a Way Out OAuth Sequence

Signs of a Way Out UCAN Sequence πŸ•™

Signs of a Way Out UCAN Sequence πŸ•™

Signs of a Way Out UCAN Sequence πŸ•™

Signs of a Way Out UCAN Sequence πŸ•™

Signs of a Way Out Disorderly Programming πŸ€– βš™ πŸ‘¨πŸ’» βš™ πŸ‘¨πŸ’» πŸ‘©πŸ’» πŸ€–

Signs of a Way Out Disorderly Programming πŸ€– βš™ πŸ‘¨πŸ’» βš™ πŸ‘¨πŸ’» πŸ‘©πŸ’» πŸ€–

Signs of a Way Out Don’t Make Me Think

Signs of a Way Out Don’t Make Me Think πŸ‘©πŸ’» πŸ“±

Signs of a Way Out Don’t Make Me Think πŸ‘©πŸ’» πŸ“±

Signs of a Way Out Don’t Make Me Think πŸ‘©πŸ’» πŸ“± βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™

Signs of a Way Out Don’t Make Me Think πŸ‘©πŸ’» πŸ“± βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™ βš™

Compute Substrate β€” Schedule. Execute. Verify. Reuse β€”

Compute Substrate Wasm Eats the World

Compute Substrate Wasm Eats the World

Compute Substrate Wasm Eats the World Bring your own language Runs everywhere Deterministic mode

Compute Substrate With Their Powers Combined!

Compute Substrate With Their Powers Combined! Compute βš™ Data πŸ’Ύ Auth 🎟

Compute Substrate With Their Powers Combined! ! e r e h veryw E Compute βš™ Data πŸ’Ύ Auth 🎟

Compute Substrate With Their Powers Combined! ! e r e h veryw E Compute βš™ Data πŸ’Ύ Auth 🎟

Compute Substrate With Their Powers Combined! ! e r e h veryw E Compute βš™ Data πŸ’Ύ Auth 🎟

Compute Substrate With Their Powers Combined! { IPVM ! e r e h veryw E Compute βš™ Data πŸ’Ύ Auth 🎟

Compute Substrate Code-as-Data

Compute Substrate Code-as-Data Arguments

Compute Substrate Code-as-Data Arguments

Compute Substrate Code-as-Data Task f Arguments Scheduling Con ig, etc

Compute Substrate Code-as-Data Task f Arguments Scheduling Con ig, etc

Compute Substrate Code-as-Data Task f Arguments Scheduling Con ig, etc

Compute Substrate Code-as-Data Task f Arguments Scheduling Con ig, etc

Compute Substrate Code-as-Data Receipt Task f Arguments Scheduling Con ig, etc

Compute Substrate Code-as-Data Receipt Task f ff Arguments Pure Values & E ects Scheduling Con ig, etc Metadata (e.g. trace)

Compute Substrate Input Addressing

Compute Substrate Input Addressing 🦞

Compute Substrate Input Addressing hash(🦞) 🦞

Compute Substrate Input Addressing hash(🦞) 🦞 🧾

Compute Substrate Input Addressing hash(🦞) hash({ rsc: β€œdns:example.com” op: β€œcrud/update” input: {foo: β€œbar”} }) 🦞 🧾

Compute Substrate IPLD Schema

Compute Substrate IPLD Schema Instruction (Closure)

Compute Substrate IPLD Schema Task Instruction (Closure)

Compute Substrate IPLD Schema Invocation Task Instruction (Closure)

Compute Substrate IPLD Schema Invocation Invocation Invocation Task Task Task Instruction (Closure) Instruction (Closure) Instruction (Closure)

Compute Substrate IPLD Schema f Work low Invocation Invocation Invocation Task Task Task Instruction (Closure) Instruction (Closure) Instruction (Closure)

Compute Substrate Matching Impedance

Compute Substrate Matching Impedance

Compute Substrate Matching Impedance

Compute Substrate Matching Impedance

Compute Substrate Matching Impedance e.g. 2 IPLD numerics < 10 WIT numerics

Compute Substrate Matching Impedance e.g. 2 IPLD numerics < 10 WIT numerics

Compute Substrate Matching Impedance

Compute Substrate Composition Without Imposition

Compute Substrate Composition Without Imposition πŸ‘©πŸ’» 🌈 🐢 🍬 🍾 🧸

Compute Substrate Composition Without Imposition πŸ‘©πŸ’» πŸ‘¨πŸ¦³πŸ–₯ 🌈 🐢 🍬 🍾 🧸 🌈 🐢 🍬 🍾 🧸

Compute Substrate Composition Without Imposition πŸ‘©πŸ’» πŸ‘¨πŸ¦³πŸ–₯ 🌈 🐢 🍬 🍾 🧸 🌈 🐢 🍬 🍾 🧸 πŸ‘©πŸš€ 🐢

Compute Substrate Composition Without Imposition πŸ‘©πŸ’» πŸ‘¨πŸ¦³πŸ–₯ 🌈 🐢 🍬 🍾 🧸 🌈 🐢 🍬 🍾 🧸 🌈 🍾 🧸 πŸ‘¨πŸŽ¨ πŸ‘©πŸš€ 🐢

Compute Substrate Composition Without Imposition πŸ‘©πŸ’» πŸ‘¨πŸ¦³πŸ–₯ 🌈 🐢 🍬 🍾 🧸 🌈 🐢 🍬 🍾 🧸 🌈 πŸ‘©πŸš€ 🐢 🌈 🐢 🍾 🧸 πŸ‘¨πŸŽ¨ β˜βš™

Compute Substrate Distributed Invocation

Compute Substrate Distributed Invocation dns:example.com/TYPE=TXT crud/update

Compute Substrate Distributed Invocation dns:example.com/TYPE=TXT crud/update await mailto:alice@example.com msg/send {to: bob@example.com}

Compute Substrate 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}

Compute Substrate 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

Compute Substrate 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

Compute Substrate 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

Compute Substrate Cache, Suspend, Move, Verify

Compute Substrate Cache, Suspend, Move, Verify 🚰 🧾 🚰 🧾

Compute Substrate Cache, Suspend, Move, Verify 🚰 🧾 🚰 🧾

Compute Substrate Cache, Suspend, Move, Verify 🚰 🧾 🚰 🧾

Compute Substrate Cache, Suspend, Move, Verify 🚰 🧾 🚰 🧾 🚰 🧾

Compute Substrate Determinism = Fully Verifiable Computation

Compute Substrate Determinism = Fully Verifiable Computation

Compute Substrate Determinism = Fully Verifiable Computation 🚰 🧾 🚰 🧾 🧾

Compute Substrate Determinism = Fully Verifiable Computation 🚰 🧾 🚰 🚰 🧾 🚰 🧾

Compute Substrate Determinism = Fully Verifiable Computation 🚰 🚰 βœ… 🧾 βœ… 🧾 ❌ 🧾 🚰 🚰

Compute Substrate Determinism = Fully Verifiable Computation 🚰 🚰 βœ… 🧾 βœ… 🧾 ❌ 🧾 🚰 🚰

Compute Substrate Surprise: Reverse Lookup For Free

Compute Substrate Surprise: Reverse Lookup For Free InID β†’ Computed Result

Compute Substrate Surprise: Reverse Lookup For Free InID β†’ Computed Result e.g. AI moderation classifier

Compute Substrate Surprise: Reverse Lookup For Free InID β†’ Computed Result e.g. AI moderation classifier e.g. Distributed token validation

Compute Substrate With a Little Help From My Friends

Compute Substrate Throughput With a Little Help From My Friends Parallelisation

Compute Substrate With a Little Help From My Friends Throughput Ideal (Linear) Parallelisation

Compute Substrate With a Little Help From My Friends Ideal (Linear) Throughput Amdahl’s Law Parallelisation

Compute Substrate With a Little Help From My Friends Ideal (Linear) Throughput Amdahl’s Law Universal Scaling Law Parallelisation

Compute Substrate With a Little Help From My Friends Ideal (Linear) Throughput Amdahl’s Law Incoherence, Data Contention Parallelisation Universal Scaling Law

Compute Substrate With a Little Help From My Friends Throughput Global Adaptive Optimisation πŸš€ Ideal (Linear) Amdahl’s Law Incoherence, Data Contention Parallelisation Universal Scaling Law

Compute Substrate With a Little Help From My Friends Throughput Global Adaptive Optimisation πŸš€ Ideal (Linear) Amdahl’s Law Incoherence, Data Contention Parallelisation Universal Scaling Law

The Safety Dance β€” Out of the Locality Tar Pit β€”

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, [and] completely isolate the developer from the possibility of failure β€” Goldstein et al, AMBROSIA: Providing Performant Virtual Resiliency for Distributed Applications

The Safety Dance πŸ•Ί Virtual Resiliency

The Safety Dance πŸ•Ί Virtual Resiliency Mutable πŸ¦‹ Idempotent πŸ”‚ Deterministic πŸ“…

The Safety Dance πŸ•Ί Virtual Resiliency Mutable πŸ¦‹ Idempotent πŸ”‚ Deterministic πŸ“… Query A Query B

The Safety Dance πŸ•Ί Virtual Resiliency Query A Query B Compute A Mutable πŸ¦‹ Idempotent πŸ”‚ Deterministic πŸ“…

The Safety Dance πŸ•Ί Virtual Resiliency Query A Query B Compute A Mutable πŸ¦‹ Query C Idempotent πŸ”‚ Deterministic πŸ“…

The Safety Dance πŸ•Ί Virtual Resiliency Query A Query B Compute A Mutable πŸ¦‹ Query C Idempotent πŸ”‚ Deterministic πŸ“… Compute B Query D

The Safety Dance πŸ•Ί Virtual Resiliency Query A Query B Compute A Mutable πŸ¦‹ Query C Idempotent πŸ”‚ Deterministic πŸ“… Compute B Query D Mutation

The Safety Dance πŸ•Ί Virtual Resiliency Mutation Query A Query B Compute A Mutable πŸ¦‹ 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 πŸ•Ί Simple Example Compute A Query πŸ¦Ίβœ” Compute B Mutation

Wrap Up

Wrap Up

Wrap Up Reusable/Remixable Specs

Wrap Up Reusable/Remixable Specs UCAN Core 🎟 Distributed Authority IPLD-WIT βš™ ABI Varsig ✍ Signature Multiformat

Wrap Up Reusable/Remixable Specs UCAN Pipeline 🌊 Call Graph, Awaits, etc UCAN Invocation πŸͺ„ Input Addressing, Execution, Memoization, etc UCAN Core 🎟 Distributed Authority IPLD-WIT βš™ ABI Varsig ✍ Signature Multiformat

Wrap Up Reusable/Remixable Specs 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

Wrap Up Reusable/Remixable Specs 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

Wrap Up Reusable/Remixable Specs IPVM Workflow πŸŽ› Transactions, Error Handling, Defaults IPVM Task βš™ VM Config, Verification, etc UCAN Pipeline 🌊 Call Graph, Awaits, etc UCAN-Chan / ユーキャンけゃん Consumable Channels UCAN Invocation πŸͺ„ Input Addressing, Execution, Memoization, etc UCAN Core 🎟 Distributed Authority IPLD-WIT βš™ ABI Varsig ✍ Signature Multiformat

github.com/ipvm-wg lu.ma/ipvm πŸŽ‰ Thank You, Boston πŸ‡ΊπŸ‡Έ brooklyn@fission.codes discord.gg/fissioncodes github.com/expede

github.com/ipvm-wg lu.ma/ipvm πŸŽ‰ Thank You, Boston πŸ‡ΊπŸ‡Έ brooklyn@fission.codes discord.gg/fissioncodes github.com/expede

github.com/ipvm-wg lu.ma/ipvm πŸŽ‰ Thank You, Boston πŸ‡ΊπŸ‡Έ brooklyn@fission.codes discord.gg/fissioncodes github.com/expede