J Chris Anderson
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
2
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
# Data Anywhere and the Serverless Bazaar "The network is eating the cloud." — This statement is not true yet, but it will be. Paradigm shifts in computing come when the new ways make the old abstractions seem like a waste of developer attention. The rollout of a new paradigm is measured in the half life of technical debt. Serverless was how the cloud won over the previous hardware-first paradigm. The What does it mean for the network to eat the cloud? When we say [software is eating the world](https://a16z.com/2011/08/20/why-software-is-eating-the-world/) we mean every business is turning into a software business. As the network eats the cloud, the attention developers put into cloud templates and deployment cycles will move to another abstraction, where applications are built in terms of data and compute, not microservices and VPNs. One of the key drivers of epochal shifts in computing is the [commoditization of complements](https://www.gwern.net/Complement). By making complementary products and services more affordable and accessible, companies can tap into new markets and drive growth. For example, the commoditization of complementary products and services such as storage, networking, and software has helped fuel the growth of the cloud computing market. As the network commoditizes the cloud, it will do so by offering new abstractions that might be as hard to imagine today, as mature serverless was at the dawn of EC2. Commodity servers brought us the cloud. The mature cloud offers serverless interfaces. The first generation of serverless interfaces run in the cathedral, in the walled gardens of cloud service providers. But as serverless APIs mature they lay the groundwork for the next level of commoditization, from the server to the cloud. Commodity cloud accessed via cryptographically verifiabiable invocations (in the style of UCAN) will bring us to a post-cloud model that is driven by the concepts of data anywhere and usher in the serverless bazaar. As hard as serverless was to imagine in the pre-devops days of the original cloud, that is how hard we should expect it to be to imagine what a mature data anywhere world looks like. The protocols supporting this network of function execution engines and data storage providers are becoming an important locus of innovation, while at the same time the obvious choice for certain business use cases, because these abstractions mean lower operational burden. As protocols like IPFS and web auth mature, they are getting cheaper, easier, faster, and more reliable. At some time they will cross a threshold where they become the logical choice for application developers. I think that threshold is now -- platform reach has hit a critical mass with IPFS in browsers, Filecoin storage capacity, and an expanding list of protocol implementations and users. Ecosystem players are moving up the stack, coordinating around application protocols like UCAN. This is the beginning of a golden era, and it is a great time to get involved as an app dev. What does this golden era look like? Data anywhere means code doesn't reflect where the data or application is hosted, it just asks for the data, and the fastest or cheapest provider wins. This gives tremendous fleixbility when it comes to migrating workloads, building remix apps, or collaborating with data scientists. In the IPFS world, data anywhere is primarily a consequence of the way CIDs (hash-based content identifiers) reverberate into application code. In this environment, the provider of the compute may not be the provider of the database, and the provider of the database likely doesn't manage the user's keyring. The provider of the storage wont' be the provider of the messaging. This encourages specialized service providers to emerge, who can compete by offering cost-effective, innovative solutions to a wide range of problems. This all depends on verifiable services enabled by cryptographic proofs. This world of trustless UCAN invocations has the power to move computation from the cathedrals of large cloud providers, to the serverless bazaar, where anyone can add functions to the network, and anyone can call them. This world has appeal not just because of it's flexiblity, but because networks win over clouds for operational reasons. Imagine cost-competitive alternatives to S3 or Lambda, but with the unstoppable characteristics of global distributed blockchains etc. Managing uptime is a lot easier when your data centers are run by a worldwide network of independent providers, and your workloads are written to take advantage of data anywhere and verifiable compute. Protocols like these will be the preferred launchpad of the next generation of viral apps, precisely because they are "already scaled" and don't require deep infrastructure knowledge to leverage. This shift, away from heavily attended one-off implementations, to self-running network protocols, is part of a broader trend that has been going on for a long time. The shift from mainframes to workstations to personal computing and then the web is well known. The shift from the cloud to the nework is similar. When systems don't have a central administrator their operational burden is commoditized, so these applications are even simpler to maintain and administer than the serverless applications that came before them. Just as the cloud removed the burden of the datacenter, these protocols remove the burden of the cloud. As protocols start to offer competitive features, price, and performance, it will start to seem an unwieldy distraction to pamper centralized cloud templates, function runtimes, and container clusters. As universal run time protocols like WASM mature, why would you choose architectures that depend on running in a particular cloud? Data anywhere and the serverless bazaar --- This is the beginning of a new era of computing, where verifiable data and verifiable compute become ubiquitous, and a wide range of innovative service providers emerge to offer low-cost, high-performance solutions to their customers. In this world, there are no centralized data stores, no centralized compute engines, no centralized key management services, identity providers, storage. No centralized anything. This is a world where the cloud doesn't exist, because it's not necessary. This is a world of data and compute, accessed in a location independent manner. This is a world of decentralized data and decentralized compute, accessed in a decentralized manner. This is a world where applications move from the cathedral of cloud providers to the bazaar of innovative verifiable service providers. In this world, there is no such thing as "the cloud". There is only a network of invocations, proofs, and verifiable reciepts. This environment offers social media and web builders flexible business models that can blend user-paid and app-paid services. As verifiable data and compute become mainstream, applications can move from the cathedral of cloud providers to the bazaar of innovative verifiable service providers. These applications written in terms of data and compute, which is accessed in a location independent-manner. With a small extension to our programming paradigm to allow for more flexible addressing, the cloud dissolves into a network of invocations, proofs, and verifiable reciepts. Any technology that relies primarily on a location-based paradigm is on the chopping block. Centralized data silos and access control mechanisms smell the ripest, as they bake non-functional implementation, maintenance, operations, and user experience costs into their architecture. The history of computing is full of examples of new technologies that made location-based approaches obsolete, such as: * the PC and LAN (vs. mainframe and dumb terminal) * the Internet (vs. closed network) * the web (vs. walled gardens) * the mobile (vs. desktop) We are in the midst of a similar technology shift. Serverless is built on the principle that service provisioning, monitoring, maintenance, and operations can be managed separately from the application codem, allowing developers to focus their attention on application code and business goals. The habit of using serverless APIs opens the door for portable code that runs in a location independent manner. CIDs and UCANs (a self-sovereign authorization standard) allow for another layer of abstraction, where code can have logical service dependencies without depending on who runs those services. When systems don't have a central administrator their operational burden is commoditized, so these applications are even simpler to maintain and adminster than the serverless applications that came before them. Just as the cloud removed the burden of the datacenter, these protocols remove the burden of the cloud. As protocols start to offer competitive features, price, and performance, pampering centralized cloud templates, function runtimes, and container clusters will start to seem an unwieldy distraction. This shift, away from heavily attended one-off implementations, to self-running network protocols, is part of a broader trend that has been going on for a long time. The shift from mainframes to workstations to personal computing and then the web is well known. As universal run time protocols like WASM mature, why would you choose architectures that depend on running in a particular cloud? # Part 2 One of the key drivers of epochal shifts in computing is the [commoditization of complements](https://www.gwern.net/Complement). By making complementary products and services more affordable and accessible, companies can tap into new markets and drive growth. For example, the commoditization of complementary products and services such as storage, networking, and software has helped fuel the growth of the cloud computing market. Commodity servers brought us the cloud. The mature cloud offers serverless interfaces. The first generation of serverless interfaces run in the cathedral, in the walled gardens of cloud service provider. But as serverless APIs mature, they become more similar, enabling a free for all as maybe players join the bazaar of serverless operators. This enables the next level of commoditization, from the server to the data center. Commodity data centers accessed via cryptographically verifiabiable invocations (in the style of UCAN) will bring us to a post-cloud model that is driven by the concept of data anywhere. We are only at the very beginning of this model, but we can do our best to see where it is going. As hard as serverless was to imagine in the pre-devops days of the original cloud, that is how hard we should expect it to be to imagine what a mature data anywhere world looks like. (Luckily, yours truly wrote one of the very first serverless implementation, without knowing that's what it was. So maybe there is hope to stumble onto the right course.) Let's try to imagine this world. What would be the performance implications of a data anywhere world? If data is always stored on a local device, and data processing is done on that same device, then the data is only as fast as the device. If data is stored on a central server, then it is only as fast as the server. If data is stored on a distributed set of devices, and data processing is done on a set of devices that are close to the data, then the data is as fast as the fastest nearby device. This would be more secure, because it would be more difficult to hack all of the devices in the system. It would also be more reliable, because if one device failed, the others could still access the data. How would the relationship between applications and users change in a data anywhere world? The application would be made of of invocations, proofs, and verifiable reciepts, all of which could be authored and managed by different services. The user could own the accounts that data resides in, granting access for applications to provide adittional value. To read one way to do this today, [check out our blog on UCAN delegation.](https://blog.web3.storage/posts/ucan-delegation-with-w3up) So how to do we get from here to there? 1. Address data and compute in a location-independent manner. 2. Commoditize the operational burden of data and compute. 3. Secure data and compute in a location-independent manner. 4. Make distributed data and compute easier to use. The first two points are handled by the foundation on which web3.storage is built: IPFS and Filecoin. Points three and four are the focus of our current work. Our work with teams like Fission and BlueSky on the UCAN protocol ... Our application component library, w3ui, puts developer experience first.... Mention socket supply.... ## Technologies used in the prototype The prototype is built using a combination of existing technologies and experiments. It's based on the following open standards and protocols: * [OpenID Connect](https://openid.net/specs/openid-connect-core-1_0.html) for identity provider implementation * [Delegated Authorization](https://tools.ietf.org/html/draft-ietf-oauth-dyn-reg-24) for client registration protocol * [JSON Web Token (JWT)](https://tools.ietf.org/html/rfc7519) for identity, delegation, and claims * [JSON Web Signature (JWS)](https://tools.ietf.org/html/rfc7515) for cryptographic signatures * [JSON Web Key (JWK)](https://tools.ietf.org/html/rfc7517) for key management and exchange * [JSON Web Encryption (JWE)](https://tools.ietf.org/html/rfc7516) for encryption and decryption * [Key Management Interoperability Protocol (KMIP)](https://www.oasis-open.org/committees/ Outline: * I. Introduction * A. “The network is eating the cloud” * B. Paradigm shifts in computing * C. Commoditization of complements * II. What Does It Mean for the Network to Eat the Cloud? * A. Every business is turning into a software business * B. Applications built in terms of data and compute, not microservices and VPNs * III. Commoditization of the Cloud * A. New abstractions that are hard to imagine today * B. Commodity cloud accessed via cryptographically verifiable invocations (UCAN) * IV. Data Anywhere and the Serverless Bazaar * A. Flexibility and lower operational burden * B. Protocols like IPFS, web auth, UCAN, WASM, etc. becoming cheaper, easier, faster, more reliable * C. Social media and web builders flexible business models * D. Decentralized data and compute accessed in a decentralized manner * E. No centralized anything * V. Technology Shift from Location-Based Paradigms * A. PC/LAN vs mainframe/dumb terminal * B. Internet vs closed network * C Web vs walled gardens * D Mobile vs desktop * VI Serverless APIs Open Door for Portable Code * A Serverless applications simpler to maintain and administer than before * B Cloud removed burden of datacenter; protocols remove burden of cloud * C Protocols start to offer competitive features, price, performance * D Shift away from one-off implementations to self-running network protocols * VII Performance Implications of Data Anywhere World * A Data as fast as local device or server depending on where stored * B More secure & reliable if stored on distributed set of devices * VIII Relationship Between Applications & Users Change * A Invocations, proofs & verifiable reciepts authored & managed by different services * B User owns accounts that data resides in granting access for applications to provide value * IX How Do We Get From Here To There? * A Address data & compute in location-independent manner * B Commoditize operational burden of data & compute * C Secure data & compute in location-independent manner * D Make distributed data & compute easier to use * X Conclusion * 1. Web3.storage is built on two powerful foundations: IPFS and Filecoin. * 2. We're currently focusing on points three and four, working with teams like Fission and BlueSky on the UCAN protocol. * 3. We also have an application component library, w3ui, that puts developer experience first. * 4. And don't forget about socket supply! It's an important part of the web3.storage ecosystem. * 5. Together, these components create a powerful platform for developers to build on top of web3.storage. 6. With web3.storage, developers can create secure, decentralized applications quickly and easily!

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully