Introduce rpc client for relay chain full node (#963)
* Initial network interface preparations * Implement get_storage_by_key * Implement `validators` and `session_index_for_child` * Implement persisted_validation_data and candidate_pending_availability * Fix method name for persisted_validation_data and add encoded params * Implement `retrieve_dmq_contents` and `retrieve_all_inbound_hrmp_channel_contents` * Implement `prove_read` * Introduce separate RPC client, expose JsonRpSee errors * Simplify closure in call_remote_runtime_function * Implement import stream, upgrade JsonRpSee * Implement finality stream * Remove unused method from interface * Implement `is_major_syncing` * Implement `wait_on_block` * Fix tests * Unify error handling `ApiError` * Replace WaitError with RelayChainError * Wrap BlockChainError in RelayChainError * Unify error handling in relay chain intefaces * Fix return type of proof method * Improve error handling of new methods * Improve error handling and move logging outside of interface * Clean up * Remove unwanted changes, clean up * Remove unused import * Add format for StatemachineError and remove nused From trait * Use 'thiserror' crate to simplify error handling * Expose error for overseer, further simplify error handling * Reintroduce network interface * Implement cli option * Adjust call_state method to use hashes * Disable PoV recovery when RPC is used * Add integration test for network full node * Use Hash instead of BlockId to ensure compatibility with RPC interface * Fix cargo check warnings * Implement retries * Remove `expect` statements from code * Update jsonrpsee to 0.8.0 and make collator keys optional * Make cli arguments conflicting * Remove unused `block_status` method * Add clippy fixes * Cargo fmt * Validate relay chain rpc url * Clean up dependencies and add one more integration test * Clean up * Clean up dependencies of relay-chain-network * Use hash instead of blockid for rpc methods * Fix tests * Update client/cli/src/lib.rs Co-authored-by:Koute <koute@users.noreply.github.com> * Improve error message of cli validation * Add rpc client constructor * Do not use debug formatting for errors * Improve logging for remote runtime methods * Only retry on transport problems * Use PHash by value, rename test * Improve tracing, return error on relay-chain-interface build * Fix naming, use generics instead of deserializing manually * Rename RelayChainLocal and RelayChainNetwork * lock * Format * Use impl trait for encodable runtime payload * Only instantiate full node in tests when we need it * Upgrade scale-codec to 3.0.0 * Improve expect log Co-authored-by:
Koute <koute@users.noreply.github.com>
Showing
- cumulus/Cargo.lock 117 additions, 19 deletionscumulus/Cargo.lock
- cumulus/Cargo.toml 2 additions, 1 deletioncumulus/Cargo.toml
- cumulus/client/cli/Cargo.toml 1 addition, 0 deletionscumulus/client/cli/Cargo.toml
- cumulus/client/cli/src/lib.rs 36 additions, 1 deletioncumulus/client/cli/src/lib.rs
- cumulus/client/consensus/common/src/parachain_consensus.rs 5 additions, 17 deletionscumulus/client/consensus/common/src/parachain_consensus.rs
- cumulus/client/consensus/common/src/tests.rs 2 additions, 6 deletionscumulus/client/consensus/common/src/tests.rs
- cumulus/client/network/Cargo.toml 3 additions, 1 deletioncumulus/client/network/Cargo.toml
- cumulus/client/network/src/lib.rs 13 additions, 22 deletionscumulus/client/network/src/lib.rs
- cumulus/client/network/src/tests.rs 9 additions, 31 deletionscumulus/client/network/src/tests.rs
- cumulus/client/network/tests/sync_blocks_from_tip_without_connected_collator.rs 27 additions, 5 deletions.../tests/sync_blocks_from_tip_without_connected_collator.rs
- cumulus/client/pov-recovery/src/lib.rs 3 additions, 3 deletionscumulus/client/pov-recovery/src/lib.rs
- cumulus/client/pov-recovery/tests/pov_recovery.rs 2 additions, 0 deletionscumulus/client/pov-recovery/tests/pov_recovery.rs
- cumulus/client/relay-chain-inprocess-interface/Cargo.toml 2 additions, 2 deletionscumulus/client/relay-chain-inprocess-interface/Cargo.toml
- cumulus/client/relay-chain-inprocess-interface/src/lib.rs 38 additions, 34 deletionscumulus/client/relay-chain-inprocess-interface/src/lib.rs
- cumulus/client/relay-chain-interface/Cargo.toml 4 additions, 1 deletioncumulus/client/relay-chain-interface/Cargo.toml
- cumulus/client/relay-chain-interface/src/lib.rs 37 additions, 28 deletionscumulus/client/relay-chain-interface/src/lib.rs
- cumulus/client/relay-chain-rpc-interface/Cargo.toml 30 additions, 0 deletionscumulus/client/relay-chain-rpc-interface/Cargo.toml
- cumulus/client/relay-chain-rpc-interface/src/lib.rs 472 additions, 0 deletionscumulus/client/relay-chain-rpc-interface/src/lib.rs
- cumulus/client/service/Cargo.toml 1 addition, 0 deletionscumulus/client/service/Cargo.toml
- cumulus/client/service/src/lib.rs 11 additions, 0 deletionscumulus/client/service/src/lib.rs
Please register or sign in to comment