Commit Graph

603 Commits

Author SHA1 Message Date
Alexander Kolotov 924e0ad79c
Merge pull request #121 from andogro/ag-README-updates
Added note regarding non-production status
2018-10-16 23:00:23 +03:00
Andrew Gross 90c51d8349 Added note regarding non-production status 2018-10-16 13:19:49 -06:00
Alexander Kolotov f7bcbd7d5c
Merge pull request #116 from poanetwork/kolotov-fix-config-example
fixed names of configuration parameters in transactions section
2018-07-27 23:42:26 +03:00
Alexander Kolotov b9406fa7de fixed names of configuration parameters in transactions section 2018-07-27 23:39:58 +03:00
Alexander Kolotov b6428dbad0
Merge pull request #113 from poanetwork/kolotov-config-cleanup
Example config cleanup
2018-07-27 23:01:13 +03:00
Alexander Kolotov 286044394f configuration parameters in examples updated with more relevant values 2018-07-27 22:57:57 +03:00
Alexander Kolotov 35a770128a legacy configuration options removed from documentation 2018-07-27 00:20:20 +03:00
Alexander Kolotov 13f78f5aad
Merge pull request #112 from poanetwork/kolotov-readme-update
Update readme to reflect difference from parent project
2018-07-26 08:59:21 +03:00
Alexander Kolotov d2b284fd76 section to contains difference from parity-bridge added to readme 2018-07-25 18:24:11 +03:00
Alexander Kolotov 7c429798b3
Merge pull request #82 from yrashk/required-signatures
Problem: required_signatures is static
2018-07-05 12:34:20 +03:00
Yurii Rashkovskii 69474ce7a1
Problem: Travis CI job still takes too long and times out
Solution: remove bridge unit tests

In a pinch, integration tests are more important.
2018-06-15 20:52:16 -07:00
Yurii Rashkovskii 3282916b8c
Problem: Travis CI job takes too long (50 mins)
Solution: try to optimize test/build time by doing `release` only
instead of doing both `debug` and `release` targets
2018-06-15 18:01:41 -07:00
Yurii Rashkovskii da79a4a9c5
Problem: Travis CI fails to publish a build
Solution: correct a typo in path used to retrieve the build from
2018-06-15 15:53:10 -07:00
Yurii Rashkovskii d7b0f6d0ce
Problem: Travis CI fails
When trying to run Parity in integration tests, the following
error stops it:

```
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by parity)
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by parity)
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by parity)
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by parity)
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by parity)
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by parity)
```

Solution: use Snap to install Parity to attempt to avoid this problem
2018-06-15 15:07:42 -07:00
Yurii Rashkovskii 903c4c55bf
Problem: Travis CI fails
When trying to run Parity in integration tests, the following
error stops it:

```
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by parity)
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by parity)
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by parity)
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by parity)
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by parity)
parity: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by parity)
```

Solution: attempt to fix it getting the proper toolchain
2018-06-15 14:39:25 -07:00
Yurii Rashkovskii 3357134e02
Problem: Travis CI fails
```
cargo:warning=etc/hidapi/linux/hid.c:44:21: fatal error: libudev.h: No such file or directory
```

Solution: install libudev-dev
2018-06-15 14:22:54 -07:00
Yurii Rashkovskii dbc3bd80ab
Problem: Travis CI fails
Solution: use proper commands for running tests
2018-06-15 14:21:31 -07:00
Yurii Rashkovskii 5ea6bb185d
Problem: Travis CI fails
Solution: don't change directory before the script
2018-06-15 14:08:06 -07:00
Yurii Rashkovskii fabdede30e
Problem: Travis CI does a shallow clone
This is problematic becase it will affect the ability
to find tags.

Solution: disable shallow cloning
2018-06-15 14:07:00 -07:00
Yurii Rashkovskii 79fe3be8df
Problem: Travis CI fails
Solution: fix a mistake in the script
2018-06-15 14:05:32 -07:00
Yurii Rashkovskii 18301ae627
Problem: hard to get release builds
This involves cloning the repository, installing dependencies
and building the bridge.

Solution: [re-]establish CI to test & upload builds
2018-06-15 14:01:21 -07:00
Yurii Rashkovskii 5383062acf
Merge pull request #104 from yrashk/oracle-gas-price-config-example
Problem: gas price configuration in examples
2018-06-13 13:34:33 -07:00
Yurii Rashkovskii ebfdc34ccd
Problem: gas price configuration in examples
It's confusing that gas price oracle is used on the
home side of the bridge, as opposed to the foreign one,
because gas price is fixed on POA.

Solution: flip the gas price configuration example between sides
2018-06-12 18:38:13 -07:00
Yurii Rashkovskii 2a69de9397
Problem: not clear what 0.3.0 has in it
Solution: update release notes

Closes #102
2018-06-05 02:11:04 -07:00
Yurii Rashkovskii 0968c6f578
Merge pull request #86 from yrashk/force-tls
Problem: insecure RPCs are subject to MITM attacks
2018-06-04 14:33:50 -07:00
Yurii Rashkovskii 18802df14c
Problem: insecure RPCs are subject to MITM attacks
Solution: by default, disallow use of non-TLS RPC endpoints

For testing, there's an escape hatch of a command line
argument `--allow-insecure-rpc-endpoints` (purposefully
long) that will reduce the severity of using a non-TLS
RPC endpoint to a warning in a log file.

It was not made to be a configuration file option to reduce
the risk of this option slipping into a production configuration
file by mistake.

Closes #79
2018-06-04 14:33:32 -07:00
Yurii Rashkovskii d4de1c824f
Problem: can't merge "required_signatures is static"
This is because other changes on master are in conflict.

Solution: merge and resolve conflicts

Merge remote-tracking branch 'origin/master' into required-signatures
2018-06-04 14:27:13 -07:00
Yurii Rashkovskii 036e83ece2
Merge pull request #97 from yrashk/validate-config
Problem: config allows arbitrary keys to be passed
2018-06-04 14:18:37 -07:00
Yurii Rashkovskii b890ada627
Problem: config allows arbitrary keys to be passed
This means that a misspelled config field can cause a lot
of confusion -- things won't work as expected.

Solution: restore more restrictive config deserialization
where unknown keys would trigger an error
2018-06-04 14:17:29 -07:00
Yurii Rashkovskii bbda17d906
Merge pull request #94 from yrashk/accounts-deprecation
Problem: authorities.accounts config setting is obsolete
2018-06-04 14:15:29 -07:00
Yurii Rashkovskii 13ececff18
Merge pull request #96 from yrashk/build-version
Problem: hard to check which version the bridge is
2018-06-04 14:15:12 -07:00
Yurii Rashkovskii 9b131a2385
Merge pull request #95 from yrashk/mod-refactor
Problem: potential loss of database updates
2018-06-04 14:14:45 -07:00
Yurii Rashkovskii 47541b067f
Merge pull request #100 from yrashk/parallel-http
Problem: slow performance and regular timeouts sending transactions
2018-06-04 14:14:31 -07:00
Yurii Rashkovskii 6823a208f8
Merge pull request #98 from poanetwork/phahulin-patch-1
Fix parameter name in README
2018-06-01 19:01:48 -07:00
Yurii Rashkovskii ae8cc1552f
Problem: slow performance and regular timeouts sending transactions
Solution: fix the maximum number of concurrent HTTP request
at a transport level.

It is set by default to 64 and there's now a new configuration
parameter (`concurrent_http_requests`) in `home` and `foreign`
sections. Previously used `concurrency` parameter from transactions
configuration has been removed.
2018-06-01 18:31:47 -07:00
phahulin 297388a4c0
Fix parameter name in README
Change `gas_price_speed_type` to `gas_price_speed`
2018-06-01 11:46:59 +03:00
Yurii Rashkovskii b46ab21417
Problem: hard to understand what changed recently
Solution: write up release notes
2018-05-31 14:17:48 -07:00
Yurii Rashkovskii 813a8715f9
Problem: hard to check which version the bridge is
Solution: introduce `bridge -v|--version` flag to print the version

The version is built off `git describe`, however, as a backup,
if `git describe` fails (stripped .git, etc.), this will fall back
to whatever is specified in Cargo.toml

Fixes #87
2018-05-31 14:05:19 -07:00
Yurii Rashkovskii b7d7dd3a97
Bump version to 0.3.0 2018-05-31 13:45:34 -07:00
Yurii Rashkovskii 3ea15931fb
Prepare 0.2.1 2018-05-31 11:06:12 -07:00
Alexander Kolotov 6cb2c5689a
Merge pull request #93 from yrashk/gas-price-errors
Problem: bridge panics if there's an error retrieving gas price
2018-05-30 17:05:14 +03:00
Yurii Rashkovskii b68f23558b
Problem: authorities.accounts config setting is obsolete
Solution: make it only accessible when `deploy` feature is on
(for integration tests)

Closes #73
2018-05-28 11:15:51 -07:00
Yurii Rashkovskii 4404af9a5f
Problem: GasPriceStream using web3 timeout
However, this is different infrastructure and
might have different requirements.

Solution: use gas_price_timeout
2018-05-28 10:06:38 -07:00
Yurii Rashkovskii 8082daa392
Problem: gas price retrieving is not tested well
Solution: extract price retrieving from GasPriceStream
and test it.
2018-05-28 10:04:15 -07:00
Yurii Rashkovskii af81eb0d57
Problem: potential loss of database updates
chance of loss of database updates that would cause it to redo
transactions it already did.

Let's say we've got some database updates through deposit relaying:
https://github.com/poanetwork/poa-bridge/blob/master/bridge/src/bridge/mod.rs#L164-L165

Then, during relaying withdrawals, an error happened:
https://github.com/poanetwork/poa-bridge/blob/master/bridge/src/bridge/mod.rs#L171-L172

This means that we won't reach
https://github.com/poanetwork/poa-bridge/blob/master/bridge/src/bridge/mod.rs#L185-L193
to save the result.

Also, in a similar vein, if one of these streams was to end
(`Ready(None)`) we'd experience a similar loss of updates:
https://github.com/poanetwork/poa-bridge/blob/master/bridge/src/macros.rs#L5

Solution: refactor bridge into two streams, splitting responsibilities

One stream (`BridgeEventStream`) returns `BridgeChecked` and the other
(`Bridge`) writes those checks down to the database.

This way we're not accumulating chcecks before we serialize them,
risking not serializing them at all in the event of an unrelated error.

Fixes #84
2018-05-25 17:31:11 -07:00
Yurii Rashkovskii 277ac03e00
Merge pull request #90 from poanetwork/update-gas-price-docs
Problem: the readme and example config TOML files include obsolete gas-price config options
2018-05-25 12:04:25 -07:00
Peter van Nostrand cd43c2dfcb Added underscores to example gas-prices in docs to improve readability. 2018-05-25 08:25:08 -04:00
Yurii Rashkovskii dc5bba0c3c
Problem: bridge panics if there's an error retrieving gas price
Solution: instead, log an error and use previous price
2018-05-25 01:42:29 -07:00
Yurii Rashkovskii 5e3e341f5e
Merge pull request #92 from poanetwork/enforce-minimum-required-rustc-version
Problem: not enforcing a minimum required rustc version could lead to build-time errors
2018-05-24 17:16:48 -07:00
Peter van Nostrand d480d57a84 Problem: not enforcing a minimum required rustc version could lead to build-time errors
Solution: add a mechanism to enforce a minimum required rustc version
in the bridge's build script
2018-05-24 20:13:05 -04:00