The Status module that consumes go-ethereum https://status.im
Go to file
Adam Babik fd99487328
fix updating peers limit if LES is enabled in CLI (#1199)
2018-09-19 20:29:42 +02:00
.github
.vscode Streamline configuration in status-go. Part of #1180 (#1183) 2018-09-13 18:31:29 +02:00
_assets Only keep two random static nodes from fleets.status.im (#1196) 2018-09-19 17:08:54 +02:00
account
api Streamline configuration in status-go. Part of #1180 (#1183) 2018-09-13 18:31:29 +02:00
cmd fix updating peers limit if LES is enabled in CLI (#1199) 2018-09-19 20:29:42 +02:00
config Only keep two random static nodes from fleets.status.im (#1196) 2018-09-19 17:08:54 +02:00
contracts
db
discovery Provide TTL from a discovery wrapper to rendezvous client 2018-09-13 09:50:38 +03:00
extkeys fix child keys derivation adding bytes padding (#1139) 2018-09-04 09:42:40 +02:00
lib Streamline configuration in status-go. Part of #1180 (#1183) 2018-09-13 18:31:29 +02:00
logutils
mailserver Streamline configuration in status-go. Part of #1180 (#1183) 2018-09-13 18:31:29 +02:00
metrics/node Remove EnvelopeTranced and add Whisper metrics as a patch (#1177) 2018-08-31 10:09:38 +02:00
node Disable listening on port 30303 for the canary (#1198) 2018-09-19 14:45:43 +02:00
notifications/push
notifier
params fix updating peers limit if LES is enabled in CLI (#1199) 2018-09-19 20:29:42 +02:00
peers
profiling
rpc
services
signal
static Only keep two random static nodes from fleets.status.im (#1196) 2018-09-19 17:08:54 +02:00
t Streamline configuration in status-go. Part of #1180 (#1183) 2018-09-13 18:31:29 +02:00
timesource
transactions Streamline configuration in status-go. Part of #1180 (#1183) 2018-09-13 18:31:29 +02:00
vendor Update rendezvous client to a latest version 2018-09-13 09:50:38 +03:00
.codeclimate.yml
.dockerignore
.gitignore
.golangci.yml
.travis.yml run only one unit tests command in Travis (#1176) 2018-08-29 12:25:55 +02:00
CONTRIBUTING.md
Gopkg.lock Update rendezvous client to a latest version 2018-09-13 09:50:38 +03:00
Gopkg.toml
LICENSE.md
Makefile Add script to update fleets static JSON. Closes #1188 (#1189) 2018-09-14 10:46:34 +02:00
README.md

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

IDE Debugging

If you're using Visual Studio Code, you can rename the .vscode/launch.example.json file to launch.json so that you can run the app with the debugger attached.

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 ./api/ -testify.m ^RPCSendTransaction$

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

Licence

Mozilla Public License 2.0