Skip to content

Windows Development Setup

Thomas edited this page Apr 13, 2018 · 5 revisions

This guide is meant to give developers on Windows a starting point for Chainlink development.

Install Chocolatey

Chocolatey allows for simple package management on Windows (similar to apt and yum for Linux). In an elevated PowerShell prompt, run:

C:\> choco install -y mingw make git python2 curl nodejs golang yarn

After this point, Windows commands should be ran from a normal (non-administrative) PowerShell prompt.

Install and Configure Docker

Setting up Docker on Windows is out of scope for this guide. Docker requires Windows 10 Pro or Enterprise to install.

Setup Paths

C:\> mkdir $env:USERPROFILE\go\bin
C:\> [Environment]::SetEnvironmentVariable("GOPATH", "$env:USERPROFILE\go", "User")
C:\> [Environment]::SetEnvironmentVariable("PATH", "C:\tools\mingw64\bin;$env:ProgramFiles\Docker\Docker\Resources\bin;$env:USERPROFILE\go\bin;$env:APPDATA\npm;$env:Path", "User")

Close and re-open Powershell.

Install Truffle

C:\> npm install -g truffle

Install Dep

C:\> go get -u github.com/golang/dep/cmd/dep

Download Chainlink and enter the directory

C:\> go get -d github.com/smartcontractkit/chainlink
C:\> cd $env:GOPATH\src\github.com\smartcontractkit\chainlink

Install

C:\> dep ensure
C:\> go install

At this point, you can import a keystore file if you need.

Run the DevNet image (in a new window)

C:\> docker run -p 18545:8545 -p 18546:8546 smartcontract/devnet:latest

Deploy the contracts

C:\> cd solidity
C:\> yarn install
C:\> truffle migrate --network devnet

(Optional) Connect to the local Devnet blockchain

C:\> truffle console --network devnet

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

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

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

C:\> $LOG_LEVEL = "debug"
C:\> $ROOT = "$env:GOPATH\src\github.com\smartcontractkit\chainlink\internal\devnet"
C:\> $ETH_URL = "ws://localhost:18546"
C:\> $ETH_CHAIN_ID = 17
C:\> $TX_MIN_CONFIRMATIONS = 2
C:\> $USERNAME = "chainlink"
C:\> $PASSWORD = "twochains"
C:\> chainlink node -d -p "T.tLHkcmwePT/p,]sYuntjwHKAsrhm#4eRs4LuKHwvHejWYAC2JP4M8HimwgmbaZ"

You can now add JobSpecs (after setting the $USERNAME and $PASSWORD variables in the other window)

C:\> chainlink c internal/fixtures/web/hello_world_job.json

View JobSpecs

C:\> chainlink s $JOBID

Start JobRuns

C:\> chainlink r $JOBID