Giter VIP home page Giter VIP logo

godcr's Introduction

godcr

Build Status

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. But if you want to build the http frontend from the source code, you will need

  • Yarn which you can get from here.
  • You will also need packr2. Run go get -u github.com/gobuffalo/packr/v2/packr2 to get it.

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.
  • Set $GOPATH environment variable and add $GOPATH/bin to your PATH environment variable as part of the go installation process.

Step 2. Clone this repo

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

Step 3. Build the source code

  • If you cloned to $GOPATH, set the GO111MODULE=on environment variable before building. Run export GO111MODULE=on in terminal (for Mac/Linux) or setx GO111MODULE on in command prompt for Windows.

  • cd to the cloned project directory.

  • To build/install godcr-fyne, run the following commands.

# Install Packr2 binary to GOPATH. Run the command with module mode turned off.
GO111MODULE=off go get -u github.com/gobuffalo/packr/v2/packr2

# Generate Go files to pack fyne icons into the binary as byte slices.
(cd fyne && packr2)

# Then build godcr-fyne.
go build ./cmd/godcr-fyne

# or install into $GOBIN
go install ./cmd/godcr-fyne
  • To build/install the binaries for other interfaces: cd ./cmd/godcr-{interface} && go build or cd ./cmd/godcr-{interface} && go install.

  • Currently supported interfaces are godcr-cli, godcr-fyne, godcr-nuklear, godcr-terminal and godcr-web.

  • To run the http interface (godcr-web), you'd need to also build the frontend assets: cd ./web/static/app && yarn install && yarn build. You can get yarn from here

  • To build the distributable bundle for any interface, run ./build.sh {interface} e.g. ./build.sh web from the root directory. Note: Use git bash to run shell commands on windows.

Note: Building on Windows Exporting GO111MODULE directly in CLI does not work and it is recommended to trigger via a .bat file.

  • Create enablegomod.bat in the cloned project directory
  • Paste:
    setx GO111MODULE on
    go mod download
    
  • Execute ./enablegomod.bat

Running godcr

As a CLI app

godcr-cli runs the program in a command-line interface where various wallet operations are performed by issuing commands on the terminal in the format:

godcr-cli [options] <command> [args]
  • Run godcr-cli -h or godcr-cli help to get general information of commands and options that can be issued on the cli.
  • Use godcr-cli <command> -h or godcr-cli 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-terminal.
  2. Web app served over http or https. Run godcr-web,
  3. Native desktop app with nuklear library. Run godcr-nuklear.
  4. Native desktop app with fyne library. Run godcr-fyne.

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-web)
  • 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-cli -h to see the location of the config file. Open the file with a text editor to see all customizable options.

Features

Go here to view updated information about implemented features and known issues and workarounds.

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

godcr's People

Contributors

itswisdomagain avatar barisere avatar sirmorrison avatar metaclips avatar ademuanthony avatar ugwueze-dev avatar jujhar avatar raedah avatar oshorefueled avatar dependabot[bot] avatar quadriyanney avatar matthewjamesr avatar beansgum avatar reevesak avatar cooleraid avatar raphaelint avatar oluwandabira avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.