Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem: inability to use remote infrastructure #46

Merged
merged 16 commits into from Apr 27, 2018

Conversation

yrashk
Copy link
Contributor

@yrashk yrashk commented Apr 27, 2018

This pull request embeds two separately merged features: RPC and transaction signing

edwardmack and others added 16 commits April 19, 2018 09:51
Using IPC means bridge has to run alognside the node
on the same machine. This, at times, presents problems
in terms of efficiency or coupling of deployment.

Solution: switch to RPC
The inner workings of choosing IPC vs RPC haven't been worked out.

Solution: remove IPC in favour of RPC
RPC patch has introduced a separate basic test that, on the surface
of it, is not too dissimilar from the basic deposit and withdrawal
test already defined in integration tests.

Solution: make sure integration tests run and remove newly introduced test
This directory doesn't reallly do anything to RPC.

Solution: extract it
Solution: remove it from the manifest
This file is unrelated to the RPC patch

Solution: remove it
Solution: use format!() macro instead of manual concatenation
Solution: remove `ipc` parameter to make them compile
As a part of the original feature request, there was a need
for the bridge to be able to sign its own transactions. However,
this didn't fully materialize in the original patch, and only
configuration parameters were implemented.

Solution: remove these last conflated bits
and make this a pure transport change patch.
This means that the node has to sign the transaction itself.
It might be acceptable in a localized setup, but can't be used
with untrusted setups. For example, once HTTP RPC is supported,
we can't really use infrastructure like INFURA to send transactions.

Solution: switch to signing transactions in bridge

This absolutely requires separating the accounts used by validators
and administrative tasks as this will otherwise interfere with
management of nonces.
On my computer, this takes approximately 0.3 seconds, which is clearly
a deal-breaker. In retrospect, this is an obvious problem because
of key derivation function use.

Solution: unlock accounts permanently.

This cut down time to sign one transaction is 0.0001 or so.
It isn't really necessary for anything that I can see.

Solution: remove it
Solution: upgrade web3 to the version which has support for TLS
@ghost ghost assigned yrashk Apr 27, 2018
@ghost ghost added the in progress label Apr 27, 2018
@akolotov akolotov merged commit 8d10a79 into omni:master Apr 27, 2018
@ghost ghost removed the in progress label Apr 27, 2018
noot pushed a commit to noot/poa-bridge that referenced this pull request Jul 18, 2018
Problem: inability to use remote infrastructure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants