The Status module that consumes go-ethereum
Find a file
Dmitry a11d970112 Update rendezvous nodes accordingle to our inventory
Rendezvous node identities were changed. Probably, previous private keys were
removed due to replacament of the VM. Additional node is from HK DC.
2018-09-20 09:46:59 +03:00
.github Move CONTRIBUTING.md to top level (#798) 2018-04-04 12:51:05 +02:00
.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 Update to geth 1.8.11. Closes #1033 2018-06-22 18:04:13 +02:00
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 Update rendezvous nodes accordingle to our inventory 2018-09-20 09:46:59 +03:00
contracts Feature/mailserver registry smart contract (#1135) 2018-08-20 15:55:43 +02:00
db Centralize leveldb.OpenFile allowing Recover corrupted db everywhere (#1072) 2018-07-02 10:42:16 +02:00
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 Add LogEnabled attribute to NodeConfig to, used in the call from status-react (#866) 2018-04-26 18:28:42 +02:00
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 Fix issues reported by lint. Part of #1017 2018-06-14 13:52:51 +02:00
notifier Notifier package to interact with gorush notifications (#910) 2018-05-08 16:30:03 +02:00
params fix updating peers limit if LES is enabled in CLI (#1199) 2018-09-19 20:29:42 +02:00
peers Feature/mailserver registry smart contract (#1135) 2018-08-20 15:55:43 +02:00
profiling Add profiling with pprof (#754) 2018-03-23 14:58:40 +01:00
rpc Block some JSON-RPC methods completely 2018-08-02 09:07:55 +02:00
services Remove transactions queue 1027 (#1125) 2018-08-16 13:37:53 +02:00
signal Revert "Add build tags to signal package (#1119)" (#1148) 2018-08-10 13:23:28 +02:00
static Update rendezvous nodes accordingle to our inventory 2018-09-20 09:46:59 +03:00
t Streamline configuration in status-go. Part of #1180 (#1183) 2018-09-13 18:31:29 +02:00
timesource Sanity validate ntp response 2018-06-08 19:10:29 +03:00
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 #759 Codeclimate config (#843) 2018-04-23 15:55:21 +02:00
.dockerignore Ignore *.test files from all folders (#635) 2018-02-08 14:23:08 +02:00
.gitignore Implement mailserver canary service. Closes #1086 2018-08-07 17:17:59 +02:00
.golangci.yml Update to golangci-lint 1.9.1. Get rid of standalone misspell linter. 2018-07-02 18:41:10 +02:00
.travis.yml run only one unit tests command in Travis (#1176) 2018-08-29 12:25:55 +02:00
CONTRIBUTING.md Move CONTRIBUTING.md to top level (#798) 2018-04-04 12:51:05 +02:00
Gopkg.lock Update rendezvous client to a latest version 2018-09-13 09:50:38 +03:00
Gopkg.toml Update geth to 1.8.14 (#1171) 2018-08-27 11:22:21 +03:00
LICENSE.md Create LICENSE.md 2016-09-21 10:00:29 +08:00
Makefile Add script to update fleets static JSON. Closes #1188 (#1189) 2018-09-14 10:46:34 +02:00
README.md [#856] move geth subpackages to root level (#1007) 2018-06-08 13:29:50 +02:00

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