Installing Mediachain
Mediachain is comprised of two main software projects, concat and aleph.
If we were to split them along the popular “porcelain” / “plumbing” axis, aleph would be
the porcelain to concat’s plumbing. The storage, indexing and query of metadata is all
handled by concat’s mcnode
program, and the concat project also includes the reference
directory server implementation mcdir
.
Controlling a running mcnode
is done by issuing HTTP requests to an embedded server that
listens on the localhost
interface. While it’s possible to control mcnode
directly with curl
or a similar tool, aleph’s mcclient
tool is much friendlier and better suited to the job.
The aleph project also includes an interactive REPL for querying a local or remote mcnode
,
which provides a flexible javascript environment for exploring the mediachain network.
Which you should install depends on your goals. If you want to control a node that you’ve deployed to the cloud, all you need to do is install aleph.
If you want to run a node on your local machine, you should install concat, then install aleph.
Be sure to check out the Getting Started Guide after installation to learn how to use mediachain to query, publish and share data with the network!
Installing concat
Concat’s mcnode
program is the main mediachain node application, responsible for data storage,
transmission, and query. It can be easily installed to the cloud with one click, but
if you prefer to run it on your own hardware, the installation is straightforward.
In most cases, a binary release will be the simplest way to get up and running. Find the mcnode
package for your platform from the latest GitHub release page.
Linux packages will end with -linux-amd64.tgz
, and macOS packages will end with -darwin-amd64.tgz
.
On Windows, we currently recommend installing the linux binaries under the Windows Subsystem for Linux. The concat README has setup instructions.
To get the latest pre-release code, or if you want to run mcnode
on a platform without a binary
release (FreeBSD, Linux on ARM, etc), follow the instructions from concat’s README for
installing from source.
Installing aleph
Dependencies
The aleph
project is written in javascript on the Node.js platform, and it requires node version
6 or greater.
Linux
Linux users will need to have a modern c++ compiler installed to build the native dependencies. You’ll also need the development headers for openssl for the crypto libraries. On Ubuntu and other debian-based distros, you should be able to do:
$ sudo apt-get install build-essential g++ libssl-dev
macOS
Users on macOS will need the Xcode command line tools installed. This can be done from within Xcode (under Preferences -> Downloads), or as a standalone package.
Windows
We’re working on “real” Windows support, but for now we recommend using the Windows Subsystem for Linux, which creates a minimal Ubuntu system that runs under Windows 10 without virtualization. This supports native linux binaries, and will allow you to install the Linux versions of node.js, git, and other aleph dependencies.
To install aleph’s dependencies on the Windows Subsystem for Linux:
- Enable the WSL
- Open a command prompt or PowerShell, then run
bash
. This may take a few minutes to prepare the linux root filesystem.
The following steps should be done from within bash:
- Prepare the system to install node.js:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
- Install dependencies:
sudo apt-get install build-essential g++ libssl-dev git nodejs
Now you should be able to install aleph within bash with the instructions below.
Installation
The simplest way to get started is to globally install the latest release from npm:
$ npm install -g aleph
Depending on how node is installed on your system, you may need to run the above command with sudo
or as a user with administrator privileges. For other install methods, see
the aleph README.
Aleph provides an mcclient
program for controlling a concat node, and an aleph
command for
running a lightweight javascript node. In the instructions below, we’ll discuss using mcclient
to
control a concat node. More information about the aleph
command is available in
the aleph README.
Configure mcclient
By default mcclient
is configured to talk to mcnode
at http://localhost:9002
, which is the
default address for the mcnode
control API server. If mcnode
is running on your local machine
(see above for instructions), you shouldn’t need to configure anything.
If you’re controlling a node you’ve deployed to the cloud or installed yourself on a remote machine, you need to first set up a secure “tunnel”, that will forward traffic from your local machine to the remote server. See the SSH tunnel instructions for more information on setting up the tunnel. Once it’s running, you’ll be able to control your remote node as if it were running on your local machine.
Usage
See the Getting Started Guide to learn how to take your node online, run queries, publish data, and more.