Don't include :code by default in storage proofs (#5060)

* Adds test to verify that the runtime currently is always contained in
the proof

* Start passing the runtime wasm code from the outside

* Fix compilation

* More build fixes

* Make the test work as expected now :)

* Last fixes

* Fixes benchmarks

* Review feedback

* Apply suggestions from code review

Co-Authored-By: Sergei Pepyakin <sergei@parity.io>

* Review feedback

* Fix compilation

Co-authored-by: Sergei Pepyakin <s.pepyakin@gmail.com>
This commit is contained in:
Benjamin Kampmann
2020-03-04 20:26:16 +01:00
committed by GitHub
parent 67837c6233
commit 6ee39261c8
31 changed files with 480 additions and 183 deletions
@@ -254,13 +254,12 @@ where
B: Block,
{
/// Construct a new light client handler.
pub fn new
( cfg: Config
, chain: Arc<dyn Client<B>>
, checker: Arc<dyn fetcher::FetchChecker<B>>
, peerset: sc_peerset::PeersetHandle
) -> Self
{
pub fn new(
cfg: Config,
chain: Arc<dyn Client<B>>,
checker: Arc<dyn fetcher::FetchChecker<B>>,
peerset: sc_peerset::PeersetHandle,
) -> Self {
LightClientHandler {
config: cfg,
chain,
@@ -425,7 +424,8 @@ where
log::trace!("remote call request from {} ({} at {:?})",
peer,
request.method,
request.block);
request.block,
);
let block = Decode::decode(&mut request.block.as_ref())?;
@@ -436,7 +436,8 @@ where
peer,
request.method,
request.block,
e);
e,
);
StorageProof::empty()
}
};
@@ -750,7 +750,11 @@ pub mod tests {
}
}
fn check_execution_proof(&self, _: &RemoteCallRequest<B::Header>, _: StorageProof) -> ClientResult<Vec<u8>> {
fn check_execution_proof(
&self,
_: &RemoteCallRequest<B::Header>,
_: StorageProof,
) -> ClientResult<Vec<u8>> {
match self.ok {
true => Ok(vec![42]),
false => Err(ClientError::Backend("Test error".into())),