Skip to content

engprodigy/godcr

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

godcr

Overview

godcr is a decred wallet application for Desktop Operating Systems (Linux, macOS, Windows etc). dcrlibwallet, a standalone decred wallet library, is used for all wallet access and control functionality. godcr can also interface with dcrwallet over gRPC as an alternative to dcrlibwallet.

Requirements

You can run godcr without installing any other software.

However, to use dcrwallet instead of dcrlibwallet for wallet operations, you'll need a running dcrwallet daemon. Follow the steps below to download, setup and run dcrwallet:

  • Download the decred release binaries for your operating system from here. Check under Assets.
  • By default, dcrwallet uses dcrd to connect to the Decred network. The decred archive downloaded from the release page contains both binaries.
  • After downloading and extracting dcrd and dcrwallet, go here to learn how to setup and run both binaries.

Installation

Option 1: Get the binary

godcr is not released yet. This doc will be updated with links to download the godcr binary when a release is ready. For now, build from source.

Option 2: Build from source

Step 1. Install Go

  • Minimum supported version is 1.11.4. Installation instructions can be found here.
  • Ensure $GOPATH environment variable is set and $GOPATH/bin is added to your PATH environment variable as part of the go installation process.

Step 2a. Install QT Binding for Go

go get -u -v github.com/therecipe/qt/cmd/...

If you get module source tree too big error message, try the following work around:

git clone https://github.com/therecipe/qt.git $GOPATH/src/github.com/therecipe/qt
cd $GOPATH/src/github.com/therecipe/qt/cmd
go install ./qtsetup
go install ./qtmoc
go install ./qtrcc
go install ./qtminimal
go install ./qtdeploy

// on Mac
git clone https://github.com/therecipe/env_darwin_amd64_512.git $GOPATH/src/github.com/therecipe/env_darwin_amd64_512

// on Linux
git clone https://github.com/therecipe/env_linux_amd64_512.git $GOPATH/src/github.com/therecipe/env_linux_amd64_512

// on Windows
git clone https://github.com/therecipe/env_windows_amd64_512.git $GOPATH/src/github.com/therecipe/env_windows_amd64_512

Step 2b. Setup QT Binding for Go (Linux and Mac)

Run the following with GO111MODULE=off and outside $GOPATH

qtsetup test && qtsetup

It may be necessary to install additional dependencies on Linux. See here.

Step 2b. Setup QT Binding for Go (Windows)

for /f %v in ('go env GOPATH') do %v\bin\qtsetup test && %v\bin\qtsetup

If building on Windows, there are additional steps to take to be able to build successfully. Those steps are described in the setup instructions for Windows, under If you want to install the binding

Step 2c. Detailed Installation Instructions

If you have issues with Step 2a or 2b above, you might need to consult the detailed setup instructions for Windows, Linux or MacOS. Focus only on the steps listed in the Fast track version section.

Step 3. Clone this repo

git clone https://github.com/raedahgroup/godcr $GOPATH/src/github.com/raedahgroup/godcr

Note: Cloning to a different directory other than $GOPATH/src/github.com/raedahgroup may cause build issues.

Step 4. Build the source code

cd $GOPATH/src/github.com/raedahgroup/godcr
export GO111MODULE=on
go mod download
go mod vendor
export GO111MODULE=off
go build

Notes

  • Go modules must be enabled first to download all dependencies listed in go.mod to vendor folder within the project directory.
  • Go modules must be disabled before running go build else the build will fail.
  • In Windows, use setx GO111MODULE on/off instead of export GO111MODULE=on/off.
  • If you get checksum mismatch error while downloading dependencies**, ensure you're on go version 1.11.4 or higher and clean your go mod cache by running go clean -modcache

Running godcr

General usage

By default, godcr runs as a cli app where various wallet operations are performed by issuing commands on the terminal in the format:

godcr [options] <command> [args]
  • Run godcr -h or godcr help to get general information of commands and options that can be issued on the cli.
  • Use godcr <command> -h or godcr help <command> to get detailed information about a command.

As a GUI app

godcr can also be run as a full GUI app where wallet operations are performed by interacting with a graphical user interface. The following GUI interface modes are supported:

  1. Full GUI app on terminal. Run godcr --mode=terminal
  2. Web app served over http or https. Run godcr --mode=http
  3. Native desktop app with nuklear library. Run godcr --mode=nuklear
  4. Native desktop app with qt library. Rungodcr --mode=qt

Configuration

The behaviour of the godcr program can be customized by editing the godcr configuration file. The config file is where you set most options used by the godcr app, such as:

  • the host and port to use for the http web server (if running godcr with --mode=http)
  • the default interface mode to run (if you're tired of having to set --mode= everytime you run godcr)
  • whether or not to use dcrwallet over gRPC for wallet functionality

Run godcr -h to see the location of the config file. Open the file with a text editor to see all customizable options.

Contributing

See the CONTRIBUTING.md file for details. Here's an overview:

  1. Fork this repo to your github account
  2. Before starting any work, ensure the master branch of your forked repo is even with this repo's master branch
  3. Create a branch for your work (git checkout -b my-work master)
  4. Write your codes
  5. Commit and push to the newly created branch on your forked repo
  6. Create a pull request from your new branch to this repo's master branch

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 83.9%
  • HTML 11.5%
  • JavaScript 3.8%
  • CSS 0.8%