Skip to content

Development Setup Guide

Thomas edited this page Jun 27, 2018 · 43 revisions

The Complete Setup Guide for a Chainlink Development Environment

Install Go, Git, developer tools, Python (2.7), curl

Debian-based Linux (Ubuntu, Mint, etc.)

sudo apt install -y git build-essential python curl golang-go

Red Hat-based Linux (CentOS, Fedora, etc.)

sudo yum groupinstall -y 'C Development Tools and Libraries' 
sudo yum install -y git python curl golang-go

Mac OSX

brew install git curl golang

Windows-based environments can follow the instructions here.

After this point, instructions should be general for any *nix flavored operating system.

Install Node.JS

Install Yarn & Truffle with npm

sudo npm install -g truffle
sudo npm install -g yarn

Install Docker for Mac or Docker CE (follow instructions on site)

Linux: Add your $USER to the docker group
sudo gpasswd -a $USER docker
su $USER # Or log out and log back in

Ensure you have the latest Go

Setup paths
mkdir ~/go
export GOPATH=~/go
export PATH=$PATH:/usr/local/go/bin:~/go/bin
Optionally save these paths to your profile
echo "GOPATH=$GOPATH" >> ~/.bashrc
echo "PATH=$PATH" >> ~/.bashrc
source ~/.bashrc

Install Dep

go get -u github.com/golang/dep/cmd/dep

Download Chainlink and install dependencies

go get -d github.com/smartcontractkit/chainlink
cd $GOPATH/src/github.com/smartcontractkit/chainlink
make dep

Run the DevNet image (in a new window)

cd $GOPATH/src/github.com/smartcontractkit/chainlink
./internal/bin/devnet

Deploy the contracts

cd $GOPATH/src/github.com/smartcontractkit/chainlink
yarn install
cd solidity
truffle migrate --network development

(Optional) Connect to the local Devnet blockchain

truffle console --network development

You can use the Truffle Console to interact with the deployed contracts:

GetterSetter.deployed().then(con => con.getUint256())
GetterSetter.deployed().then(con => con.setUint256(45))
GetterSetter.deployed().then(con => con.getUint256())

Start the Chainlink node for development (in a new window)

cd $GOPATH/src/github.com/smartcontractkit/chainlink
./internal/bin/cldev

Now you can navigate to the interacting with the Chainlink node page.