Skip to content

Introduction

A program runtime is an operating system and software stack that enables your program to run on the aleph.im network.

Runtimes are customized Linux root filesystems that integrate with the aleph.im infrastructure and provide access to APIs, as well as quick responses to HTTP requests and other events.

The project provides official runtimes with all you need for most programs. Additionally, you can build and publish custom runtimes, and use any available runtime on the network for your program.

Existing Runtimes

Official runtime with Debian 11, Python 3.9 and NodeJS 14

Aleph.im provides users with a default runtime based on Debian 11 "bullseye", the current stable version of the Debian project which can be found on the Explorer. This runtime is built with software available in the distribution, including Python 3.9 and Nodejs 14.

To optimize performance, this runtime uses a custom Linux init process. This process is specially designed to quickly launch the right endpoint in response to events such as HTTP requests. This is especially useful when using on-demand execution.

Third-party runtimes

Use third-party runtimes available on the network by specifying their item_hash when creating your program.

Init process

On-demand Execution relies on a custom Linux init process, optimized to launch the right endpoint in response to events such as HTTP requests. This custom init consists in two simple programs, init0.sh and init1.py.

Use these in your custom runtime by copying them to /rootfs/sbin/init and /mnt/rootfs/root/init1.py respectively.

Persistent Execution may use the same init process, but this is not required. If you do not make use of the capabilities provided by the aleph.im ecosystem, using the default of your distribution (ex: systemd, OpenRC, ...) should work as well.