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.
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.
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.
- Minimum supported version is 1.11.4. Installation instructions can be found here.
- Set
$GOPATH
environment variable and add$GOPATH/bin
to your PATH environment variable as part of the go installation process.
It is conventional to clone to $GOPATH, but not necessary.
Linux
git clone https://github.com/raedahgroup/godcr $GOPATH/src/github.com/raedahgroup/godcr
Windows
git clone https://github.com/raedahgroup/godcr %GOPATH%/src/github.com/raedahgroup/godcr
- If you cloned to $GOPATH, set the
GO111MODULE=on
environment variable before building. Runexport GO111MODULE=on
in terminal (for Mac/Linux) orsetx GO111MODULE on
in command prompt for Windows. cd
to the cloned project directory and rungo build
orgo install
. Building will place thegodcr
binary in your working directory while install will place the binary in $GOPATH/bin.- To build the http frontend,
cd web/static/app
and runyarn install
thenyarn build
. You can get yarn from here
Note: Building on Windows
Exporting GO111MODULE
directly in CLI does not work and it is recommended to trigger
via a .bat
file.
- Create
modInstall.bat
in cloned project directory - Paste:
setx GO111MODULE on go mod download
- Execute
modInstall.bat
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
orgodcr help
to get general information of commands and options that can be issued on the cli. - Use
godcr <command> -h
orgodcr help <command>
to get detailed information about a command.
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:
- Full GUI app on terminal.
Run
godcr --mode=terminal
- Web app served over http or https.
Run
godcr --mode=http
- Native desktop app with nuklear library.
Run
godcr --mode=nuklear
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. To use dcrwallet, set the dcrwallet rpc address in config (e.g.
wallerrpcaddress=localhost:19111
). If the rpc address is set in config, connection is made to dcrwallet. If not, dcrlibwallet is used.
Run godcr -h
to see the location of the config file. Open the file with a text editor to see all customizable options.
Go here to view updated information about implemented features and known issues and workarounds.
See the CONTRIBUTING.md file for details. Here's an overview:
- Fork this repo to your github account
- Before starting any work, ensure the master branch of your forked repo is even with this repo's master branch
- Create a branch for your work (
git checkout -b my-work master
) - Write your codes
- Commit and push to the newly created branch on your forked repo
- Create a pull request from your new branch to this repo's master branch