Skip to content

Stevengu999/skycoin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Skycoin

Build Status GoDoc Go Report Card

Skycoin is a next-generation cryptocurrency.

Skycoin improves on Bitcoin in too many ways to be addressed here.

Skycoin is small part of OP Redecentralize and OP Darknet Plan.

Links

Table of Contents

Installation

Installing Go

Install go1.9+

Create GOPATH directory

go packages are installed in $GOPATH which defaults to $HOME/go.

Create $HOME/go for your $GOPATH:

mkdir ~/go

You may also want to update your $PATH environment variable to PATH="$PATH:$GOPATH/bin.

Go get skycoin

go get https://github.com/skycoin/skycoin/...

This will download github.com/skycoin/skycoin to $GOPATH/src/github.com/skycoin/skycoin.

You can also clone the repo directly with git clone https://github.com/skycoin/skycoin, but it must be cloned to this path: $GOPATH/src/github.com/skycoin/skycoin.

Run Skycoin from the command line

cd $GOPATH/src/github.com/skycoin/skycoin
make run

Show Skycoin node options

cd $GOPATH/src/github.com/skycoin/skycoin
make run-help

Run Skycoin with options

cd $GOPATH/src/github.com/skycoin/skycoin
make ARGS="--launch-browser=false" run

API Documentation

Wallet REST API

Wallet REST API.

JSON-RPC 2.0 API

JSON-RPC 2.0 README.

Skycoin command line interface

CLI command API.

Development

We have two branches: master and develop.

develop is the default branch and will have the latest code.

master will always be equal to the current stable release on the website, and should correspond with the latest release tag.

Modules

  • /src/cipher - cryptography library
  • /src/coin - the blockchain
  • /src/daemon - networking and wire protocol
  • /src/visor - the top level, client
  • /src/gui - the web wallet and json client interface
  • /src/wallet - the private key storage library
  • /src/api/webrpc - JSON-RPC 2.0 API
  • /src/api/cli - CLI library

Running Tests

make test

Formatting

All .go source files should be formatted with gofmt or goimports.

Code Linting

Install prerequisites:

go get github.com/golang/lint/golint
go get github.com/FiloSottile/vendorcheck
go get github.com/alecthomas/gometalinter
go get golang.org/x/tools/cmd/goimports

Run linters:

make lint

Dependency Management

Dependencies are managed with dep.

To install dep:

go get -u github.com/golang/dep

dep vendors all dependencies into the repo.

If you change the dependencies, you should update them as needed with dep ensure.

Use dep help for instructions on vendoring a specific version of a dependency, or updating them.

After adding a new dependency (with dep ensure), run dep prune to remove any unnecessary subpackages from the dependency.

When updating or initializing, dep will find the latest version of a dependency that will compile.

Examples:

Initialize all dependencies:

dep init
dep prune

Update all dependencies:

dep ensure -update -v
dep prune

Add a single dependency (latest version):

dep ensure github.com/foo/bar
dep prune

Add a single dependency (more specific version), or downgrade an existing dependency:

dep ensure github.com/foo/bar@tag
dep prune

Wallet GUI Development

The compiled wallet source should be checked in to the repo, so that others do not need to install node to run the software.

Compile and add the wallet source to git:

cd src/gui/static
npm install
npm run build
git add .

Releases

TODO: Full instructions on doing a release. Need instructions on updating version number in source code, and running scripts to build releases

When ready to do a release, a pull request merging develop into master must be made.

After merging to master, tag the branch with the version number.

Once master branch is updated, git checkout master and create the release builds.

Creating release builds

Create Release builds.

About

Skycoin Core and Wallet

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 96.5%
  • TypeScript 1.7%
  • Shell 0.6%
  • HTML 0.5%
  • C 0.3%
  • JavaScript 0.2%
  • Other 0.2%