Skip to content
  1. Apr 09, 2024
    • Svyatoslav Nikolsky's avatar
      Add traces to PoA builtin (#258) · 59d1e880
      Svyatoslav Nikolsky authored
      * replace debug printlns with traces
      
      * cargo fmt --all
      
      * fixed traces
      
      * update RUST_LOG in docker-compose
      
      * only print hex data if error has occured
      
      * updated OE hash
      59d1e880
    • Svyatoslav Nikolsky's avatar
      Prepare for sub to eth relay (#248) · 4445362b
      Svyatoslav Nikolsky authored
      
      
      * fixed PoA contract deploy (granda_authorities call)
      
      * pause if all submitted headers were rejected
      
      * give funds to Bertha and Carlos
      
      * max 1 active PoA transaction in headers sync :(
      
      * display initial header id when deploying PoA contract
      
      * cargo fmt + clipy
      
      * fix compilation
      
      * Update relays/ethereum/src/sync_types.rs
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      
      * Update relays/ethereum/src/utils.rs
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      4445362b
    • Svyatoslav Nikolsky's avatar
      Submit exchange transactions to PoA node (#229) · 4574b71a
      Svyatoslav Nikolsky authored
      
      
      * 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: default avatarTomasz Drwięga <[email protected]>
      
      * 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: default avatarDenis S. Soldatov aka General-Beck <[email protected]>
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      4574b71a
    • Tomasz Drwięga's avatar
      Remove substrate relay. (#244) · 68c2bf23
      Tomasz Drwięga authored
      68c2bf23
    • Svyatoslav Nikolsky's avatar
      Exchange transactions relay dashboard (#241) · 97cb9c47
      Svyatoslav Nikolsky authored
      
      
      * update dashboards
      
      * cargo fmt --all
      
      * Update deployments/rialto/dashboard/prometheus/prometheus.yml
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      97cb9c47
    • Svyatoslav Nikolsky's avatar
      fixed method name (#239) · 25e5ec6b
      Svyatoslav Nikolsky authored
      25e5ec6b
    • Svyatoslav Nikolsky's avatar
      Auto exchange transactions relay metrics (#237) · 8dc2855a
      Svyatoslav Nikolsky authored
      * auto exchange tx relay dashboard
      
      * cargo fmt --all
      
      * single metrics startup fn
      8dc2855a
    • Svyatoslav Nikolsky's avatar
      Make transactions receipts part of transaction inclusion proof (#236) · 659683e9
      Svyatoslav Nikolsky authored
      * make receipts part of tx proof
      
      * is_successful_raw_receipt_with_empty_data
      
      * cargo fmt --all
      
      * clippy
      
      * fix everything
      659683e9
    • Hernando Castano's avatar
      Fix Local Dockerfile Entrypoint (#233) · f2394d76
      Hernando Castano authored
      * Correctly resolve project in Dockerfile entrypoint
      
      * Improve instruction for running local Docker containers
      
      * Rename bridge entrypoint script
      f2394d76
    • Hernando Castano's avatar
      Allow Multiple Bridge Pallet Instances (#226) · 10895d97
      Hernando Castano authored
      
      
      * Add Instance type parameter to pallet
      
      * Sketch out what the runtime could look like
      
      * Allow runtime to compile with multiple bridge pallets
      
      * Cargo Fmt
      
      * Allow an instance of a PoA chain to be used with currency-exchange
      
      I specify that it's only _an instance_ instead of _instances_ since the currency-exchange
      pallet does not support multiple instances itself. What this commit does is make it so
      that the different instances of the PoA chains we currently have are compatible with the
      currency-exchange pallet through the implementation of the PeerBlockchain trait.
      
      * Add Instance type parameter to Currency Exchange pallet
      
      * Wire up currency exchange intances in runtime
      
      * Rust Fmt
      
      * Show sccache
      
      * Allow Eth pallet to use a default instance
      
      * Use a default instance in Eth pallet tests
      
      * Remove Rialto and Kovan feature flags
      
      Through some discussions it has been decided that the `bridge-node` should, like
      Substrate's `node-template`, be a showcase of the different pallets available in
      a project. Because of this I've removed the feature flags for the Rialto and Kovan
      networks in favour of having both of them included in the runtime.
      
      * Update the chain_spec to use both Rialto and Kovan configs
      
      * Update pallet level calls used by Substrate client
      
      Allows the project to compile. However, it should be noted that in reality
      we shouldn't be hardcoding the pallet we're calling.
      
      * Allow currency-exchange pallet to use a default instance
      
      * Support benchmarking an instance of the Eth pallet
      
      * Update currency exchange benchmarks to work with instances
      
      * Fix test helpers which now need a PoA instance
      
      * Remove Actions for checking Rialto and Kovan features
      
      * Add missing comments
      
      * Update Runtime API string constants
      
      * Add issue number for generic chain support in relay
      
      * Add Runtime APIs for instances of the currency-exchange pallet
      
      * Rust Fmt
      
      Co-authored-by: default avatarDenis S. Soldatov aka General-Beck <[email protected]>
      10895d97
    • Svyatoslav Nikolsky's avatar
      Auto relay exchange transactions (#227) · 329a4155
      Svyatoslav Nikolsky authored
      
      
      * 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: default avatarHernando Castano <[email protected]>
      
      * finish comment
      
      * (bool, String) -> StringifiedMaybeConnectionError
      
      * Update deployments/rialto/docker-compose.yml
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      Co-authored-by: default avatarDenis S. Soldatov aka General-Beck <[email protected]>
      Co-authored-by: default avatarHernando Castano <[email protected]>
      329a4155
    • dependabot-preview[bot]'s avatar
    • dependabot-preview[bot]'s avatar
      3cac6862
    • Hernando Castano's avatar
      Add Prometheus and Grafana to Docker Compose (#221) · 642c1e61
      Hernando Castano authored
      * Add Prometheus and Grafana to Docker Compose
      
      * Expose relay's Prometheus metrics port
      
      * Use Docker network references intead of localhost
      
      When you have containers on the same network they don't communicate
      over localhost, they instead refer to their container names
      
      * Move dashboard components into deployment folder
      
      * Update folder structure for Grafana and Prometheus config files
      
      The new folder structure more closely matches the expected defaults
      by Grafana and Prometheus, which allows us to clean up the paths
      in our docker-compose file a bit.
      
      * Add documentation about Prometheus and Grafana
      
      * Refer to Prometheus server instead of node
      642c1e61
    • Tomasz Drwięga's avatar
      Fix clippy suggestions. (#179) · df9c43ac
      Tomasz Drwięga authored
      
      
      * Fix clippy errors.
      
      * Cargo fmt.
      
      * Enable clippy checks.
      
      * Create if does not exist.
      
      * Fix warnings and enable sccache for clippy.
      
      * chmod +x
      
      * Revert and ignore errors.
      
      * Update cancel-workflow-action.
      
      * Fixes.
      
      * Clippy fixes.
      
      * Fix compilation.
      
      * Fix new clippy warnings.
      
      * fmt --all
      
      * Fix the rest.
      
      * fmt --all
      
      * Conditional.
      
      * Bump smallvec.
      
      * Use separate cache dir for clippy to prevent races.
      
      * Remove unused imports in tests
      
      * Remove "useless conversion"
      
      * Move clippy to main worfklow to avoid clashes.
      
      * Fix clippy error.
      
      * Fix remaning clippy errors.
      
      * cargo fmt --all
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      df9c43ac
    • dependabot-preview[bot]'s avatar
      b6d3c47a
    • dependabot-preview[bot]'s avatar
      bf8a1bc9
    • dependabot-preview[bot]'s avatar
      3e58fde4
    • dependabot-preview[bot]'s avatar
      db8d72c7
    • Svyatoslav Nikolsky's avatar
      Relay dashboard (#191) · 594667ce
      Svyatoslav Nikolsky authored
      * expose metrics for Prometheus
      
      * added preconfigured configs for Prometheus and Grafana
      
      * metrics-related cli args
      
      * fix compilation
      594667ce
    • Tomasz Drwięga's avatar
      Rialto test network setup (#163) · 8ba457b6
      Tomasz Drwięga authored
      
      
      * 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: default avatarHernando Castano <[email protected]>
      
      * 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: default avatarHernando Castano <[email protected]>
      8ba457b6
    • Svyatoslav Nikolsky's avatar
      Exchange pallet benchmarks (#158) · 5f82c5e0
      Svyatoslav Nikolsky authored
      
      
      * exchange benchmarks: framework
      
      * updated comment about tx size
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      5f82c5e0
    • Svyatoslav Nikolsky's avatar
      Fixed best_ethereum_block() call parameters encoding (#188) · f085b4cd
      Svyatoslav Nikolsky authored
      * fixed best_ethereum_block() params encoding
      
      * updated versions
      f085b4cd
    • Svyatoslav Nikolsky's avatar
      Relay PoA lock-funds transactions proofs (#177) · 939bbed7
      Svyatoslav Nikolsky authored
      
      
      * 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: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/ethereum_exchange.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/rpc_errors.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/exchange.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * removed comment
      
      * Update relays/ethereum/src/ethereum_exchange.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/ethereum_exchange.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * module-level comments
      
      * updated readme
      
      * use web3 from crates.io
      
      * added missing fields info in error description
      
      * cargo fmt --all
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      939bbed7
    • Svyatoslav Nikolsky's avatar
      Basic tests for sync loop (#182) · 6be62ccb
      Svyatoslav Nikolsky authored
      * basic sync loop tests
      
      * cargo ftm --all
      
      * SyncLoopTestParams
      
      * move sync loop tests to sync_loop_tests.rs
      
      * cargo fmt --all
      6be62ccb
    • dependabot-preview[bot]'s avatar
      5b828f61
    • Svyatoslav Nikolsky's avatar
      401ad13b
    • Hernando Castano's avatar
      Update Substrate to rc4 (#175) · 629c86ad
      Hernando Castano authored
      
      
      * Bump Substrate to rc4
      
      * Add BaseCallFilter type
      
      * Add DenyUnsafe to SystemApi extension
      
      * Use new ServiceBuilder build functions
      
      * Add BaseCallFilter to test runtimes
      
      * Remove old comments
      
      * Add `rev` and `git` fields back
      
      Turns out that if you don't have these future release candidates will
      be used if available. For instance, once `rc5` is released a fresh pull
      would use that instead of `rc4` which is what we want.
      
      * Use tag release instead of specific commit
      
      Will make scripted updates easier in the future
      
      * Add short script to update between `rc` versions
      
      * Update scripts/update_rc.sh
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      629c86ad
    • Hernando Castano's avatar
      Benchmark Ethereum Pallet (#149) · 1000e414
      Hernando Castano authored
      * Add skeleton for worst case import_unsigned_header
      
      * Fix a typo
      
      * Add benchmark test for best case unsigned header import
      
      * Add finality verification to worst case bench
      
      * Move `insert_header()` from mock to test_utils
      
      Allows the benchmarking code to use this without having to pull it in from the mock.
      
      * Add a rough bench to test a finalizing a "long" chain
      
      * Try to use complexity parameter for finality bench
      
      * Improve long finality bench
      
      * Remove stray dot file
      
      * Remove old "worst" case bench
      
      * Scribble some ideas down for pruning bench
      
      * Prune headers during benchmarking
      
      * Clean up some comments
      
      * Make finality bench work for entire range of complexity parameter
      
      * Place initialization code into a function
      
      * Add bench for block finalization with caching
      
      * First attempt at bench with receipts
      
      * Try and trigger validator set change
      
      * Perform a validator set change during benchmarking
      
      * Move `validators_change_receipt()` to shared location
      
      Allows unit tests and benchmarks to access the same helper function
      and const
      
      * Extract a test receipt root into a constant
      
      * Clean up description of pruning bench
      
      * Fix cache and pruning tests
      
      * Remove unecessary `build_custom_header` usage
      
      * Get rid of warnings
      
      * Remove code duplication comment
      
      I don't think its entirely worth it to split out so few lines of code.
      The benches aren't particularly hard to read anyways.
      
      * Increase the range of the complexity parameter
      
      * Use dynamic number of receipts while benchmarking
      
      As part of this change we have removed the hardcoded TEST_RECEIPT_ROOT
      and instead chose to calculate the receipt root on the fly. This will
      make tests and benches less fragile.
      
      * Prune a dynamic number of headers
      1000e414
    • Svyatoslav Nikolsky's avatar
      Backoff on connection-unrelated errors (#178) · 3291c56b
      Svyatoslav Nikolsky authored
      
      
      * backoff on connection-unrelated errors
      
      * cargo fmt --all
      
      * Fix some typos
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      3291c56b
    • dependabot-preview[bot]'s avatar
    • Denis S. Soldatov aka General-Beck's avatar
      Add cargo deny (#166) · 05bedba9
      Denis S. Soldatov aka General-Beck authored
      
      
      * Add cargo deny
      
      * deny - master
      
      * Copy deny.toml to .
      
      * cargo deny check
      
      * upload artifacts
      
      * install cargo deny
      
      * typo
      
      * up install cargo deny
      
      * update archive
      
      * typo
      
      * path's
      
      * allow failure cargo deny
      
      * allew failure log
      
      * cargo deny init
      
      * add deny.toml and compare with embark actions
      
      * fix options
      
      * Fix cargo deny.
      
      * Remove cargo audit (same as deny)
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      05bedba9
    • Svyatoslav Nikolsky's avatar
      Fix sub2eth synchronization (#172) · 48a603f4
      Svyatoslav Nikolsky authored
      
      
      * ease serde version requirements (to build OE with builtin)
      
      * trace + fix completion notifications
      
      * check incompletion on submit
      
      * fix compilation
      
      * do not ask for synced blocks when queue is empty
      
      * cargo fmt --all
      
      * Update relays/ethereum/src/ethereum_client.rs
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      
      * remove closure
      
      * fn submit_substrate_header() -> Option<RpcError>
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      48a603f4
    • Svyatoslav Nikolsky's avatar
      Sign PoA transactions from wasm env (#155) · a76ec8fd
      Svyatoslav Nikolsky authored
      * sign PoA transactions from wasm env
      
      * cargo fmt --all
      a76ec8fd
    • Svyatoslav Nikolsky's avatar
      Create accounts from DepositInto::deposit_into() (#157) · bc4a70e1
      Svyatoslav Nikolsky authored
      
      
      * use deposit_creating in DepositInto
      
      * Update modules/currency-exchange/src/lib.rs
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      
      * Update primitives/currency-exchange/src/lib.rs
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      bc4a70e1
    • dependabot-preview[bot]'s avatar
    • dependabot-preview[bot]'s avatar
    • Svyatoslav Nikolsky's avatar
      Runtime benchmarks: start (#136) · 37dd4a70
      Svyatoslav Nikolsky authored
      
      
      * runtime benchmarks: start
      
      * merge tests + benchmarks infrastructure
      
      * fix compilation
      
      * Fix compilation issues with runtime-benchmark feature flag
      
      Mainly involved pulling in correct dependencies and adding some functions
      which were called but didn't yet exist.
      
      * Fix broken compilation for tests
      
      * Move header signing methods into trait
      
      * Move signing related test helpers to own module
      
      * Remove comment about feature flag
      
      * Add constants to tests
      
      * Add top level comment for testing utilities
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      37dd4a70
    • Hernando Castano's avatar
      Switch to new RPC interface (#131) · 990cadb9
      Hernando Castano authored
      
      
      * Move EthereumRpc implementation to Eth client
      
      * Move SubstrateRpc implementation to SubstrateClient
      
      * Update deploy_contract to use new RPC interface
      
      * Fix some types in the Substrate client
      
      * Swap out method bodies in Eth sync loop
      
      * Swap out method bodies in Substrate sync loop
      
      * Remove Client from SourceClient trait return types
      
      * Remove Client from TargetClient trait return types
      
      * Remove client from Source select! arms
      
      * Remove client from Target select! arms
      
      * Add missing mutable refs in Substrate client
      
      * Use mutable references in Source/Target Client traits
      
      * Try and use mutable references in Source/Client trait implementations
      
      * Handle errors more gracefully
      
      * Remove unused imports
      
      * Remove dead_code and unused_variables lints
      
      * Remove usage of `jsonrpsee::RawClient`
      
      By using a `jsonrpsee::Client` we are able to remove all the shared
      mutable references required when interacting with the RPC server. This
      is convenient as trying to sharing mutable references in code that uses
      async/await is a bit of a pain.
      
      However, using a `Client` instead of a `RawClient` is not yet supported
      by the `jsonrpsee::rpc_api` macro, so a fork must be used for the moment.
      
      * Clean up dead code and warnings
      
      * Clean up higher level RPCs
      
      Some of the RPCs that were "high level" didn't necessarily belong
      as part of the trait, so they were removed.
      
      * Use positional parameters for RPCs
      
      Both Substrate and Ethereum's RPCs use positional (array) parameters,
      so in order to be compatible with both we need to make sure that
      our API is defined with positional paramters in mind.
      
      * Rename argument for eth_getBlockByNumber
      
      * Remove some unecessary Ok-wraps
      
      * Process client requests synchonously
      
      Before the refactoring the sync loop would wait until a client finished
      handling a request before issuing another one. This behaviour was
      inadvertently changed during the refactoring leading to race conditions.
      This commit makes sure that the previous behaviour is respected.
      
      * Reduce the errors that are considered a connection error
      
      * Only decode bridge contract once
      
      * Set genesis_config at RPC client startup
      
      * Fetch genesis hash in SubstrateRpcClient::new()
      
      * Move Decode error into SubstrateNodeError
      
      * Suppress warnings caused by `rpc_api!`
      
      * Implement From RpcError for String
      
      * Handle Substrate client initalization errors more gracefully
      
      * Remove match in favour of ?
      
      Co-authored-by: default avatarSvyatoslav Nikolsky <[email protected]>
      990cadb9
    • Tomasz Drwięga's avatar
      Update web3 dependency. (#140) · 506c39e8
      Tomasz Drwięga authored
      * Update web3 dependency.
      
      * Switch to crates.io.
      506c39e8