Svyatoslav Nikolsky
52c1913fff
Extract minimal Rialto-Sub and Millau-Sub clients ( #365 )
...
* extracting sub clients
* fmt + lost docs
* revert enum BridgeInstance
* apply suggestions from review
* explicite debug impl
* remove unused imports from Millau
* fix typo
* fix instance + API name
* Update relays/ethereum/src/ethereum_sync_loop.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* separate crates for millau and rialto client
* cargo fmt
* fix
* fmt
* remove no_std support
* fix compilation again
* Update relays/substrate-client/Cargo.toml
* Update relay clients to Substrate 2.0
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
Co-authored-by: Hernando Castano <castano.ha@gmail.com >
2024-04-10 10:28:37 +02:00
Hernando Castano
acb78b0595
Fix panic when no instance is passed to certain CLI options ( #275 )
2024-04-10 10:28:37 +02:00
Hernando Castano
7f8360d8ab
Support Pallet Instances in Relay ( #238 )
...
* Sketch out how to support different bridge pallet instances
* Create a common interface for using pallet instances
* Start introducing generic instance parameter
Attemps to make the compiler happy, but I'm having second thoughts about
this approach. Commiting now as a way to have a checkpoint, but I think
I'm going to need to re-consider my approach here.
Ideally I want a change which introduces minimal changes, but this seems
to be propagating around the codebase in ways I don't want.
* Use trait objects instead of generics
* Implement traits for Boxed trait objects
This is done in order to statisfy trait bounds by types
which use these new trait objects
* Remove Clone usage for sync parameters
* Remove implementation of Default for sync params
* Require that BridgeInstance implements Debug
* Ensure that BridgeInstance trait implements Send/Sync
* Add documentation related to instances
* Rust Fmt
* Remove needless format
* Make instance CLI option case insensitive
* Replace `with_*` constructors with `new`
* Clean up usage of instance structs
* Enforce a default instance in the CLI params
* Build sync params as we process input from CLI
* Remove case insensitivity from sub-tx-mode
I think this should happen, but maybe as part of a different PR
* Process default Eth contract deployment config in CLI
* Build EthereumExchangeParams in CLI
* Process EthereumExchangeSubmitParams params in CLI
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
fddfbb5b1c
Submit exchange transactions to PoA node ( #229 )
...
* submit Eth exchange transactions
* submit ethereum in docker-compose
* submit Eth exchange transactions
* fix duplicate message
* fix relay script
* lost file
* cargo fmt --all
* cargo +nightly clippy
* Show sccache
* remove test-helpers remains
* what's going on with jsonrpsee + Cargo.lock?
* relay-eth-submit-exchange-tx -> poa-exchange-tx-generator
* Update relays/ethereum/src/main.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* configuring exchange-gen loop using env variables
* fixed signer account from dev chain to Arthur
* improve debug prints
* parse nonce from relay output
* --eth-nonce=
* fix compilation
* cargo fmt --all
* fix typo
* duplicate relay output to tty
* allow using from bash scripts tests
* fix: U256::parse() expects hex string :/
* cargo fmt --all
* BRIDGE_HASH: ${BRIDGE_HASH:-master}
* script comment
* generate exchange PoA transactions by Bertha
* Bertha address
Co-authored-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com >
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
0be27839bc
Auto exchange transactions relay metrics ( #237 )
...
* auto exchange tx relay dashboard
* cargo fmt --all
* single metrics startup fn
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
c4424e5b73
Auto relay exchange transactions ( #227 )
...
* auto relay exchange transactions
* docker + auto-relay-tx
* clippy
* jsonrpsee in Cargo.lock ???
* fix tests compilation
* Show sccache
* mute clippy
* move
* Update relays/ethereum/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* finish comment
* (bool, String) -> StringifiedMaybeConnectionError
* Update deployments/rialto/docker-compose.yml
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
Co-authored-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com >
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
8121b3f82b
Relay dashboard ( #191 )
...
* expose metrics for Prometheus
* added preconfigured configs for Prometheus and Grafana
* metrics-related cli args
* fix compilation
2024-04-10 10:28:37 +02:00
Tomasz Drwięga
bebb5e6035
Rialto test network setup ( #163 )
...
* Dockerfile for OpenEth.
* Add relayer dockerfile.
* Add docker-compose.
* Working on the relay.
* Bump a bunch of deps.
* Change relay branch.
* Running a 3-validators poa network.
* Add bridge nodes.
* Conditional compilation of bridge configs.
* Fix genesis hash.
* Disable features build.
* Disable empty steps.
* Work on sub2eth
* Add some logs.
* More logs.
* Fix compilation.
* Add chain-id parameter to relay.
* Unify bridge-hash.
* Update the hash.
* Ditch sub2eth for now.
* Add some docs & proxy configuration.
* Fixes.
* Fix remaining issues.
* Increase health timeout.
* Make sure to install curl for health monitoring.
* Fix kovan.
* Fix build.
* Create if does not exist.
* Fix benches.
* Revert CLI params requirements.
* cargo fmt --all
* Apply suggestions from code review
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Add some docs.
* Update BRIDGE_HASH to master
* Duplicate compose file.
* Rename testpoa to Rialto.
* Fix borked merge.
* Fix entrypoints to take arguments.
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
a7208c05e0
Relay PoA lock-funds transactions proofs ( #177 )
...
* relay exchange transaction(s)
* fixed Ethereum::get_block_by_hash
* added exchange trace
* fixed method name
* update for new web3
* svyatonik/rust-web3 -> tomusdrw/rust-web3
* if let Some() -> .expect()
* extracted loops in separate functions
* use yaml references (TIL)
* get eth header with transactions
* cargo fmt --all
* Update primitives/ethereum-poa/src/lib.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/ethereum_exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/rpc_errors.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* removed comment
* Update relays/ethereum/src/ethereum_exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/ethereum_exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* module-level comments
* updated readme
* use web3 from crates.io
* added missing fields info in error description
* cargo fmt --all
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
3d15ac7c90
Solidity contract that accepts unverified substrate headers ( #65 )
...
* solidity contract
* continue
* upd
* cargo update
* fixes
* ehtereum_headers -> headers
* extracted some common stuff
* ethereum_sync.rs -> sync.rs
* make sync generic
* continue extracting
* continue
* add eth-contract argument
* continue
* some fixes
* contract v2
* continue
* more fixes
* more fixes
* deal with duplicated params
* removed multiple call_rpc variants
* bail_on_error!()
* fn submit_ethereum_transaction
* more fixes
* cargo fmt --all
* fix
* bail_on_arg_error!()
* fix
* fix
* remove async_extra stuff
* substrate-bridge.json -> substrate-bridge-abi.json
* get rid of substrate transactions hashes
* get rid of ethereum transactions hashes
* extracted contract bytecode to separate file
* cargo fmt --all
* avoid duplicate import in contracts
* removed Default::default()
* swapped configurations for sub2eth && eth2sub
* fix compilation
* do not double gas limit when submitting Substrate headers
* cargo fmt --all
* solidity contract removed
* consts
* extracted solc compilation details to separate file
* removed (obsolete in future Vec<u8> justification)
* fixed cli option description
* fix typos
* fix grumble
* extracted constants
* log decoded header
* cargo fmt --all
* comment
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
d631178e41
Make relay generic over source/target chains ( #58 )
...
* renamed to-be-generic files
* make everything required generic over source/target chains
* some more fixes
* cargo fmt --all
* trait functions -> trait constants
* cargo --fmt --all
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
c6c46462ab
Sync ethereum headers using unsigned (substrate) transactions ( #45 )
...
* reward submitters on finalization
* PoA -> Substrate: unsigned_import_header API
* fix grumble
* make submitter part of ImportContext
* verify using next validators set + tests
* fix nostd compilation
* add sub-tx-mode argument
* support sub-tx-mode
* impl ValidateUnsigned for Runtime
* do not submit too much transactions to the pool
* cargo fmt
* fix bad merge
* revert license fix
* Update modules/ethereum/src/lib.rs
Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com >
* Update modules/ethereum/src/verification.rs
Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com >
* updated comment
* validate receipts before accepting unsigned tx to pool
* cargo fmt
* fix comment
* fix grumbles
* Update modules/ethereum/src/verification.rs
Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com >
* cargo fmt --all
* struct ChangeToEnact
* updated doc
* fix doc
* add docs to the code method
* simplify fn ancestry
* finish incomplete docs
* Update modules/ethereum/src/lib.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* Update modules/ethereum/src/lib.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* return err from unsigned_import_header
* get header once
* Update relays/ethereum/src/ethereum_sync.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* fix
* UnsignedTooFarInTheFuture -> Custom(err.code())
* updated ImportContext::last_signal_block
* cargo fmt --all
* rename runtime calls
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Hernando Castano
479c5bd99a
Squashed commit of slava-async-bridge:
...
commit 657deb4cf4b90f24b9c5bfd62764b197776c262c
Author: Hernando Castano <castano.ha@gmail.com >
Date: Wed Jan 29 20:14:20 2020 -0500
Move Slava's bridge code into relays folder
commit 4868c42c7da959dde7252766996b3ed4e408e439
Author: Hernando Castano <castano.ha@gmail.com >
Date: Wed Jan 29 20:01:06 2020 -0500
Move files into `modules/ethereum`
commit d1093f3e4238acb1a1a020011452cb928d3f8d7a
Merge: 29dc6f9 bfd30ef
Author: Hernando Castano <castano.ha@gmail.com >
Date: Wed Jan 29 19:59:27 2020 -0500
Merge branch 'master' of slava-async-bridge
commit 29dc6f97b1b7d1db99086d35a5336f43d2f0f8af
Author: Hernando Castano <castano.ha@gmail.com >
Date: Wed Jan 29 19:51:31 2020 -0500
Squashed commit of the following:
commit 265365920836bb1d286c9b48b1902a2de278fdd9
Author: Hernando Castano <castano.ha@gmail.com >
Date: Wed Jan 29 19:51:15 2020 -0500
Move hc-jp-bridge repo to different folder
commit 8271991e95320baba70bd1cb9c4234d0ffd5b638
Merge: 57d0811 304cbc5
Author: Hernando Castano <castano.ha@gmail.com >
Date: Wed Jan 29 19:36:41 2020 -0500
Merge branch 'hc-jp-bridge-module' of hc-jp-bridge-module
commit 304cbc5f02d003ffa5404c1c01e461e5b8539888
Author: Hernando Castano <HCastano@users.noreply.github.com >
Date: Wed Jan 29 00:38:27 2020 -0500
Update bridge pallet to work with the (almost) lastest master (#4672 )
* Update decl_error usage
* WIP: Update error handling to use DispatchResult
* Get module compiling with new error handling
* Make tests compile again
Main change was updating the usage of InMemoryBackend
* Move `sp-state-machine` into dev-dependencies
* Bump dependencies to v2.0.0
* Remove some stray comments
* Appy code review suggestion
commit 510cd6d96372688517496efa61773ea2839f8474
Author: Hernando Castano <HCastano@users.noreply.github.com >
Date: Tue Dec 17 12:52:51 2019 -0500
Move Bridge Pallet into FRAME (#4373 )
* Move `bridge` crate into `frame` folder
* Make `bridge` pallet compile after `the-big-reorg`
commit ab54e838ef75e6a3f68fd0944bf22598c10c552f
Author: Hernando Castano <castano.ha@gmail.com >
Date: Mon Nov 11 21:56:40 2019 +0100
Use new StorageProof type from #3834
commit 8fc8911fd1b4acc2274c6863fb3dba91b30c90af
Author: Hernando Castano <HCastano@users.noreply.github.com >
Date: Tue Nov 5 00:50:34 2019 +0100
Verify Ancestry between Headers (#3963 )
* Create module for checking ancestry proofs
* Use Vec of Headers instead of a HashMap
* Move the ancestry verification into the lib.rs file
* Change the proof format to exclude `child` and `ancestor` headers
* Add a testing function for building header chains
* Rename AncestorNotFound error to InvalidAncestryProof
* Use ancestor hash instead of header when verifying ancestry
* Clean up some stuff missed in the merge
commit dbe85738b68358b790cf927b34a804b965a88f96
or: Hernando Castano <HCastano@users.noreply.github.com >
Date: Fri Nov 1 15:41:58 2019 +0100
Check given Grandpa validator set against set found in storage (#3915 )
* Make StorageProofChecker happy
* Update some tests
* Check given validator set against set found in storage
* Use Finality Grandpa's Authority Id and Weight
* Add better error handling
* Use error type from decl_error! macro
commit 31b09216603d3e9c21144ce8c0b6bf59307a4f97
or: Hernando Castano <HCastano@users.noreply.github.com >
Date: Wed Oct 23 14:55:37 2019 +0200
Make tests work after the changes introduced in #3793 (#3874 )
* Make tests work after the changes introduced in #3793
* Remove unneccessary import
commit bce6d804aa86504599ff912387295c58f846cbf3
Author: Jim Posen <jim.posen@gmail.com >
Date: Thu Oct 10 12:18:58 2019 +0200
Logic for checking Substrate proofs from within runtime module. (#3783 )
commit a7013e94b6c772c1d45a7cacbb445f73f6554fca
Author: Hernando Castano <castano.ha@gmail.com >
Date: Fri Oct 4 15:21:00 2019 +0300
Allow tracking of multiple bridges
commit 3cf648242d631e32bd553a67df54bf5a48912839
Author: Hernando Castano <castano.ha@gmail.com >
Date: Tue Oct 1 14:55:04 2019 +0200
Add BridgeId => Bridge mapping
commit 001c74c45072213e01857d0a2454379b447c5a76
Author: Hernando Castano <castano.ha@gmail.com >
Date: Tue Oct 1 11:10:19 2019 +0200
Get the mock runtime for tests set up
commit 38443a1e8b424ed2f148eb95121d009f730e3b5a
Author: Hernando Castano <castano.ha@gmail.com >
Date: Fri Sep 27 14:52:53 2019 +0200
Clean up some warnings
commit bdc3b01401e89c7111f8bf71f84c50750d25089f
Author: Hernando Castano <castano.ha@gmail.com >
Date: Thu Sep 26 16:41:01 2019 +0200
Add more skeleton code
commit 26995efbf4bac2842eb2822322f7ad3c3e88feb8
Author: Hernando Castano <castano.ha@gmail.com >
Date: Wed Sep 25 15:16:57 2019 +0200
Create `bridge` module skeleton
commit bfd30ef8363b1483ef1107ae1eb958a4e944c93b
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Tue Dec 10 12:10:53 2019 +0300
actually use signer from CLI to sign Substrate transactions
commit 504028eac60d9d14ba95b506cd355b0d2f405ce0
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Tue Dec 10 12:02:22 2019 +0300
go offline for a bit on connection error
commit 446d0c8d20187dfd1beb173958ea28f2ad97887d
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Tue Dec 10 11:25:50 2019 +0300
enable info logs by default
commit d039c60ec72bc91adfdad85442bc99a93b7f8e8d
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Tue Dec 10 11:12:51 2019 +0300
support basic CLI arguments
commit 65c6d48e23576f36e8541878b920a03730226392
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Mon Dec 9 15:37:48 2019 +0300
fix restart
commit 96e94c1c4b22d732078f8c401b872c5f8246c3fe
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Mon Dec 9 14:57:53 2019 +0300
license
commit 68f4191e6cdd211ac8975e0b79f8a6f46a3ca953
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Mon Dec 9 14:56:05 2019 +0300
restart sync when Substrate reorgs && we are unlucky
commit 29887c446167d580d73cc03a0b71c31890cafb51
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Mon Dec 9 13:49:31 2019 +0300
only read genesis hash once
commit 832492b8393fe2063adf9c58c2b9e060dc3e4efb
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Mon Dec 9 13:23:26 2019 +0300
changed TODO
commit 9dbc130e5fa036ae63d973819daf30f4ed6ffb5b
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Mon Dec 9 13:16:56 2019 +0300
removed obsolete exit future
commit d03408cd8284eb0c61e7e96429b4f6199353e030
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Mon Dec 9 13:16:17 2019 +0300
removed obsolete TODOs + moved a couple of TODOs to runtime module
commit ed8bec44b79f9a2ce829e59f10181368b2f42139
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Mon Dec 9 12:37:05 2019 +0300
explained TODO fix
commit aa9c4c66ec2904eeb6072d654718b0ac0b7d8803
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Mon Dec 9 12:28:09 2019 +0300
fix tx outcome serialization
commit 126f8f5484dac8c4af588ae86dc8855919d6c822
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Mon Dec 9 12:05:05 2019 +0300
prune old ethereum headers when Substrate best header is too far in the future
commit c7bd301e631a44fe3263e188d0956081aa84f31e
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Fri Dec 6 12:51:50 2019 +0300
fix trace
commit 549bb7acdb30cfdafe6c8600f0410212539ea63d
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Fri Dec 6 12:51:26 2019 +0300
tx hashes are already a part of Block response
commit 7864017909f87ea36955d605a924c3c88bc88df3
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Thu Dec 5 12:29:37 2019 +0300
submit bunch of headers at once + some fixes
commit 96485f85d38c144f0771f02ba692216a60356665
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Wed Dec 4 17:22:13 2019 +0300
print status messages
commit ae0ec4c087136db653339537daab7f96a8c21b65
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Wed Dec 4 17:06:00 2019 +0300
continue actual Substrate client implementation
commit 8146293740d70b88904568ff8e5acdfbadf06fd3
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Wed Dec 4 13:49:30 2019 +0300
fix IncompleteHeader condition
commit 767c6201157dabcccf7f62e643681ca298224fb1
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Wed Dec 4 10:55:06 2019 +0300
actual Substrate client implementation
commit 221fd4ccd2b1eea12c9dacf800d80e15ec115c1b
Author: Svyatoslav Nikolsky <svyatonik@gmail.com >
Date: Wed Nov 20 17:28:13 2019 +0300
initial commit
2024-04-10 10:28:37 +02:00