mirror of
https://github.com/status-im/status-go.git
synced 2025-01-10 06:36:32 +00:00
Jakub Sokołowski
fe8dab7391
This fix puts an end to a saga that essentially start during the Status Prague Meetup at the end of October 2018. At the time we were experiencing massive issues with `Connecting...` spinners in the app in the venue we rented. We were pulling our hairs out what to do and we could not find the cause of the issue at the time. Three months later I deployed the following change: https://github.com/status-im/infra-eth-cluster/commit/63a13eed Which used `iptables` to map the `443` port onto our `30504` Status node port using `PREROUTING` chain and `REDIRECT` jump in order to fix issues people have been complaining about when using WiFi networks in various venues: https://github.com/status-im/status-react/issues/6351 Our thinking when trying to resolve the reported issue assumed that some networks might block outgoing connections on non-standard ports other than the usual `80`(HTTP)/`443`(HTTPS) which would disrupt Status connectivity. While this fix could have indeed helped a few edge cases, what it really did was cause the Status node to stop seeing actual public IPs of the clients. But __pure accident__ this change caused the code we inherited from `go-ethereum` implementation of DevP2P protocol to stop throttling new incoming connections, because the IP as which they appeared was a `172.16.0.0/12` network address of the Docker bridge. The `go-ethereum` code used the `!netutil.IsLAN(remoteIP)` check to avoid throttling connections from local addresses, which included the local Docker bridge address: https://github.com/status-im/status-go/blob/82680830/vendor/github.com/ethereum/go-ethereum/p2p/netutil/net.go#L36 The fix intended to target a small number of networks with fortified firewall configuration accidentally resolved our issues with `Connecting...` prompts that our application showed us en masse during our Prauge Meetup. Part of the reason for that is that venues like that normally give out local IP addresses and use NAT to translate them onto the only public IP address they possess. Since out application is supposed to be usable from within networks behind NAT like airport WiFi networks for example, it makes no sense to keep the inbound connection throttle time implemented in `go-ethereum`. I'm leaving `inboundThrottleTime` in because it's used to calculate value for `dialHistoryExpiration` in: `vendor/github.com/ethereum/go-ethereum/p2p/dial.go` I believe reducing that value one we deploy this change should also increase the speed with which the Status application is able to reconnect to a node that was temporarily unavailable, instead waiting the 5*30 seconds. Research issue: https://github.com/status-im/infra-eth-cluster/issues/35 Signed-off-by: Jakub Sokołowski <jakub@status.im>
87 lines
4.0 KiB
Modula-2
87 lines
4.0 KiB
Modula-2
module github.com/status-im/status-go
|
|
|
|
go 1.13
|
|
|
|
replace github.com/ethereum/go-ethereum v1.9.5 => github.com/status-im/go-ethereum v1.9.5-status.10
|
|
|
|
replace github.com/Sirupsen/logrus v1.4.2 => github.com/sirupsen/logrus v1.4.2
|
|
|
|
replace github.com/docker/docker => github.com/docker/engine v1.4.2-0.20190717161051-705d9623b7c1
|
|
|
|
replace github.com/nfnt/resize => github.com/status-im/resize v0.0.0-20201215164250-7c6d9f0d3088
|
|
|
|
require (
|
|
github.com/PuerkitoBio/goquery v1.6.0 // indirect
|
|
github.com/beevik/ntp v0.2.0
|
|
github.com/btcsuite/btcd v0.20.1-beta
|
|
github.com/cenkalti/backoff/v3 v3.2.2
|
|
github.com/davecgh/go-spew v1.1.1
|
|
github.com/deckarep/golang-set v1.7.1
|
|
github.com/ethereum/go-ethereum v1.9.5
|
|
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect
|
|
github.com/go-playground/universal-translator v0.17.0 // indirect
|
|
github.com/golang-migrate/migrate/v4 v4.8.0 // indirect
|
|
github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 // indirect
|
|
github.com/golang/mock v1.4.1
|
|
github.com/golang/protobuf v1.3.4
|
|
github.com/google/uuid v1.1.1
|
|
github.com/gorilla/mux v1.7.3 // indirect
|
|
github.com/jinzhu/copier v0.0.0-20190924061706-b57f9002281a
|
|
github.com/karalabe/usb v0.0.0-20191104083709-911d15fe12a9 // indirect
|
|
github.com/keighl/metabolize v0.0.0-20150915210303-97ab655d4034
|
|
github.com/kilic/bls12-381 v0.0.0-20200607163746-32e1441c8a9f
|
|
github.com/leodido/go-urn v1.2.0 // indirect
|
|
github.com/lib/pq v1.9.0
|
|
github.com/libp2p/go-libp2p v0.4.2 // indirect
|
|
github.com/libp2p/go-libp2p-core v0.2.4
|
|
github.com/lucasb-eyer/go-colorful v1.0.3
|
|
github.com/mat/besticon v3.12.0+incompatible
|
|
github.com/mattn/go-colorable v0.1.4 // indirect
|
|
github.com/mattn/go-isatty v0.0.10 // indirect
|
|
github.com/mattn/go-pointer v0.0.0-20190911064623-a0a44394634f
|
|
github.com/mattn/go-runewidth v0.0.6 // indirect
|
|
github.com/mattn/go-sqlite3 v1.12.0 // indirect
|
|
github.com/multiformats/go-multiaddr v0.1.1
|
|
github.com/multiformats/go-multibase v0.0.1
|
|
github.com/multiformats/go-varint v0.0.5
|
|
github.com/mutecomm/go-sqlcipher v0.0.0-20190227152316-55dbde17881f
|
|
github.com/nfnt/resize v0.0.0-00010101000000-000000000000
|
|
github.com/okzk/sdnotify v0.0.0-20180710141335-d9becc38acbd
|
|
github.com/olekukonko/tablewriter v0.0.2 // indirect
|
|
github.com/oliamb/cutter v0.2.2
|
|
github.com/onsi/ginkgo v1.10.3 // indirect
|
|
github.com/onsi/gomega v1.7.1 // indirect
|
|
github.com/pborman/uuid v1.2.0
|
|
github.com/pkg/errors v0.9.1
|
|
github.com/prometheus/client_golang v1.5.0
|
|
github.com/russolsen/ohyeah v0.0.0-20160324131710-f4938c005315 // indirect
|
|
github.com/russolsen/same v0.0.0-20160222130632-f089df61f51d // indirect
|
|
github.com/russolsen/transit v0.0.0-20180705123435-0794b4c4505a
|
|
github.com/status-im/doubleratchet v3.0.0+incompatible
|
|
github.com/status-im/keycard-go v0.0.0-20200107115650-f38e9a19958e // indirect
|
|
github.com/status-im/markdown v0.0.0-20201022101546-c0cbdd5763bf
|
|
github.com/status-im/migrate/v4 v4.6.2-status.2
|
|
github.com/status-im/rendezvous v1.3.0
|
|
github.com/status-im/status-go/extkeys v1.1.2
|
|
github.com/status-im/tcp-shaker v0.0.0-20191114194237-215893130501
|
|
github.com/stretchr/testify v1.5.1
|
|
github.com/syndtr/goleveldb v1.0.0
|
|
github.com/tsenart/tb v0.0.0-20181025101425-0d2499c8b6e9
|
|
github.com/vacp2p/mvds v0.0.24-0.20201124060106-26d8e94130d8
|
|
github.com/wealdtech/go-ens/v3 v3.3.0
|
|
go.uber.org/multierr v1.4.0 // indirect
|
|
go.uber.org/zap v1.13.0
|
|
golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c
|
|
golang.org/x/image v0.0.0-20200927104501-e162460cd6b5
|
|
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e
|
|
golang.org/x/text v0.3.3 // indirect
|
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect
|
|
golang.org/x/tools v0.0.0-20200211045251-2de505fc5306 // indirect
|
|
google.golang.org/genproto v0.0.0-20191115221424-83cc0476cb11 // indirect
|
|
google.golang.org/grpc v1.25.1 // indirect
|
|
gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
|
|
gopkg.in/go-playground/validator.v9 v9.31.0
|
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
|
gopkg.in/yaml.v2 v2.2.6 // indirect
|
|
)
|