The Status module that consumes go-ethereum https://status.im
Go to file
Adrià Cidre 33c739fecf
Merge pull request #786 from status-im/improvement/issue-785/common-logic-to-lib
[#785] Extract lib specific code from geth/common
2018-03-29 16:10:29 +02:00
.github Update github-bot.yml 2018-02-08 13:00:10 +01:00
_assets isForwarded constants introduced 2018-03-27 18:22:29 +03:00
cmd [#779] common.NodeManager removal 2018-03-28 17:39:09 +02:00
extkeys use iota to define entropy strengths 2018-03-15 00:29:56 +01:00
geth [#785] /lib specific code living on common moved to /lib 2018-03-29 15:12:46 +02:00
lib [#785] /lib specific code living on common moved to /lib 2018-03-29 15:12:46 +02:00
metrics Move status-go over to go-ethereum/log #717 (#727) 2018-03-20 19:35:28 +01:00
profiling Add profiling with pprof (#754) 2018-03-23 14:58:40 +01:00
static Rewrite config as a native golang structure and remove it from static (#762) 2018-03-26 15:52:20 +03:00
t Merge pull request #780 from status-im/improvement/issue-779/common-NodeManager-removal 2018-03-29 09:57:18 +02:00
vendor isForwarded constants introduced 2018-03-27 18:22:29 +03:00
.dockerignore Ignore *.test files from all folders (#635) 2018-02-08 14:23:08 +02:00
.gitignore Remove unused JavaScript tests for RPC API (#737) 2018-03-16 18:49:42 +01:00
.gometalinter.json Disable unparam linter 2018-02-19 11:40:08 +01:00
.travis.yml Go cover is not longer maintained since go 1.5 (#782) 2018-03-28 12:40:38 +02:00
Gopkg.lock Update codebase to leverage Whisper v6 (#703) 2018-03-02 10:25:30 +01:00
Gopkg.toml Update to go-ethereum 1.8.1 (#702) 2018-02-27 11:39:30 +01:00
LICENSE.md Create LICENSE.md 2016-09-21 10:00:29 +08:00
Makefile Add `setup` makefile target and rename `race-check` to `test-e2e-race` for consistency 2018-03-27 17:07:06 +02:00
README.md Fixes broken status.im link on the README (#720) 2018-03-02 16:36:58 +02:00

README.md

Status bindings for go-ethereum

TravisCI Builds GoDoc Master Build Status Develop Build Status

Docs

Intro

status-go is an underlying part of Status - a browser, messenger, and gateway to a decentralized world.

It's written in Go and requires Go 1.8 or above.

It uses Makefile to do most common actions. See make help output for available commands.

status-go uses go-ethereum with some patches applied in it, located under vendor/ directory. See geth patches README for more info.

Build

There are two main modes status-go can be built:

  • standalone server
  • library to link for Android or iOS

Use following Makefile commands:

  • make statusgo (builds binary into build/bin/statusd)
  • make statusgo-android (builds .aar file build/android-16/aar)
  • make statusgo-ios and make statusgo-ios-simulator (builds iOS related artifacts in build/os-9.3/framework)

In order to build and use status-go directly from status-react, follow the instructions in https://wiki.status.im/Building_Status, under the 'Building Status with the checked-out version of status-go' section.

Debugging

In order to see the log files while debugging on an Android device, do the following:

  • Ensure that the app can write to disk by granting it file permissions. For that, you can for instance set your avatar from a file on disk.
  • Connect a USB cable to your phone and make sure you can use adb.

Run

adb shell tail -f sdcard/Download/geth.log

Testing

To setup accounts passphrase you need to setup an environment variable: export ACCOUNT_PASSWORD="secret_pass_phrase".

Make sure the dependencies are installed first by running:

make lint-install
make mock-install

To test fully statusgo, use:

make ci

To test statusgo using a given network by name, use:

make ci networkid=rinkeby

To test statusgo using a given network by number ID, use:

make ci networkid=3

If you have problems running tests on public network we suggest reading e2e guide.

If you want to launch specific test, for instance RPCSendTransactions, use the following command:

go test -v ./geth/api/ -testify.m ^RPCSendTransaction$

Note -testify.m as testify/suite is used to group individual tests.

Licence

Mozilla Public License 2.0