Commit Graph

299 Commits

Author SHA1 Message Date
Siddarth Kumar 6ac2308ee1
Re-organise the code to be more modular (#3172) 2023-03-01 17:23:17 +05:30
Jakub Sokołowski 6f58ce2c61
ci: add commit to Docker image tag pushed
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-22 13:29:29 +01:00
Jakub Sokołowski 34f7354e6c
ci: upgrade Jenkins library to fix getting version
Fixed in:
https://github.com/status-im/status-jenkins-lib/pull/56

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-22 13:29:28 +01:00
Jakub Sokołowski 78c677742e
ci: delete Postgres DB container after tests run
Otherwise we end up with leftover containers hanging around:
```
admin@linux-03.he-eu-hel1.ci.devel:~ % d ps -a
CONTAINER ID   NAMES                IMAGE                 CREATED          STATUS
6c683f3083bf   boring_yonath        postgres:9.6-alpine   20 minutes ago   Created
b3d462925a91   dazzling_albattani   postgres:9.6-alpine   7 days ago       Created
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-21 13:57:10 +01:00
Jakub Sokołowski 08403df4c0
ci: use M1 Macs for iOS builds
Should be faster, and is the same a how we do it for mobile app.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-02-16 11:52:48 +01:00
Jakub Sokołowski 0048b70466
ci: use WORKSPACE_TMP for TMPDIR to not abuse /run
Because a lot of tests use `MkdirTemp` and do not clean up.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-01-03 16:54:22 +01:00
Jakub Sokołowski 9dd80e7f1e
ci: use Nix shell to provide Android SDK for builds
Installing the SDK via Ansible is prone to error and not exactly
reproduceable. This way we can also track the exact tooling version as
used in Status Mobile app:
https://github.com/status-im/status-mobile/blob/develop/nix/pkgs.nix

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-12-05 15:48:27 +01:00
Jakub Sokołowski 5b941cab0c
ci: drop unnecessary go get command
Not sure why that was added at some point, but it doesn't seem
necessary, and even if it was `go install` should be used.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-24 11:26:38 +02:00
Richard Ramos 11e432d341
feat: allow passing variables to docker-compose and fix var name (#2821) 2022-09-15 15:41:00 -04:00
Samuel Hawksby-Robinson 41cb9d7bea Added httptest.NewServer to DecodeFromURL and CryptoOnRamp tests 2022-09-09 15:07:48 +01:00
Samuel Hawksby-Robinson 399090a44b Added fix for pinging a remote service in tests 2022-09-09 15:07:48 +01:00
Samuel Hawksby-Robinson 45b287370a Implemented more comprehensive file compression to handle large files 2022-09-05 16:06:04 +01:00
yqrashawn d1ef1a3e31
fix: apt -> apt-get (#2775)
there's a default /usr/bin/apt cli in macos
2022-08-03 11:26:31 +02:00
Jakub Sokołowski 6d38b86059
scripts: fix protobuf version from Nix
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-26 17:36:10 +02:00
Jakub Sokołowski 8191f24ef3
docker: upgrade Golang version to 1.18
Otherwise it fails with:
```
build github.com/status-im/status-go/cmd/statusd: cannot load github.com/lucas-clemente/quic-go/internal/qtls: no Go source files
```

We also add missing `g++` compiler for `go-libutp` to fix:
```
go build github.com/anacrolix/go-libutp: g++: exec: "g++": executable file not found in $PATH
```

As well as install `libgcc` and `libstdc++` to avoids failures like this:
```
Error loading shared library libstdc++.so.6: No such file or directory (needed by /usr/local/bin/statusd)
Error loading shared library libgcc_s.so.1: No such file or directory (needed by /usr/local/bin/statusd)
Error relocating /usr/local/bin/statusd: _Znwm: symbol not found
Error relocating /usr/local/bin/statusd: _ZdlPvm: symbol not found
Error relocating /usr/local/bin/statusd: _Unwind_Resume: symbol not found
Error relocating /usr/local/bin/statusd: __gxx_personality_v0: symbol not found
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-26 13:07:07 +02:00
Andrea Maria Piana 4d15ae8a85 Upgrade to go 1.18 2022-05-11 12:39:54 +01:00
Jakub Sokołowski 57e5fd66fa ci: pin builds to hosts with specific Go version
Otherwise Go version upgrades are a pain due to randomly hitting a host
with newer version of Go compiler.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-05-11 12:25:35 +02:00
Jakub Sokołowski ede86b68ce gen_config.sh: add default retenetion of 30 days
Related to this question on our Discourse:
https://discuss.status.im/t/status-node-growing-storage-size/2970

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-01-25 19:28:54 +01:00
Jakub Sokołowski 8089c03464 ci: specify macos host architecture in labels
Since now we have a 5th Gen Mac Mini with `arm64` M1 CPU.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-11-29 11:34:51 +01:00
Jakub Sokołowski bbafc704b1 ci: fix release process broken by missing suffix
This fixes a type of CI failure:
https://ci.status.im/job/status-go/job/manual/1010
Which results in:
```
java.lang.NoSuchMethodError: No such DSL method 'suffix' found among steps ...
```
Also use release functions provided by `status-jenkins-lib`.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-09-29 08:51:32 +02:00
Jakub Sokołowski 116f76e189 Makefile: pin tool versions, use go install
Using latest version every time is just asking for weird random issues.

This commit in `gomobile` has made Go `1.16` required:
80cb72e7af

Since we upgarded Go to 1.16 on CI hosts we can now use the recommended
method of installing tools, which is using `go install`.

In addition to that I've pinned other tools that we install to specific
versions, and dropped use of `modvendor` fork thanks to merging of:
https://github.com/goware/modvendor/pull/13

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-09-17 14:39:30 +02:00
Jakub Sokołowski 7594dd4800 install_deps.sh: fix format, add NixOS support
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-09-17 14:39:30 +02:00
Anthony Laibe 07651d4d06
feat: enable wallet without network binding (#2349)
* feat: enable wallet without network binding

* feat: make transfer network aware

* feat: allow to pass initial networks via config

* fix: nil check and feed

* feat: Add documentation with better function name

* fix: do not init the manager more than once

* fix: PR feedbacks

* Bump version

* Update Jenkinsfile.tests

* Convert int to string

Co-authored-by: RichΛrd <info@richardramos.me>
2021-09-09 16:28:54 +02:00
Jakub Sokołowski 034f3bfec3 get_enode.sh: --retry-connrefused instead --retry-all-errors
The `--retry-all-errors` flag was added only in Curl `7.71.0`:
https://github.com/curl/curl/commit/b995bb58

So it fails on older distrubutions with:
```
curl: option --retry-all-errors: is unknown
curl: try 'curl --help' or 'curl --manual' for more information
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-30 14:24:29 +02:00
Jakub Sokołowski 5c408f8ce4 compose/systemd: fix completion of make targets
Something goes wrong when parsing and GRN definition is treated as target.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 16:45:47 +02:00
Jakub Sokołowski 06587bd1bc get_enode.sh: add retries to account for slow start
Containers can be slow to start, but still want that enode.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 16:45:47 +02:00
Jakub Sokołowski b631b93bd1 compose: upgrade image, fix RPC listening address
Also move data dir to folder named after contaienr.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 16:45:47 +02:00
Jakub Sokołowski cd2b53643d rcp.sh: curl wrapper for easier RPC calls
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 11:23:25 +02:00
Jakub Sokołowski e4540a0853 add 3 instead of 2 static nodes to default configs
Each fleet has 3 data centers, so it makes sense to use 3.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 11:23:25 +02:00
Jakub Sokołowski 315f63ea43 gen_config.sh: default HTTPHost to localhost
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 11:23:25 +02:00
Jakub Sokołowski b805d0b9f6 gen_config.sh: add MaxPeers default of 50
I think this setting should be more explicit and visible in the config.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-24 11:23:25 +02:00
Jakub Sokołowski 2b566db298 drop AdvertiseAddr from default configuration
It appears it is being used by Rendezvous, and if that protocol is not
being used there is no need to set `AdvertiseAddr` either.

I also adjusted all the `Makefile`s to not depend on `PUBLIC_IP` variable.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-19 16:53:31 +02:00
Jakub Sokołowski 5ac8b873b8 config/cli/fleet: disable Rendezvous, drop nodes
Since we've broken LibP2P communication with our Rendezvous nodes
somewhere after `v0.79.11` we should not enable it by defaults since it
generates errors like these:
```
failed to dial 16Uiu2...d687e4: all dials failed
failed to negotiate security protocol: protocol not supported
```
Since normal bootnodes are defined as well as a list of static nodes
there should not be a need for using Rendezvous as well.

Resolves: https://github.com/status-im/status-go/issues/2309

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-13 16:22:17 +02:00
Jakub Sokołowski 5caf22e35a scripts/gen_config.sh: drop WhisperConfig, limit API modules
I've disabled Whisper in the config since we do not use it anymore.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-13 16:22:17 +02:00
Andrea Maria Piana 81b58b39ec Remove e2e tests from steps 2021-07-20 10:57:38 +02:00
RichΛrd 40359f9c1b
go-waku integration (#2247)
* Adding wakunode module
* Adding wakuv2 fleet files
* Add waku fleets to update-fleet-config script
* Adding config items for waku v2
* Conditionally start waku v2 node depending on config
* Adapting common code to use go-waku
* Setting log level to info
* update dependencies
* update fleet config to use WakuNodes instead of BootNodes
* send and receive messages
* use hash returned when publishing a message
* add waku store protocol
* trigger signal after receiving store messages
* exclude linting rule SA1019 to check deprecated packages
2021-06-16 16:19:45 -04:00
Samuel Hawksby-Robinson cab6281dc5
Adding postgres docker to jenkins test (#2225)
* wip

* file rename

* Adding postgres docker to jenkins test

* update and fix to jenkins file

* More fixing

* tinker

* more tinkering

* agent in stage

* agent in stage fix

* Integrated Andrea's Docker compose work

* Rework to include dockerfile into jenkins unit test

* Customer dockerfile agent

* Change to ENTRYPOINT

* No dir() in Unit Tests

* Removal dir property of dockerfile

* Added lable to agent.dockerfile

* agent set only at stage level

* Added Jakub's suggestion

* removed stage level agent

* replaced docker host name with default 127.0.0.1

* Fix of old NewWhisperEnvelope

* removed user and password settings from postgres connection

* Set explicit postgres user and password

* Change postgres creds to be more generic

* Removed unneeded docker files

* POSTGRES_HOST_AUTH_METHOD because we hate passwords

* chicken chicken chicken

* indents 2 spaces
2021-06-09 11:16:04 +01:00
Jakub Sokołowski 91620b9982 ci: refactor to use status-jenkins-lib
This should fix issues with re-running builds while skipping some initial stages.

Also removes two libraries we made use of before.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-05-10 14:04:55 +02:00
Jakub Sokołowski aab93a6abb ci: lower number of remembered jobs to 5
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-05 09:11:23 +01:00
Jakub Sokołowski 74cdcbb700 compose: parametrize docker image, bind to v0.64.3
Using `latest` tag is dangerous for non-technical users.
And updating `latest` tag willy-nilly is also bad.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-01-20 14:58:28 +01:00
Samuel Hawksby-Robinson b7cd88744c Implemented better images.Get() and added better tests 2020-12-17 14:10:00 +01:00
Andrea Maria Piana 5cb70a2f42 Add datadir to gen_config.sh 2020-09-28 09:51:21 +02:00
Jakub Sokołowski 7ba89867ac ci: keep only last 10 builds to reduce size
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-09-08 19:49:24 +02:00
Andrea Maria Piana e58ba1e9c8
Add audio messages
Why make this change?

We are adding support of audio recorded files, similarly to how we did
with images

What has changed?

- Added protobuf definition, only AAC supported
- Added migrations to store files
- Fixed an issue with nil pointer when transaction would fail to be
created, causing the application to crash
2020-07-27 17:14:50 +02:00
Andrea Maria Piana cbaf523b0e Address feedback 2020-06-03 11:07:04 +02:00
Andrea Maria Piana f5ab58b87f Add support for images
This commit adds support for images in protobuf messages.

The client can specify a path which will be used to load the image
and set the corresponding fields.

This makes the assumption that the RCP server runs on the same machine
as the client and they have access to the same files. This holds
currently for both status-react and status-console-client, we could
revisit and adds an upload if that changes in the future.
2020-06-01 11:30:04 +02:00
Jakub Sokołowski 42baf2251d expose the mailserver metrics port by default
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-08 17:08:49 +02:00
Jakub Sokołowski bc70895615 enable waku for mailservers by default
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-04-08 17:08:49 +02:00
Adam Babik 4f9f7cd258
Fix setup-dev target (#1926) 2020-04-06 09:54:06 +02:00
Jakub Sokołowski 0c8efb4da5 fix update-fleet-config.sh to include rendezvous
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-03-17 15:47:07 +01:00
Adam Babik 6fdeb9b115
Fix listen flag (#1897) 2020-03-10 13:40:35 +01:00
Jakub Sokołowski 86f54c3f5f remove eth.beta fleet as it has been decomissioned
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-21 14:48:47 +01:00
Jakub Sokołowski e1dee26ba9 docs: clarify purpose and describe ports
Also make bootnode use 30301 by default to avoid clash/confusion.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-06 18:44:23 +01:00
Jakub Sokołowski 14501520be add option to show enode as QR code if qrencode is available
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-05 16:50:49 +01:00
Jakub Sokołowski b476d5c6f3 include mail password when getting enode with get_enode.sh
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-02-05 16:50:49 +01:00
Jakub Sokołowski d29c6aad50 use more descriptive names for systemd services
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-08 14:51:26 +01:00
Jakub Sokołowski fc841f884a add config for new eth.prod fleet
also move _assets/ci/update-fleet-config.sh to scripts

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-08 14:51:26 +01:00
Jakub Sokołowski 1d4b3b9241 allow running systemd service as root
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-01-02 10:36:13 +01:00
Pedro Pombeiro 0ed66b98ae Fail build if `make vendor` hasn't been run 2019-12-30 13:25:12 +01:00
Jakub Sokołowski ccf3cd5098 add missing jq checks, make formatting vars the same
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-21 09:16:54 +01:00
Jakub Sokołowski 0f06b4ca6a fix entrypoint for bootnode Docker image
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-17 22:04:34 +01:00
Jakub Sokołowski 1eb0ad91bd add extra checks to docker compose Makefiles
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-17 22:04:34 +01:00
Jakub Sokołowski e249f35a8d fix missing genkey task in systemd bootnode makefile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-10 13:46:32 +01:00
Jakub Sokołowski 429d2b4291 create a Makefile for running a bootnode under systemd
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-04 13:44:05 +01:00
Jakub Sokołowski e139af9a16 rewrite mailserver systemd setup to a Makefile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-12-04 13:44:05 +01:00
Jakub Sokołowski 92d6b1c439 add systemd service leanup, fix config generation
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-15 11:30:23 +01:00
Jakub Sokołowski c1f17cb4a3 use prometheus/client_golang for metrics
also re-implement mailserver metrics

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-04 13:18:50 +01:00
Adam Babik a244b01a26
Upgrade migrate (#1643) 2019-10-14 16:10:48 +02:00
Jakub Sokołowski 294399916e add script for easier setup of mailserver
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-10-10 11:27:32 +02:00
Adam Babik e164cbe421
Upgrade Go to 1.13 in our Docker images (#1629) 2019-10-05 16:27:48 +02:00
Adam Babik 94228bce2e
Remove xgo builds (#1628) 2019-10-05 11:13:53 +02:00
Jakub Sokołowski 4f1a3283e6
update one missing location where old pkg dir is used
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-08-20 09:28:48 -04:00
Jakub Sokołowski 652d8a67b6 use out for output, use CGO_ENABLED=1 and GO111MODULE=off for Android and iOS (#1574) 2019-08-20 09:05:15 +02:00
Jakub Sokołowski 5f763439cb add a check for already existing release tag
also run cleanup in post-always Jenkinsfile block

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-07-30 09:26:34 -04:00
Jalil F 19c26b129d Update mailserver docker readme. (#1528)
Include enode details, update make config doc, and add a F.A.Q.

Co-Authored-By: Adam Babik <a.babik@designfortress.com>
2019-07-22 08:57:29 -04:00
Adam Babik 0e13406151 remove GOCACHE=off from Jenkinfile.xgo 2019-06-12 13:12:00 +02:00
Jakub Sokołowski 012a1b54bc add /usr/local/go/bin as proper Go path
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-06-12 13:12:00 +02:00
Jakub Sokołowski b9829e0fca use newer image for building go docker image
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-06-12 13:12:00 +02:00
Adam Babik c9e99c432d migrate to go 1.12 and go modules 2019-06-12 13:12:00 +02:00
Dmitry Shulyak 442a12e996
Removing discovery-proxy from sources (#1445)
It was going to be used as proxy from discv5 to rendezvous for les nodes.
We are not using it at the moment, and not clear when we will be using it
and if we are going to use it all.

Additionally it has some memory leaks that need to be fixed, so it is better
to remove it for now and restore once/if we will need it again.
2019-04-18 10:39:55 +03:00
Jakub 2c0c0fff24 fix release builds (#1440)
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-15 11:57:06 +02:00
Jakub Sokołowski 2af27dc6b3 build regular linux binary with xgo for uploading to GitHub
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-14 18:14:02 +02:00
Jakub Sokołowski 96aba9f3af explicitly enable whisper for mailserver
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-01 14:38:41 +02:00
Jakub Sokołowski 3c6d10b597 bootnodes listen on UDP
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-04-01 12:14:18 +02:00
Jakub bf209cff85 don't overwrite linux build variable with docker build (#1431)
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-29 18:49:18 +01:00
Jakub Sokołowski b80a9f5aaa add explicit TMPDIR, otherwise go get fails
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-28 09:55:34 +01:00
Jakub Sokołowski d38a07f679 add Jenkinsfile.docker for pushing new images
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-26 09:14:56 +01:00
Jakub Sokołowski 2766372eca add compose setup for a bootnode
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-21 16:42:44 +01:00
Dmitry 9441f798bb Remove mock step from ci pipeline 2019-03-15 08:14:53 +02:00
Jakub Sokołowski cbe50f557c move running tests to a separate jenkins job
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-03-05 08:11:32 +01:00
Jakub 0238d84924 declare all parameters, fix names of files on release (#1392)
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-02-25 15:59:12 +01:00
Jakub Sokołowski 51ff6395b8 fix env variables pointing at android ndk for gomobile
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-02-25 12:45:06 +01:00
Jakub Sokołowski 0995f7c878 fix Makefile respects env variables exported by user
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-02-25 09:45:58 +01:00
Jakub Sokołowski c26cfb0468 add a docker-compose.yml and Makefile for running a mailserver
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-02-13 18:05:39 +01:00
Andrea Franz a249151d05 add LoginWithKeycard to mobile pkg (#1372) 2019-02-11 21:20:59 +01:00
Jakub Sokołowski de269e5830 add build status notifications like in status-react
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-02-11 17:16:21 +01:00
Ivan Daniluk 4f3f5ee574 Gomobile support (#1164) 2019-02-01 18:02:52 +01:00
Jakub Sokołowski 7d651afaae add desktop build step
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-12-11 09:30:35 +01:00
Andrea Maria Piana afc3017e07
Notify user when the device is missing (#1298)
* Notify user when the device is missing

* Update services/shhext/chat/encryption.go

Co-Authored-By: cammellos <andrea.maria.piana@gmail.com>
2018-12-05 09:22:49 +01:00
Jakub Sokołowski 49cfcd3e24 stop adding 'v' before the contents of VERSION file
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-12-03 14:55:45 +01:00
Jakub Sokołowski d61e838235 use VERSION file for suffix when releasing
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-27 19:26:09 +01:00
Jakub Sokołowski 6b09eea749 install xgo in setup target
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-26 14:07:48 +01:00
Jakub Sokołowski 07eb60df7d
pyt timestmap before commit for better ordering
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-26 13:33:07 +01:00
Jakub Sokołowski def3af61a7
remove unused call
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-26 09:05:33 +01:00
Jakub Sokołowski d1847a3adc change Jenkinsfile to use parallel declarative format
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-11-22 10:12:20 +01:00
Pedro Pombeiro 92748f1334 Add `canary-test` make target to test beta fleet mailservers. Closes #1274 2018-11-19 19:02:32 +01:00
Andrea Maria Piana 58bd36e79e
Automate github releases (#1263) 2018-11-05 15:02:16 +01:00
Adam Babik ac8da3c0f0
Use patched go-ethereum from our fork instead of patching it on-the-fly (#1184)
* update to 1.8.16
2018-09-27 21:16:15 +02:00
Dmitry Shulyak 529e18af33
Update geth to v1.8.15 (#1213)
* Update geth to v1.8.15

* Apply patches
2018-09-25 11:55:54 +03:00
Pedro Pombeiro 6a1cd7f2b0
Fix xgo creating files as `root` (#1210) 2018-09-24 22:21:13 +02:00
Andrea Maria Piana dcaf8caed0
Add x3dh key exchange (#1127)
* Add x3dh key exchange

* Encrypt using the double ratchet

* Multi device with auto-pairing

* Add pfs enabled flag
2018-09-24 20:07:34 +02:00
Pedro Pombeiro 99d7bc207d
Only keep two random static nodes from fleets.status.im (#1196) 2018-09-19 17:08:54 +02:00
Pedro Pombeiro 4e7ae20eae
Add script to update fleets static JSON. Closes #1188 (#1189) 2018-09-14 10:46:34 +02:00
Pedro Pombeiro 3d00af7fa3
Streamline configuration in status-go. Part of #1180 (#1183)
- Replace command line flags with `-c` config flag. Part of #1180
- Convert node config private keys to hex-encoded string versions.
- Remove `GenerateConfig` from library.
- Remove unused `FirebaseConfig` from library.
- Fix loading of `config/status-chain-genesis.json` in non-dev machines.
2018-09-13 18:31:29 +02:00
Adam Babik bf1d1ee0ea
Remove EnvelopeTranced and add Whisper metrics as a patch (#1177) 2018-08-31 10:09:38 +02:00
Adam Babik 4e386f4097
Update version format of artifacts in Jenkins (#1173) 2018-08-29 12:52:19 +02:00
Adam Babik a571eeb7a4
add patch 0036-fix-whisper-expire-loop (#1175) 2018-08-28 10:49:08 +02:00
Dmitry Shulyak f150d678de
Update geth to 1.8.14 (#1171)
* Update to geth v1.8.14

* Remove patches that were merged upstream

* Apply patches before 0016

* Fix 0016 and apply it

* Apply everything else

* Pass gas limit as a second argument to simulated backend
2018-08-27 11:22:21 +03:00
Adam Babik 16c7b94eb5
Add labels to docker images and add Jenkinsfile to build docker images (#1160)
* fixed generating `params.Version`
* added labels to all Docker images including git_commit and the author of the build (using `$USER` env variable)
2018-08-24 12:25:07 +02:00
Dmitry Shulyak 2cfcde0283
Remove patches to discovery v5 (#1144) 2018-08-24 11:24:22 +03:00
Dmitry Shulyak 6858662d59
Proxy records found in ethereum discovery v5 (#1165) 2018-08-24 06:17:32 +03:00
Dmitry Shulyak d8b5ba7fbf
Add generated cht for ropsten and mainnet (#1166) 2018-08-24 06:05:06 +03:00
Dmitry bfdf823628 Add delay to refresh cycle with patch 2018-08-15 04:25:18 +03:00
Dmitry 6c6fb4d0b3 Remove patch 0031 2018-08-15 04:25:18 +03:00
Adam Babik 7c70ce02bc
allow building status-go from tags (#1122) 2018-08-10 10:28:04 +02:00
Adam Babik 4219d56909
Fix xgo patch 0002 (#1141) 2018-08-08 09:39:51 +02:00
Adam Babik ecc39735f5
Upgrade geth to 1.8.13 (#1140) 2018-08-07 15:31:06 +02:00
Jakub Sokołowski ef7da275d4
fix ENTRYPOINT syntax and add CMD for easier use by new people; 2018-07-11 13:45:27 +02:00
Jakub 6d4f657106 Add ENTRYPOINT for status-go image (#1084) 2018-07-10 11:29:40 +02:00
Ivan Daniluk 93210061ad
Add goroutines count to geth metrics (#1077) 2018-07-03 20:15:16 +02:00
Andrea Franz 809db97e54
mailserver pagination (#1039)
* mailserver sends envelopes in descending order

* add limit value in mailserver request payload

* mailserver sends messages up to the limit specified in the request

* update Archive method to return key and error

* processRequest returns the next page cursor

* add cursor to mailserver request

* add limit and cursor to request payload

* fix request limit encoding

* wait for request completed event in TrackerSuite/TestRequestCompleted

* add cursor to mailserver response

* fix cursor position in payload

* add e2e test for mail server pagination

* validate mail server response size

* remove old limitReached var

* fix lint warnings

* add whisper patch

* fix tests after rebase

* check all return values to avoid lint warnings

* check that all messages have been retrieved after 2 paginated requests

* fix lint warnings

* rename geth patch

* merge mailserver patches into one

* add last envelope hash to mailserver response and EventEnvelopeAvailable event

* update whisper patch

* add docs to MailServerResponse

* update whisper patch

* fix tests and lint warnings

* send mailserver response data on EventMailServerRequestCompleted signal

* update tracker tests

* optimise pagination test waiting for mailserver to archive only before requesting

* rollback mailserver interface changes

* refactoring and docs changes

* fix payload size check to determine if a limit is specified

* add more docs to the processRequest method

* add constants for request payload field lengths

* add const noLimits to specify that limit=0 means no limits
2018-07-02 09:38:10 +02:00
Andrea Franz b913c98573
remove formatting from metrics.ResettingTimer when requested in raw format (#1052) 2018-06-27 11:46:50 +02:00
Pedro Pombeiro 3b052098fe Update to geth 1.8.11. Closes #1033
- Replace deprecated common.Hex with hexutil.Encode.
- Remove upstreamed 0010-geth-17-fix-npe-in-filter-system.patch.
- Remove upstreamed 0020-discv5-metrics.patch.
- Remove upstreamed 0026-ethdb-error-deadlock.patch.
- Update goleveldb to same version used by geth 1.8.11.
- Update PublicTransactionPoolAPI.GasPrice return type to match type in internal geth interface.
2018-06-22 18:04:13 +02:00
Adrià Cidre 51ab9053ab
[#1040] Patch go-ethereum reducing from Warn to Info "message loop" logs (#1048) 2018-06-22 11:57:52 +02:00
Andrea Franz fa390a52ae
RequestHistoricMessages response (#1009)
* refactor TestRequestMessageFromMailboxAsync to use s.requestHistoricMessages helper

* send p2pRequestResponseCode from mailserver

* send p2p message response to after sending all historic messages

* mailserver sends `whisper.NewSentMessage` as response

* add mailserver Client and p2pRequestAckCode watchers

* send event with envelopeFeed when p2pRequestAckCode is received

* test request completed event in tracker

* rename mailserver response events and code to RequestCompleteCode

* wait for mailserver response in e2e test

* use SendHistoricMessageResponse method name for mailserver response

* fix lint warnings

* add mailserver request expiration

* send mailserver response without envelope

* add `ttl` to Request struct in shhext_requestMessages

* test that tracker calls handler.MailServerRequestExpired

* add geth patch

* rename TTL to Timeout

* split tracker.handleEvent in multiple methods
2018-06-15 17:12:31 +02:00
Pedro Pombeiro 354e23aaf5 Fix issues reported by lint. Part of #1017 2018-06-14 13:52:51 +02:00
Adam Babik 8ce6efc749
Make statusd distinct from StatusIM client (#1008) 2018-06-08 11:20:30 +02:00
Andrea Franz 5d0120ee28
add Dockerfile and Makefile tasks to build statusd-prune docker image (#1005)
* add Dockerfile and Makefile tasks to build statusd-prune docker image

* add image ENTRYPOINT

* set default CMD to statusd-prune
2018-06-07 12:30:18 +02:00
Adam Babik b5f05b1ab5
Fix flaky TestSingleTopicDiscoveryWithFailover and others (#992)
Other changes:
* needed to patch that loop implementation in Discover V5 implementation in go-ethereum,
* fixed TestStatusNodeReconnectStaticPeers,
* fixed TestBackendAccountsConcurrently.
2018-05-26 09:37:13 +02:00
Dmitry Shulyak ed1cdf0418
Custom status bootnodes (#968)
This change makes invalidation mechanism more aggressive. With a primary goal to invalidate short living nodes faster. In current setup any node that became known in terms of discovery will stay in this state until it will fail to respond to 5 queries. Removing them earlier from a table allows to reduce latency for finding required nodes.

The second change, one adds a version for discovery, separates status dht from ethereum dht.
After we rolled out discovery it became obvious that our boot nodes became spammed with irrelevant nodes. And this made discovery process very long, for example with separate dht discovery takes ~2s, with mutual dht - it can take 1m-10m and there is still no guarantee to find a max amount of peers, cause status nodes is a very small part of whole ethereum infra.

In my understanding, we don't need to be a part of ethereum dht, and lower latency is way more important for us.

Closes: #941
Partially closes: #960 (960 requires futher investigations on devices)
2018-05-18 16:43:07 +03:00
Adam Babik 6da469140f
Refactor in-app metrics (#963)
Remove Prometheus and other metric types and use metrics package from go-ethereum.
2018-05-16 17:36:59 +02:00
Dmitry Shulyak ca962ddaa3 Whisper broadcast loop spams way too hard with debug level 2018-05-16 17:54:40 +03:00
Dmitry Shulyak 5aae87aba8
Prevent sending messages to flaky peers (#917) 2018-05-15 20:08:31 +03:00
Ivan Danyliuk 6fec9fa653 Bump up Go version to 1.10 2018-05-09 16:13:34 +02:00
Dmitry Shulyak 7aa508765e Set timesource from config (#915) 2018-05-08 13:38:54 +03:00
Dmitry Shulyak 84cb5ca917 Ensure that wg.Add is called before wg.Wait
Now if Add is to be called it will be called before Wait, this is achieved
by doing following:
- if cancel() gets lock first and closes channelCh before spawnSync is called
we will exit right away
- if not than we will ensure that we hold a lock until syncers are spawned
so that cancel() will be blocked for this time and it will prevent whole Terminate() from
progressing
2018-05-04 10:28:15 +02:00
Dmitry Shulyak 707221954f
Make whisper tolerant to local time skews (#864)
This change adds adds an ability to use different source of time for whisper:

when envelope is created it is used to set expiry
to track when envelope needs to be expired
This time is then used to check validity of the envelope when it is received. Currently If we receive an envelope that is sent from future - peer will get disconnected. If envelope that was received has an expiry less then now it will be simply dropped, if expiry is less than now + 10*2 seconds peer will get dropped.

So, it is clear that whisper depends on time. And any time we get a skew with peers that is > 20s reliability will be grealy reduced.

In this change another source of time for whisper will be used. This time source will use ntp servers from pool.ntp.org to compute offset. When whisper queries time - this offset will be added/substracted from current time.

Query is executed every 2 mins, queries 5 different servers, cut offs min and max and the computes mean value. pool.ntp.org is resolved to different servers and according to documentation you will rarely hit the same.

Closes: #687
2018-05-04 11:23:38 +03:00
Pedro Pombeiro acbf251a3c Fix race condition in `LDBDatabase.Close()`
- https://jenkins.status.im/job/status-go/job/race-check/54/consoleFull
2018-05-03 20:39:42 +03:00
Dmitry Shulyak c8a553f9c1 Fix 0002 xgo patch which changed because metrics got forked 2018-05-02 22:59:54 +02:00
Pedro Pombeiro 4438d116b1 Ensure that Travis CI fails the build if the patches are incorrect 2018-05-02 13:28:39 +02:00