Need help with akash?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

ovrclk
483 Stars 89 Forks Apache License 2.0 761 Commits 91 Opened issues

Description

a secure, transparent, and peer-to-peer cloud computing network

Services available

!
?

Need anything else?

Contributors list

Akash - Decentralized Serverless Network

tests simulations codecov

Go Report Card License

Akash

Akash is a secure, transparent, and decentralized cloud computing marketplace that connects those who need computing resources (tenants) with those that have computing capacity to lease (providers).

For a high-level overview of the Akash protocol and network economics, check out the whitepapers; a detailed protocol definition can be found in the design documentation; and the target workload definition spec is here.

Branching and Versioning

The

master
branch contains new features and is under active development; the
mainnet/main
branch contains the current, stable release.
  • stable releases will have even minor numbers (
    v0.8.0
    ) and be cut from the
    mainnet/main
    branch.
  • unstable releases will have odd minor numbers (
    v0.9.0
    ) and be cut from the
    master
    branch.

Akash Suite

Akash Suite is the reference implementation of the Akash Protocol. Akash is an actively-developed prototype currently focused on the distributed marketplace functionality.

The Suite is composed of one binary,

akash
, which contains a (tendermint-powered) blockchain node that implements the decentralized exchange as well as client functionality to access the exchange and network data in general.

Get Started with Akash

The easiest way to get started with Akash is by following the Quick Start Guide to get started.

Join the Community

Official blog and documentation

Supported platforms

Platform

Arch Status
Darwin amd64 Supported
Darwin arm64 Supported
Linux amd64 Supported
Linux arm64 (aka aarch64) Supported
Linux armhf GOARM=5,6,7 ⚠️ Not supported
Windows amd64 ⚠️ Experimental

Installing

The latest binary release can be installed with Homebrew:

$ brew tap ovrclk/tap
$ brew install akash

Or GoDownloader:

$ curl -sSfL https://raw.githubusercontent.com/ovrclk/akash/master/godownloader.sh | sh

Or install a specific version with GoDownloader

$ curl -sSfL https://raw.githubusercontent.com/ovrclk/akash/master/godownloader.sh | sh -s -- v0.7.8

Roadmap and contributing

Akash is written in Golang and is Apache 2.0 licensed - contributions are welcomed whether that means providing feedback, testing existing and new feature or hacking on the source.

To become a contributor, please see the guide on contributing

Development environment

Akash is developed and tested with golang 1.16.0+. Building requires a working golang installation, a properly set

GOPATH
, and
$GOPATH/bin
present in
$PATH
. It is also required to have C/C++ compiler installed (gcc/clang) as there are C dependencies in use (libusb/libhid) Akash build process and examples are heavily tied to Makefile.

Akash also uses direnv to setup and seamlessly update environment. List of variables exported in root dir are listed in .env It sets local dir

.cache
to hold all temporary files and tools (except kind which installed ) required for development purposes. It is possible to set custom path to
.cache
with
AKASH_DEVCACHE
environment variable. All tools are referred as
makefile targets
and set as dependencies thus installed (to
.cache/bin
) only upon necessity. For example
protoc
installed only when
proto-gen
target called.

Building from Source

Command below will compile akash executable and put it into

.cache/bin
shell
make akash # akash is set as default target thus `make` is equal to `make akash`
once binary compiled it exempts system-wide installed akash within akash repo

Running

We use thin integration testing environments to simplify the development and testing process. We currently have three environments:

  • Single node: simple (no workloads) single node running locally.
  • Single node with workloads: single node and provider running locally, running workloads within a virtual machine.
  • full k8s: same as above but with node and provider running inside Kubernetes.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.