status-go/go.mod

87 lines
4.0 KiB
Modula-2
Raw Normal View History

2019-06-09 07:24:20 +00:00
module github.com/status-im/status-go
2019-10-14 14:10:48 +00:00
go 1.13
2019-06-09 07:24:20 +00:00
go-ethereum: Drop throttling of inbound connections 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>
2021-02-09 15:56:08 +00:00
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
2020-12-15 16:48:15 +00:00
replace github.com/nfnt/resize => github.com/status-im/resize v0.0.0-20201215164250-7c6d9f0d3088
2019-06-09 07:24:20 +00:00
require (
github.com/PuerkitoBio/goquery v1.6.0 // indirect
2019-06-09 07:24:20 +00:00
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
2020-07-27 18:21:37 +00:00
github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 // indirect
2020-03-09 07:55:58 +00:00
github.com/golang/mock v1.4.1
github.com/golang/protobuf v1.3.4
github.com/google/uuid v1.1.1
2020-07-27 18:21:37 +00:00
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
Feature/key compression (#1990) ## What has changed? I've introduced to the public binding functionality that will compress and decompress public keys of a variety of encoding and key types. This functionality supports all major byte encoding formats and the following EC public key types: - `secp256k1` pks - `bls12-381 g1` pks - `bls12-381 g2` pks ## Why make the change? We want shorter public (chat) keys and we want to be future proof and encoding agnostic. See the issue here https://github.com/status-im/status-go/issues/1937 --- * Added basic signature for compresspk and uncompresspk * Added basic encoding information * make vendor * formatted imports for the linter * Reformatted imports hoping linter likes it * This linter is capricious * Added check that the secp256k1 key is valid * Added test for valid key * Added multiformat/go-varint dep * Added public key type handling * Added key decompression with key type handling * Added handling for '0x' type indentifying * Added more robust testing * Less lint for the linting gods * make vendor for bls12_381 * Added bls12-381 compression tests * Added decompress key expected results * Refactor of typed and untyped keys in tests * Lint god appeasment * Refactor of sample public keys * Implemented bls12-381 decompression * gofmt * Renamed decode/encode funcs to be more descriptive * Added binary bindings for key de/compression * Refactor of func parameters gomobile is a bit tempermental using raw bytes as a parameter, so I've decided to use string only inputs and outputs * gofmt * Added function documentation * Moved multiformat de/compression into api/multiformat ns * Moved multiformat de/compression into api/multiformat ns * Changed compress to serialize on API
2020-06-23 10:47:17 +00:00
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
2020-07-27 18:21:37 +00:00
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
2020-07-27 18:21:37 +00:00
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
Feature/key compression (#1990) ## What has changed? I've introduced to the public binding functionality that will compress and decompress public keys of a variety of encoding and key types. This functionality supports all major byte encoding formats and the following EC public key types: - `secp256k1` pks - `bls12-381 g1` pks - `bls12-381 g2` pks ## Why make the change? We want shorter public (chat) keys and we want to be future proof and encoding agnostic. See the issue here https://github.com/status-im/status-go/issues/1937 --- * Added basic signature for compresspk and uncompresspk * Added basic encoding information * make vendor * formatted imports for the linter * Reformatted imports hoping linter likes it * This linter is capricious * Added check that the secp256k1 key is valid * Added test for valid key * Added multiformat/go-varint dep * Added public key type handling * Added key decompression with key type handling * Added handling for '0x' type indentifying * Added more robust testing * Less lint for the linting gods * make vendor for bls12_381 * Added bls12-381 compression tests * Added decompress key expected results * Refactor of typed and untyped keys in tests * Lint god appeasment * Refactor of sample public keys * Implemented bls12-381 decompression * gofmt * Renamed decode/encode funcs to be more descriptive * Added binary bindings for key de/compression * Refactor of func parameters gomobile is a bit tempermental using raw bytes as a parameter, so I've decided to use string only inputs and outputs * gofmt * Added function documentation * Moved multiformat de/compression into api/multiformat ns * Moved multiformat de/compression into api/multiformat ns * Changed compress to serialize on API
2020-06-23 10:47:17 +00:00
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
2020-12-15 16:48:15 +00:00
github.com/nfnt/resize v0.0.0-00010101000000-000000000000
github.com/okzk/sdnotify v0.0.0-20180710141335-d9becc38acbd
2020-07-27 18:21:37 +00:00
github.com/olekukonko/tablewriter v0.0.2 // indirect
github.com/oliamb/cutter v0.2.2
2020-07-27 18:21:37 +00:00
github.com/onsi/ginkgo v1.10.3 // indirect
github.com/onsi/gomega v1.7.1 // indirect
github.com/pborman/uuid v1.2.0
2020-03-09 07:55:58 +00:00
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
2019-06-09 07:24:20 +00:00
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
2019-10-14 14:10:48 +00:00
github.com/status-im/migrate/v4 v4.6.2-status.2
2019-06-09 07:24:20 +00:00
github.com/status-im/rendezvous v1.3.0
2020-03-04 08:30:31 +00:00
github.com/status-im/status-go/extkeys v1.1.2
github.com/status-im/tcp-shaker v0.0.0-20191114194237-215893130501
2020-03-09 07:55:58 +00:00
github.com/stretchr/testify v1.5.1
2019-06-09 07:24:20 +00:00
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
2020-07-27 18:21:37 +00:00
go.uber.org/multierr v1.4.0 // indirect
2019-11-25 20:16:00 +00:00
go.uber.org/zap v1.13.0
2020-01-08 11:12:23 +00:00
golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c
2020-10-02 10:57:54 +00:00
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
2020-07-27 18:21:37 +00:00
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect
golang.org/x/tools v0.0.0-20200211045251-2de505fc5306 // indirect
2020-07-27 18:21:37 +00:00
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
2019-06-09 07:24:20 +00:00
gopkg.in/natefinch/lumberjack.v2 v2.0.0
2020-07-27 18:21:37 +00:00
gopkg.in/yaml.v2 v2.2.6 // indirect
2019-06-09 07:24:20 +00:00
)