Giter Site home page Giter Site logo

envoy-vc / ao Goto Github PK

View Code? Open in Web Editor NEW

This project forked from permaweb/ao

0.0 1.0 0.0 276.31 MB

The ao component and tools Monorepo - ๐Ÿฐ ๐Ÿ•ณ๏ธ ๐Ÿ‘ˆ

Home Page: https://cookbook_ao.arweave.dev

License: Other

Shell 0.30% JavaScript 70.38% Python 1.19% C 0.37% Lua 17.24% Rust 9.71% CSS 0.01% HTML 0.09% PLpgSQL 0.10% Dockerfile 0.44% Svelte 0.17%

ao's Introduction

logo

ao - Hyper. Parallel. Compute.

What is ao?

The ao computer is the actor oriented machine that emerges from the network of nodes that adhere to its core data protocol, running on the Arweave network. This document gives a brief introduction to the protocol and its functionality, as well as its technical details, such that builders can create new implementations and services that integrate with it.

The ao computer is a single, unified computing environment (a Single System Image), hosted on a heterogenous set of nodes in a distributed network. ao is designed to offer an environment in which an arbitrary number of paralell processes can be resident, coordinating through an open message passing layer. This message passing standard connects the machine's indepedently operating processes together into a 'web' -- in the same way that websites operate on independent servers but are conjoined into a cohesive, unified experience via hyperlinks.

Unlike existing decentralized compute systems, ao is capable of supporting the operation of computation without protocol-enforced limitations on size and form, while also maintaining the verifiability (and thus, trust minimization) of the network itself. Further, ao's distributed and modular architecture allows existing smart contract platforms to easily 'plug in' to the network, acting as a single process which can send and recieve messages from any other process.

Instead of enforcing one set of choices upon all users of the computing environment, ao is built in a modular form: Allowing users to choose which virtual machines, sequencing decentralization trade-offs, message passing security guarantees, and payment options work best for them. This modular environment is then unified by the eventual settlement of all messages -- each sharing the same format -- onto Arweave's decentralized data layer. This modularity creates a unified computing environment suiting an extremely wide set of workloads, in which every process can easily transfer messages and cooperate.

ao's core objective is to enable trustless and cooperating compute services without any practical bounds on scale. This allows for a radically new design space of applications that were not previously possible: Blending the benefits of smart contract applications (services without requiring trust in anything but code), and traditional compute environments (Amazon EC2, etc).

Due to its scalability, the natural way for developers to use ao is to spawn their own command-line (aos) process inside the network, and to start issuing commands. This DevX is similar to how developers create a new server instance at a cloud host and connect to it via SSH, except that this command line process has the properties of a smart contracts. Their commandline process on ao doesn't live in any specific data center or at any one physical location, and its computation is completely trustless. Every user can message and interact with every other process and program. The result of this is a global 'Single System Image': A unified computer -- spread around the world, operating at any scale -- shared between all users.

From the end-user or developer's perspective, the essence of ao is simple: ao is a shared computer that they can run any number of processes inside. These processes are not hosted on any specific servers, or under the control of any one individual or group. Instead, once launched these processes can be cryptographically entrusted to render their services in a provably neutral manner, permanently. This enables them to guarantee rights to their users over time.

For more information about ao - check out our spec - https://ao.arweave.dev - and cookbook - https://cookbook_ao.arweave.dev

Projects

  • ao CLI: The ao Command Line Interface that can be installed on the command line and used to initialize, build, run, and publish ao Lua -> WASM Contracts
  • ao JS Loader: The ao JavaScript Loader that enabled invoking an ao Contract, built into WASM, from a JavaScript context.
  • ao Connect: The ao JavaScript library that provides an abstraction for spawning, evaluating, and interacting with ao Processes on node or in the browser.
  • ao Compute Unit (cu): An implementation of the ao Compute Unit, aka a cu (pronounced "koo" ๐Ÿฆ˜)
  • ao Messenger Unit (mu): An implementation of the ao Messaenger Unit, aka a mu (pronounced "moo" ๐Ÿ„)
  • ao Scheduler Unit (su): An implementation of the ao Scheduler Unit, aka a su (pronounced "soo" ๐Ÿ‘ง)
  • ao Unit Router (ur): A Simple Reverse Proxy whose API can mirror an underlying set of ao Unit Hosts (mus or cus) (pronounced "youwer" ๐Ÿ”€)
  • ao Lua Examples: Various examples of projects leveraging ao Contracts and components.

Contributing

SEE CONTRIBUTING

License

The ao and aos codebases are offered under the BSL 1.1 license for the duration of the testnet period. After the testnet phase is over, the code will be made available under either a new evolutionary forking license, or a traditional OSS license (GPLv3/v2, MIT, etc).

ao's People

Contributors

tillathehun0 avatar vincejuliano avatar twilson63 avatar jshaw-ar avatar hlolli avatar michaelbuhler avatar samcamwilliams avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.