AO Quick Start: Introduction to Supercomputers
AO is a "hyper-parallel computer." Its core goal is to provide trustless collaborative computing services with no practical limits on scale. It combines the trust-minimized advantages of blockchain networks with the speed and scalability of more traditional computing environments like Amazon EC2. But how does all this work? Let’s delve into the complexities of AO.
What are the key features of AO?
In the realm of decentralized computing, several key features help distinguish AO:
- Parallel Processing: Supports any number of processes running in parallel, independently of each other. These processes can operate and evaluate separately, creating scalability mechanisms similar to web2 systems.
- Infinite Computing: Processes are not limited by any protocol-imposed restrictions on the amount of information they can compute, provided that the caller can bear the associated computational costs.
- Read/Write to Arweave: Processes can load and write data from Arweave, expanding the types of decentralized applications that can be built with AO (e.g., machine learning tasks).
- Autonomous Processes: Processes can automatically execute computations at set intervals. Users and other processes can "subscribe" to a process to trigger computations. This feature allows processes to operate as autonomous agents.
- Modular Architecture: A flexible computing environment provides the interchange of schedulers, messaging layers, virtual machines, etc. This flexibility allows existing smart contract systems (like Warp, MEM, etc.) to easily connect to AO and interact with a unified network, creating a more coherent experience.
How does AO differ from traditional computing environments?
- Built on Arweave: AO leverages the characteristics of Arweave, eliminating vulnerabilities associated with centralized providers, such as single points of failure, data leaks, and censorship. Computation on AO is transparent and can be verified through decentralized trust-minimized features and reproducible message logs stored on Arweave.
- Decentralized Foundation: This foundation helps overcome scalability limitations imposed by physical infrastructure. Most importantly, anyone can easily create an AO process from their terminal or with just a few lines of JavaScript code, without specialized knowledge, tools, or infrastructure. This ensures that even individuals and small entities can have global reach and participation.
How does AO improve other decentralized computing networks?
- Parallel Processing Capability: Unlike networks like Ethereum, where the base layer and each rollup effectively run as a single process, AO supports any number of processes running in parallel while ensuring the integrity of verifiable computation. Additionally, these networks operate in a globally synchronized state, whereas AO processes maintain their independent states. This independence allows AO processes to handle a higher number of interactions and computational scalability, making it particularly suitable for applications that demand high performance and reliability.
- Verifiable Reproducibility: While some decentralized networks, such as Akash and peer-to-peer systems like Urbit, do provide large-scale computing capabilities, they do not offer the verifiable reproducibility of interactions that AO does, or they rely on non-permanent storage solutions to retain their interaction logs.
How does AO become a hyper-parallel computer?
AO operates through a network of nodes that collectively create a unified computing environment capable of parallelly hosting an infinite number of processes. These processes function similarly to independent servers, each with its own logic, hosted on a decentralized network. Furthermore, these processes maintain a "holographic" state. This allows them to work independently, unlocking scalability for the network and achieving what is known as "hyper-parallel computing."
What does "holographic state" mean in AO?
"Holographic state" refers to how each process independently stores its state, unrelated to other processes. This approach allows each process to operate and evaluate separately. It facilitates faster interactions within the network and improves scalability. The state is "holographically" implied through relevant message logs hosted on Arweave (related to interactions with the process).
Key components of the AO architecture include:
- Processes: In AO, a process is a set of instructions that can be executed by the network. Each AO process is persistent and has a holographic state represented by a message log uploaded to Arweave.
- Messages: Each interaction with a process is represented by a message. Messages conform to the ANS-104 data item standard. They can come from users within the network or other processes.
- Scheduling Units (SUs): The task of SUs is to number messages for systematic processing. Additionally, they ensure that messages and their data are uploaded to Arweave.
- Computing Units (CUs): The task of CUs is to determine the state of processes and handle message requests. However, CUs are not obligated to compute every message; if they lack the necessary resources, they can refuse computation. Existing CUs (as of the writing of this document) use a WASM-based virtual machine environment, supporting up to 4 GB of RAM.
- Messaging Units (MUs): MUs are responsible for the circulation of messages. Their job is to push messages through the system, ensuring they are sorted by SUs and then coordinated with CUs for computation. MUs continuously monitor for new messages and repeat this process as needed.
How does parallel processing work in AO?
In AO, multiple processes can operate in parallel, sharing available computing resources. When other processes are idle, resources are reallocated to active processes. This reallocation helps maximize the utilization of available resources, speeding up processing times and making the system more efficient and scalable.
How are messages processed in AO?
Every interaction within the network occurs in the form of messages. Each message goes through the following process:
- A user or another process sends a request to a process in the form of a message. The message is received by a Messaging Unit (MU) and forwarded to a Scheduling Unit (SU).
- The Scheduling Unit (SU) assigns an atomically incremented slot number to the message and ensures that the message is uploaded to Arweave. The SU may also choose to cache the message.
- The Messaging Unit (MU) then sends a request to the Computing Unit (CU) to compute the message result.
- The Computing Unit (CU) then retrieves the requested message from the Scheduling Unit (SU) or directly from Arweave and computes its result.
- The computation result is sent back to the Messaging Unit (MU), which checks if the message needs to be pushed (if the result requires further processing).
- If the result does not require further processing, the Messaging Unit (MU) sends the result back to the original creator of the message (user or process).
How do AO processes operate as autonomous agents?
Based on predefined logic, AO processes can interact with the Arweave network with minimal or even no continuous user intervention. Combined with their other features, AO processes can act as autonomous agents in a verifiable manner. This opens up numerous potential applications, from participating in tokenized games to acting as AO chatbots. Additionally, AO introduces a cron-like system that allows processes to execute tasks at scheduled intervals. Whether providing timely alerts, updating token prices, or facilitating automated trading and arbitrage based on these updates, the capability of AO processes to act as autonomous agents is extensive.
How to get started with AO?
✅ For Developers
Developers have two ways to interact with AO:
- AOS: Developers can use AOS to generate their processes within their terminals. AOS is different from AO. AO is a computing environment, while AOS functions like an operating system. It currently supports programming in Lua. Check out these documents to generate processes using AOS.
- aoconnect: For developers more accustomed to JavaScript, the aoconnect SDK provides a way to generate and interact with processes in node and browser environments. Visit here to learn more about AO connect.
✅ For End Users
End users can choose from various applications:
- Astro: An over-collateralized stablecoin that adds liquidity to Arweave. To explore Astro, visit here.
- Bark: A decentralized AMM exchange supported by a token liquidity pool. To discover Bark and its features, click here.
- AO Effect: An arena-style game that allows interaction with friends globally. To start playing AOEffect, visit here.
What’s next for AO?
Looking ahead, AO is preparing to launch enhanced features at the protocol layer, which will include options for payment channels, tokenization, and staking mechanisms. In addition, the vision for application development is broad, with potential expansions into temporary file storage solutions, marketplaces, games, and even artificial intelligence.