-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Implement parity_versionInfo & parity_setChain on LC; fix parity_setChain #10312
Conversation
It looks like @axelchalon signed our Contributor License Agreement. 👍 Many thanks, Parity Technologies CLA Bot |
1 similar comment
It looks like @axelchalon signed our Contributor License Agreement. 👍 Many thanks, Parity Technologies CLA Bot |
There's another implementation of eth_subscribe('syncing') in this PR: #10311 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please fix the indentation in all files, apart from that it looks ok. We could optimize the notification though to get events from sync like #10311 is attempting to do.
FWIW if preferred I can revert the |
adding the beta label as we need if for Fether :) |
parity/run.rs
Outdated
@@ -379,7 +383,7 @@ fn execute_light_impl(cmd: RunCmd, logger: Arc<RotatingLogger>) -> Result<Runnin | |||
|
|||
fn execute_impl<Cr, Rr>(cmd: RunCmd, logger: Arc<RotatingLogger>, on_client_rq: Cr, | |||
on_updater_rq: Rr) -> Result<RunningClient, String> | |||
where Cr: Fn(String) + 'static + Send, | |||
where Cr: Fn(String) -> Result<(), ()> + 'static + Send, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this change needed?
It breaks parity-clib
compatibility, https://github.com/paritytech/parity-ethereum/blob/master/parity-clib/src/lib.rs#L145 is the problem basically we ignore the return value because the restart function
is void i.e, doesn't return any value.
It could be fixed by changing the return value of the callback function to an integer and map 0 to Ok
and other values as Err
but it requires some changes in the C API
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, it'd be nice to have the RPC response reflect whether or not the restart succeeded (although not necessary) but changing the return value of the restart client callback to an integer doesn't seem very clean so I'll change back the return value of the callback for now! 👍
parity/run.rs
Outdated
@@ -165,7 +165,9 @@ impl ::local_store::NodeInfo for FullNodeInfo { | |||
type LightClient = ::light::client::Client<::light_helpers::EpochFetch>; | |||
|
|||
// helper for light execution. | |||
fn execute_light_impl(cmd: RunCmd, logger: Arc<RotatingLogger>) -> Result<RunningClient, String> { | |||
fn execute_light_impl<Cr>(cmd: RunCmd, logger: Arc<RotatingLogger>, on_client_rq: Cr) -> Result<RunningClient, String> | |||
where Cr: Fn(String) -> Result<(), ()> + 'static + Send |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this change needed?
It breaks parity-clib
compatibility
rpc/src/v1/impls/parity_set.rs
Outdated
@@ -240,7 +239,7 @@ impl<C, M, U, F> ParitySet for ParitySetClient<C, M, U, F> where | |||
let hash = hash.into(); | |||
|
|||
Ok(self.miner.remove_transaction(&hash) | |||
.map(|t| Transaction::from_pending(t.pending().clone())) | |||
.map(|t| Transaction::from_pending(t.pending().clone())) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove space please :P
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall the code looks good but the change of the trait bound where Cr: Fn(String) -> Result<(), ()> + 'static + Send
breaks compatibility with C library
which need to be addressed!
Either by changing back back the trait bound to where Cr: Fn(String) + 'static + Send
or fix it in the C API
(see inline comments)
…hain (#10312) * Light client: implement parity_versionInfo RPC * Light client: implement set_exit_handler & parity_setChain RPC * parity_setChain RPC: return an error if failed (instead of `true`) * Implement eth_subscribe('syncing') RPC for full node & light node * Fix indentation * Revert commit: Implement eth_subscribe('syncing') * Revert change to Cr callback function
* version: bump beta * Implement parity_versionInfo & parity_setChain on LC; fix parity_setChain (#10312) * Light client: implement parity_versionInfo RPC * Light client: implement set_exit_handler & parity_setChain RPC * parity_setChain RPC: return an error if failed (instead of `true`) * Implement eth_subscribe('syncing') RPC for full node & light node * Fix indentation * Revert commit: Implement eth_subscribe('syncing') * Revert change to Cr callback function * CI publish to aws (#10446) * move publish aws from gitlab.yml to gitlab scripts * gitlab.yml cleaning move publish AWS to gitlab scripts remove dependencies from android build * CI aws git checkout (#10451) * Updating the CI system with the publication of releases and binary files on github Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com> * move publish aws from gitlab.yml to gitlab scripts Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com> * gitlab.yml cleaning move publish AWS to gitlab scripts remove dependencies from android build Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com> * Revert "Updating the CI system with the publication of releases and binary files on github" This reverts commit da87e06. * remove no-git for aws * microfix * no need in no_git then * Revert "CI aws git checkout (#10451)" (#10456) * Revert "CI aws git checkout (#10451)" This reverts commit 3e1d731. * Update .gitlab-ci.yml revert aws script with small fixes * Delete publish-aws.sh * Tests parallelized (#10452) * tests splitted, phase 1 * typo * fix wrong launch commands * typos * rearrangements * use `nproc` function for threads * use nproc for threads * let theads be auto, build-andriod no more in regular run * split val chain and cargo check * renamed some files * wrong phase * check rust files before test jobs * lint error * rust files modivied var * test except changes * add rust_changes except * lint error * fixes * .gitlab-ci.yml can't be excluded * pipeline shouldn't start * pipeline must go * pipeline must go 2 * pipeline must go 3 * pipeline must go 4 * pipeline must go 5 * pipeline must go 6 * pipeline must go 7 * pipeline must not go 1 * pipeline must go 8 * avoid skippng tests yet, reintroducing them after the caching * test theory * parallelized cargo check with combusting helicopters * less uploads * alias for cargo checks * nice template * Ensure static validator set changes are recognized (#10467)
Implement eth_subscribe('syncing') RPC for full node & light node (closes Implement: we'll use the implentation of this other PR RPC: Implements eth_subscribe("syncing") #10311 insteadeth_subscribe('syncing')
#10080); same output format as eth_syncing rpctrue
)cc @amaurymartiny