-
Notifications
You must be signed in to change notification settings - Fork 280
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #571 from skycoin/develop
Merge v0.20.0
- Loading branch information
Showing
4,549 changed files
with
29,700 additions
and
305,492 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
language: go | ||
|
||
go: | ||
- 1.9 | ||
|
||
install: | ||
- go get -t ./... | ||
- go get github.com/golang/lint/golint | ||
- go get github.com/FiloSottile/vendorcheck | ||
# Install gometalinter and certain linters | ||
- go get github.com/alecthomas/gometalinter | ||
# - go get github.com/client9/misspell/cmd/misspell | ||
# - go get github.com/gordonklaus/ineffassign | ||
- go get golang.org/x/tools/cmd/goimports | ||
# - go get github.com/tsenart/deadcode | ||
|
||
script: | ||
# - gometalinter --disable-all -E vet -E gofmt -E misspell -E ineffassign -E goimports -E deadcode --tests --vendor ./... | ||
- gometalinter --disable-all -E goimports --tests --vendor ./... | ||
- vendorcheck ./... | ||
- go test ./cmd/... | ||
- go test ./src/... | ||
|
||
# after_script: | ||
# - golint -set_exit_status ./src/... | ||
# - golint -set_exit_status ./cmd/... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
# Changelog | ||
All notable changes to this project will be documented in this file. | ||
|
||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) | ||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). | ||
|
||
## [Unreleased] | ||
|
||
## [0.20.0] - 2017-10-10 | ||
|
||
### Added | ||
|
||
- New wallet frontend in angular4. This is a complete rewrite and fixes many | ||
of the old wallet issues. | ||
- New wallet has preliminary support for OTC functionality | ||
- Create `webrpc.Client` for JSON-2.0 RPC calls. | ||
- Add this CHANGELOG.md file. | ||
- Add Installation.md file, with install instructions for go. | ||
- Timelock distribution addresses. The first 25% of the distribution is | ||
spendable. After that 25% is spent, a timestamp will be added to the code to | ||
enable further distribution. | ||
- Add `/coinSupply` endpoint. Correctly returns total, locked and unlocked coin | ||
amounts. | ||
- `testutil` package for common test setup methods. | ||
- `/version` endpoint, which will return the current node version number and | ||
the HEAD commit id when build the node | ||
- `-no-ping-log` option to disable ping/pong log output | ||
- Check for invalid block signatures during startup and recreate the database | ||
if they are corrupted. | ||
- Add methods for converting fixed-point decimal strings to droplets and | ||
vice versa. | ||
- Add `make run`, `make test`, `make lint`, `make check` to `Makefile` | ||
|
||
### Changed | ||
|
||
- Flag peers as incoming or outgoing. | ||
- Refactor to decouple `wallet` and `visor` package. | ||
- Refactor `cli` package for use as a library. | ||
- `README` improvements. | ||
- Set default wallet's label as "Your Wallet" | ||
- Use BIP32 mnemomic seeds by default in `address_gen`. | ||
- Add `-x` option to `address_gen`, to generate a random base64-encoded 128-bit | ||
seed instead of a BIP32 mnemomic seed. | ||
- Add `-v` option to `address_gen` to print all address information | ||
(pubkey, seckey, address, seed) to stdout as JSON. | ||
- All API and CLI methods with "coin"-related arguments must be a string and | ||
can use decimal notation to specify coin amounts. | ||
- CLI's `walletHistory` command prints amounts as fixed-point decimal strings. | ||
Previously, it printed amounts as integers representing whole skycoin amounts, | ||
and did not support droplets / fractional skycoins. | ||
- A user is prevented from broadcasting a new transaction with unspent outputs | ||
that they have already sent as an unconfirmed transaction. | ||
|
||
### Deprecated | ||
|
||
- `/api/getEffectiveOutputs` is deprecated in favor of `/coinSupply`. | ||
|
||
### Removed | ||
|
||
- Old wallet | ||
- `/api/create-address` endpoint (use the `address_gen` tool) | ||
|
||
### Fixed | ||
|
||
- Wallet folder path loading. | ||
- #371 Fix `/wallet/spend`, will return only when pending transaction is | ||
confirmed. | ||
- #443 Fix predicted balance in `/wallet/spend` API call. | ||
- #444 Fix bug in `/blockchain/progress` API call. | ||
- Removed globals in `gui` package that caused race condition with wallet API | ||
calls. | ||
- #494 Clean invalid unconfirmed transactions during startup. | ||
- Various race conditions around the bolt.DB blockchain DB | ||
- Missing `strand()` call in `daemon.Visor.AnnounceTxns`. | ||
|
||
### Security | ||
|
||
## [0.19.1] - 2017-08-26 | ||
|
||
### Fixed | ||
|
||
- #459 dist folder in repo out of date, wallet gui does not load | ||
|
||
## [0.19.0] - 2017-07-11 | ||
|
||
### Added | ||
|
||
- Add synchronize indicator when downloading blocks. | ||
- #352 Store unspent pool in db for quick recovery when node restart | ||
- Speed up the time the node start the browser | ||
- Cache unspent pool in memory to speed up query action | ||
- #411 Add button to hide seed | ||
- #380 Move anything with heavy imports into util sub package | ||
|
||
### Fixed | ||
|
||
- #421 Sort wallet transaction history by time | ||
- #398 Remove seeds from DOM | ||
- #390 Make `go test ./src/...` work | ||
- #383 Error during installation from skycoin source code | ||
- #375 Node can't recovery from zero connections | ||
- #376 Explorer api `/explorer/address` does not return spend transactions | ||
- #373 Master node will be closed if there're no transactions need to execute | ||
- #360 Node will crash when do ctrl+c while downloading blocks | ||
- #350 Wallet name always 'undefined' after loading wallet from seed | ||
|
||
[Unreleased]: https://github.com/skycoin/skycoin/compare/master...develop | ||
[0.20.0]: https://github.com/skycoin/skycoin/compare/v0.19.1...v0.20.0 | ||
[0.19.1]: https://github.com/skycoin/skycoin/compare/v0.19.0...v0.19.1 | ||
[0.19.0]: https://github.com/skycoin/skycoin/commit/dd924e1f2de8fab945e05b3245dbeabf267f2910 |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
# Installing go | ||
|
||
## For OSX | ||
First you need to have `homebrew` installed, if you don't have it yet. | ||
|
||
```sh | ||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | ||
``` | ||
|
||
Then, let's install go's latest version. | ||
|
||
```sh | ||
brew install go | ||
``` | ||
|
||
Lastly, let's install Mercurial and Bazaar | ||
|
||
```sh | ||
brew install mercurial bzr | ||
``` | ||
|
||
## For linux | ||
We need to install linux dependencies on the correct distribution. | ||
|
||
#### Ubuntu and Debian | ||
```sh | ||
sudo apt-get update && sudo apt-get upgrade -y | ||
sudo apt-get install -y curl git mercurial make binutils gcc bzr bison libgmp3-dev screen gcc build-essential | ||
``` | ||
|
||
#### Centos and Fedora | ||
```sh | ||
sudo yum update -y && sudo yum upgrade -y | ||
sudo yum install -y git curl make gcc mercurial binutils bzr bison screen | ||
if [[ "$(cat /etc/redhat-release | grep -o CentOS)" == "CentOS" ]]; then sudo yum install -y build-essential libgmp3-dev; else sudo yum groupinstall -y "Development Tools" "Development Libraries" && sudo yum install -y gmp; fi; | ||
``` | ||
|
||
### Install Go with Gvm | ||
#### Install Gvm | ||
`gvm` need to be installed. | ||
|
||
```sh | ||
curl -sSL https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer > gvm-installer && chmod a+x gvm-installer && | ||
source $HOME/.gvm/scripts/gvm | ||
``` | ||
|
||
#### Install Go | ||
In China, use `--source=https://github.com/golang/go` to bypass firewall when fetching golang source. | ||
|
||
```sh | ||
gvm install go1.4 --source=https://github.com/golang/go | ||
gvm use go1.4 | ||
|
||
gvm install go1.9 | ||
gvm use go1.9 --default | ||
``` | ||
|
||
#### Installation issues | ||
If you open up new a terminal and the `go` command is not found then add this to `.bashrc`. GVM should add this automatically. | ||
|
||
```sh | ||
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm" | ||
gvm use go1.9 >/dev/null | ||
``` | ||
|
||
## Install Go manually | ||
### Install Go | ||
|
||
Let's go to home directory and declare `go`'s version that you want to download. | ||
|
||
```sh | ||
cd ~ | ||
export GOV=1.9 # golang version. Could be any of the following versions 1.1, 1.2, 1.3, 1.4, ..., 1.9 | ||
``` | ||
|
||
After that, let's download and uncompress golang source. | ||
|
||
```sh | ||
curl -sS https://storage.googleapis.com/golang/go$GOV.linux-amd64.tar.gz > go$GOV.linux-amd64.tar.gz | ||
tar xvf go$GOV.linux-amd64.tar.gz | ||
rm go$GOV.linux-amd64.tar.gz | ||
``` | ||
|
||
lastly, let's install `go`. | ||
|
||
```sh | ||
sudo mv go /usr/local/go | ||
sudo ln -s /usr/local/go/bin/go /usr/local/bin/go | ||
sudo ln -s /usr/local/go/bin/godoc /usr/local/bin/godoc | ||
sudo ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt | ||
``` | ||
|
||
Note: Find any golang source version at [Go Website](https://golang.org/dl/) | ||
|
||
### Setup your GOPATH | ||
The $GOPATH environment variable specifies the location of your workspace. It defaults to a directory named `go` inside your home directory, so $HOME/go on Unix. | ||
|
||
Create your workspace directory with it's respective inner folders: | ||
|
||
```sh | ||
mkdir -p $HOME/go | ||
mkdir -p $HOME/go/bin | ||
mkdir -p $HOME/go/src | ||
mkdir -p $HOME/go/pkg | ||
``` | ||
|
||
Setup $GOPATH variable, add it to ~/.bashrc. After editing, run `source ~/.bashrc` or open a new tab. | ||
|
||
```sh | ||
export GOROOT=/usr/local/go | ||
export GOPATH=$HOME/go | ||
export GOBIN=$GOPATH/bin | ||
export PATH=$PATH:$GOBIN | ||
``` | ||
|
||
## Test your Go installation | ||
Create and run the hello.go application described here: https://golang.org/doc/install#testing to check if your Go installation is working. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,40 @@ | ||
# static files directory | ||
.DEFAULT_GOAL := help | ||
.PHONY: run run-help test lint check release clean help | ||
|
||
# Static files directory | ||
STATIC_DIR = src/gui/static | ||
|
||
# electron files directory | ||
# Electron files directory | ||
ELECTRON_DIR = electron | ||
|
||
.PHONY: build clean | ||
run: ## Run the skycoin node. To add arguments, do 'make ARGS="--foo" run'. | ||
go run cmd/skycoin/skycoin.go --gui-dir="./${STATIC_DIR}" ${ARGS} | ||
|
||
run-help: ## Show skycoin node help | ||
@go run cmd/skycoin/skycoin.go --help | ||
|
||
test: ## Run tests | ||
go test ./cmd/... | ||
go test ./src/... | ||
|
||
lint: ## Run linters. requires vendorcheck, gometalinter, golint, goimports | ||
gometalinter --disable-all -E goimports --tests --vendor ./... | ||
vendorcheck ./... | ||
|
||
# build electron apps, the builds are located in electron/release folder. | ||
build: | ||
cd $(STATIC_DIR) && gulp dist | ||
check: lint test ## Run tests and linters | ||
|
||
install-linters: ## Install linters | ||
go get -u -f github.com/golang/lint/golint | ||
go get -u -f golang.org/x/tools/cmd/goimports | ||
go get -u github.com/alecthomas/gometalinter | ||
go get -u github.com/FiloSottile/vendorcheck | ||
|
||
release: ## Build electron apps, the builds are located in electron/release folder. | ||
cd $(ELECTRON_DIR) && ./build.sh | ||
@echo release files are in the folder of electron/release | ||
|
||
# clean dist files and delete all builds in electron/release | ||
clean: | ||
cd $(STATIC_DIR) && gulp clean | ||
rm $(ELECTRON_DIR)/release/* | ||
clean: ## Clean dist files and delete all builds in electron/release | ||
rm $(ELECTRON_DIR)/release/* | ||
|
||
help: | ||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' |
Oops, something went wrong.