diff --git a/Cargo.lock b/Cargo.lock index d8e5566f97..2620678c1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -756,7 +756,7 @@ dependencies = [ "sloggers", "slot_clock", "store", - "time 0.2.16", + "time 0.2.17", "timer", "tokio 0.2.22", "toml", @@ -849,6 +849,12 @@ dependencies = [ "proc-macro-hack", ] +[[package]] +name = "const_fn" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce90df4c658c62f12d78f7508cf92f9173e5184a539c10bfe54a3107b3ffd0f2" + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -938,12 +944,12 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ee0cc8804d5393478d743b035099520087a5186f3b93fa58cec08fa62407b6" +checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" dependencies = [ - "cfg-if", "crossbeam-utils", + "maybe-uninit", ] [[package]] @@ -2111,12 +2117,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.8.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" -dependencies = [ - "autocfg 1.0.1", -] +checksum = "00d63df3d41950fb462ed38308eea019113ad1508da725bbedcd0fa5a85ef5f7" [[package]] name = "hashset_delay" @@ -2412,12 +2415,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9" +checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2" dependencies = [ "autocfg 1.0.1", - "hashbrown 0.8.2", + "hashbrown 0.9.0", ] [[package]] @@ -2642,7 +2645,7 @@ dependencies = [ "libp2p-tcp", "libp2p-websocket", "multihash", - "parity-multiaddr 0.9.1 (git+https://github.com/sigp/rust-libp2p?rev=03f998022ce2f566a6c6e6c4206bc0ce4d45109f)", + "parity-multiaddr 0.9.1", "parking_lot 0.10.2", "pin-project", "smallvec 1.4.2", @@ -2667,7 +2670,7 @@ dependencies = [ "log 0.4.11", "multihash", "multistream-select 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-multiaddr 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multiaddr 0.9.2", "parking_lot 0.10.2", "pin-project", "prost", @@ -2700,7 +2703,7 @@ dependencies = [ "log 0.4.11", "multihash", "multistream-select 0.8.2 (git+https://github.com/sigp/rust-libp2p?rev=03f998022ce2f566a6c6e6c4206bc0ce4d45109f)", - "parity-multiaddr 0.9.1 (git+https://github.com/sigp/rust-libp2p?rev=03f998022ce2f566a6c6e6c4206bc0ce4d45109f)", + "parity-multiaddr 0.9.1", "parking_lot 0.10.2", "pin-project", "prost", @@ -2888,9 +2891,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af67924b8dd885cccea261866c8ce5b74d239d272e154053ff927dae839f5ae9" +checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655" dependencies = [ "cc", "pkg-config", @@ -3534,9 +3537,9 @@ dependencies = [ [[package]] name = "parity-multiaddr" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc20af3143a62c16e7c9e92ea5c6ae49f7d271d97d4d8fe73afc28f0514a3d0f" +checksum = "2165a93382a93de55868dcbfa11e4a8f99676a9164eee6a2b4a9479ad319c257" dependencies = [ "arrayref", "bs58", @@ -3830,9 +3833,9 @@ checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" [[package]] name = "proc-macro2" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" +checksum = "175c513d55719db99da20232b06cda8bab6b83ec2d04e3283edf0213c37c1a29" dependencies = [ "unicode-xid", ] @@ -4590,12 +4593,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -[[package]] -name = "send_wrapper" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eddf2e8f50ced781f288c19f18621fa72a3779e3cb58dbf23b07469b0abeb4" - [[package]] name = "serde" version = "1.0.115" @@ -4775,9 +4772,9 @@ checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210" [[package]] name = "simple_logger" -version = "1.6.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea0c4611f32f4c2bac73754f22dca1f57e6c1945e0590dae4e5f2a077b92367" +checksum = "13a53ed2efd04911c8280f2da7bf9abd350c931b86bc7f9f2386fbafbf525ff9" dependencies = [ "atty", "chrono", @@ -5008,9 +5005,9 @@ dependencies = [ [[package]] name = "soketto" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85457366ae0c6ce56bf05a958aef14cd38513c236568618edbcd9a8c52cb80b0" +checksum = "b5c71ed3d54db0a699f4948e1bb3e45b450fa31fe602621dee6680361d569c88" dependencies = [ "base64 0.12.3", "bytes 0.5.6", @@ -5019,7 +5016,7 @@ dependencies = [ "httparse", "log 0.4.11", "rand 0.7.3", - "sha-1 0.8.2", + "sha-1 0.9.1", ] [[package]] @@ -5201,9 +5198,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d8d6567fe7c7f8835a3a98af4208f3846fba258c1bc3c31d6e506239f11f9" +checksum = "963f7d3cc59b59b9325165add223142bbf1df27655d07789f109896d353d8350" dependencies = [ "proc-macro2", "quote", @@ -5345,11 +5342,11 @@ dependencies = [ [[package]] name = "time" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a51cadc5b1eec673a685ff7c33192ff7b7603d0b75446fb354939ee615acb15" +checksum = "ca7ec98a72285d12e0febb26f0847b12d54be24577618719df654c66cadab55d" dependencies = [ - "cfg-if", + "const_fn", "libc", "standback", "stdweb", @@ -6292,15 +6289,14 @@ dependencies = [ [[package]] name = "wasm-timer" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324c5e65a08699c9c4334ba136597ab22b85dccd4b65dd1e36ccf8f723a95b54" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ "futures 0.3.5", "js-sys", - "parking_lot 0.9.0", + "parking_lot 0.11.0", "pin-utils", - "send_wrapper", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", diff --git a/beacon_node/eth2_libp2p/src/rpc/codec/base.rs b/beacon_node/eth2_libp2p/src/rpc/codec/base.rs index 97e80ce8b7..d7a64b58d1 100644 --- a/beacon_node/eth2_libp2p/src/rpc/codec/base.rs +++ b/beacon_node/eth2_libp2p/src/rpc/codec/base.rs @@ -1,5 +1,6 @@ //! This handles the various supported encoding mechanism for the Eth 2.0 RPC. +use crate::rpc::methods::ErrorType; use crate::rpc::{RPCCodedResponse, RPCRequest, RPCResponse}; use libp2p::bytes::BufMut; use libp2p::bytes::BytesMut; @@ -8,12 +9,12 @@ use tokio_util::codec::{Decoder, Encoder}; use types::EthSpec; pub trait OutboundCodec: Encoder + Decoder { - type ErrorType; + type CodecErrorType; fn decode_error( &mut self, src: &mut BytesMut, - ) -> Result, ::Error>; + ) -> Result, ::Error>; } /* Global Inbound Codec */ @@ -130,8 +131,8 @@ where impl Decoder for BaseOutboundCodec where TSpec: EthSpec, - TCodec: - OutboundCodec, ErrorType = String> + Decoder>, + TCodec: OutboundCodec, CodecErrorType = ErrorType> + + Decoder>, { type Item = RPCCodedResponse; type Error = ::Error; diff --git a/beacon_node/eth2_libp2p/src/rpc/codec/ssz_snappy.rs b/beacon_node/eth2_libp2p/src/rpc/codec/ssz_snappy.rs index d17ac6aa57..94fd5d4c59 100644 --- a/beacon_node/eth2_libp2p/src/rpc/codec/ssz_snappy.rs +++ b/beacon_node/eth2_libp2p/src/rpc/codec/ssz_snappy.rs @@ -374,9 +374,12 @@ impl Decoder for SSZSnappyOutboundCodec { } impl OutboundCodec> for SSZSnappyOutboundCodec { - type ErrorType = String; + type CodecErrorType = ErrorType; - fn decode_error(&mut self, src: &mut BytesMut) -> Result, RPCError> { + fn decode_error( + &mut self, + src: &mut BytesMut, + ) -> Result, RPCError> { if self.len.is_none() { // Decode the length of the uncompressed bytes from an unsigned varint match self.inner.decode(src).map_err(RPCError::from)? { @@ -401,9 +404,9 @@ impl OutboundCodec> for SSZSnappyOutboundCodec let n = reader.get_ref().position(); self.len = None; let _read_bytes = src.split_to(n as usize); - Ok(Some( - String::from_utf8_lossy(&>::from_ssz_bytes(&decoded_buffer)?).into(), - )) + Ok(Some(ErrorType(VariableList::from_ssz_bytes( + &decoded_buffer, + )?))) } Err(e) => match e.kind() { // Haven't received enough bytes to decode yet diff --git a/beacon_node/eth2_libp2p/src/rpc/methods.rs b/beacon_node/eth2_libp2p/src/rpc/methods.rs index bc160b9c64..62f6d120bf 100644 --- a/beacon_node/eth2_libp2p/src/rpc/methods.rs +++ b/beacon_node/eth2_libp2p/src/rpc/methods.rs @@ -19,7 +19,7 @@ type MaxErrorLen = U256; /// Wrapper over SSZ List to represent error message in rpc responses. #[derive(Debug, Clone)] -pub struct ErrorType(VariableList); +pub struct ErrorType(pub VariableList); impl From for ErrorType { fn from(s: String) -> Self { @@ -283,13 +283,13 @@ impl RPCCodedResponse { } /// Builds an RPCCodedResponse from a response code and an ErrorMessage - pub fn from_error(response_code: u8, err: String) -> Self { + pub fn from_error(response_code: u8, err: ErrorType) -> Self { let code = match response_code { 1 => RPCResponseErrorCode::InvalidRequest, 2 => RPCResponseErrorCode::ServerError, _ => RPCResponseErrorCode::Unknown, }; - RPCCodedResponse::Error(code, err.into()) + RPCCodedResponse::Error(code, err) } /// Specifies which response allows for multiple chunks for the stream handler. diff --git a/lcli/src/main.rs b/lcli/src/main.rs index aaf6273c9f..a8663556a3 100644 --- a/lcli/src/main.rs +++ b/lcli/src/main.rs @@ -15,7 +15,7 @@ mod transition_blocks; use clap::{App, Arg, ArgMatches, SubCommand}; use environment::EnvironmentBuilder; -use log::Level; +use log::LevelFilter; use parse_hex::run_parse_hex; use std::fs::File; use std::path::PathBuf; @@ -25,7 +25,10 @@ use transition_blocks::run_transition_blocks; use types::{test_utils::TestingBeaconStateBuilder, EthSpec, MainnetEthSpec, MinimalEthSpec}; fn main() { - simple_logger::init_with_level(Level::Info).expect("logger should initialize"); + simple_logger::SimpleLogger::new() + .with_level(LevelFilter::Info) + .init() + .expect("Logger should be initialised"); let matches = App::new("Lighthouse CLI Tool") .version(lighthouse_version::VERSION)