Blockchain-powered decentralized compute platform
Clone or download
Latest commit c322386 Nov 9, 2018
Permalink
Failed to load latest commit information.
.buildkite golang: v1.11 Nov 6, 2018
.github codeowners: remove @nalesandro Nov 9, 2018
_build dependency bump: tendermint, k8s Nov 6, 2018
_docs dependency bump: tendermint, k8s Nov 6, 2018
_integration dependency bump: tendermint, k8s Nov 6, 2018
_run dependency bump: tendermint, k8s Nov 6, 2018
app dependency bump: tendermint, k8s Nov 6, 2018
cmd akashd: log at info level Nov 9, 2018
denom pricing: allow micro suffixes, scientific notation Jul 31, 2018
grpc provider: log streaming Jul 5, 2018
keys cleanup: move id methods to types package Jun 1, 2018
manifest dependency bump: tendermint, k8s Nov 6, 2018
marketplace dependency bump: tendermint, k8s Nov 6, 2018
node dependency bump: tendermint, k8s Nov 6, 2018
pkg dependency bump: tendermint, k8s Nov 6, 2018
provider dependency bump: tendermint, k8s Nov 6, 2018
query update deployment tx Jul 30, 2018
sdl pricing: allow micro suffixes, scientific notation Jul 31, 2018
state dependency bump: tendermint, k8s Nov 6, 2018
testutil dependency bump: tendermint, k8s Nov 6, 2018
txutil dependency bump: tendermint, k8s Nov 6, 2018
types akash provider: multipl fixes Aug 2, 2018
util dependency bump: tendermint, k8s Nov 6, 2018
validation sdl: lookup pricing by compute profile name Jul 31, 2018
version expose akash version Jul 27, 2018
.codecov.yml ci: use buildkite Jun 29, 2018
.dockerignore photon -> akash Mar 13, 2018
.gitignore cluster deployments: cancel, update Jun 6, 2018
.golangci.yaml format cleanup: gofmt, golang-ci Jun 19, 2018
.goreleaser.yml release: add windows (#358) Aug 21, 2018
.travis.yml golang: v1.11 Nov 6, 2018
LICENSE update license Jul 20, 2018
Makefile provider status: internal metrics Aug 1, 2018
README.md golang: v1.11 Nov 6, 2018
glide.lock dependency bump: tendermint, k8s Nov 6, 2018
glide.yaml dependency bump: tendermint, k8s Nov 6, 2018
godownloader.sh Add godownloader Jul 18, 2018

README.md

Akash Build status Coverage Go Report Card

Overview

Akash is a cloud infrastructure platform whose resources are provided by independent datacenters. A high-level overview of the Akash Protocol can be found here; a detailed protocol definition can be found here; and the target workload definition spec is here.

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

The Akash Suite is composed of two applications: akash and akashd. akashd is the (tendermint-powered) blockchain node that implements the decentralized exchange; akash is the client used to access the exchange and network in general.

Installing

The latest binary release can be installed with Homebrew:

$ brew tap ovrclk/tap
$ brew install akash

Or GoDownloader:

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

Building

Dependencies

Akash is developed and tested with golang 1.10+. Building requires a working golang installation, a properly set GOPATH, and $GOPATH/bin present in $PATH.

Additional requirements are:

  • glide: Golang library management.

For development environments, requirements include:

Most golang libraries will be packaged in the local vendor/ directory via glide, however the following packages will be installed globally with their binaries placed in $GOPATH/bin by make devdeps-install:

See below for dependency installation instructions for various platforms.

MacOS:

brew install glide

# dev environment only:
brew install protobuf

Arch Linux:

curl https://glide.sh/get | sh

# dev environment only:
sudo pacman -Sy protobuf

Akash Suite

Download and build akash and akashd:

go get -d github.com/ovrclk/akash
cd $GOPATH/src/github.com/ovrclk/akash
make deps-install
make

# dev environment only:
make devdeps-install

Running

We use thin integration testing environments to simplify the development and testing process. We currently have two 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.
  • Multi node: multiple nodes and providers running in a virtual machine.