message: network-grpc: Fix up bounds on the BlockService impl of Client
diff: use crate::gen::{self, node::client as gen_client};
  -use chain_core::property::{self, Deserialize, FromStr, HasHeader, Serialize};
  +use chain_core::property::{self, Deserialize, FromStr, Serialize};
  use network_core::client::{self as core_client, block::BlockService};
  use futures::future::Executor;
  @@ -53,13 +53,14 @@ pub mod chain_bounds {
  {
  }
  - pub trait Block: property::Block + property::Deserialize {}
  + pub trait Block: property::Block + property::HasHeader + property::Deserialize {}
  impl<T> Block for T
  where
  - T: property::Block + property::Deserialize,
  + T: property::Block + property::HasHeader + property::Deserialize,
  <T as property::Block>::Id: BlockId,
  <T as property::Block>::Date: BlockDate,
  + <T as property::HasHeader>::Header: Header,
  {
  }
  }
  @@ -345,11 +346,11 @@ where
  impl<T, S, E> BlockService<T> for Client<S, E>
  where
  - T: chain_bounds::Block + HasHeader,
  + T: chain_bounds::Block,
  + T::Header: property::Header<Id = T::Id, Date = T::Date>,
  S: AsyncRead + AsyncWrite,
  E: Executor<Background<S, BoxBody>> + Clone,
  <T as property::Block>::Date: FromStr,
  - <T::Header as property::Header>::Date: FromStr,
  {
  type TipFuture = ResponseFuture<T::Header, gen::node::TipResponse>;
  @@ -359,6 +360,9 @@ where
  type GetBlocksStream = ResponseStream<T, gen::node::Block>;
  type GetBlocksFuture = ResponseStreamFuture<T, gen::node::Block>;
  + type BlockSubscription = ResponseStream<T::Header, gen::node::Header>;
  + type BlockSubscriptionFuture = ResponseStreamFuture<T::Header, gen::node::Header>;
  +
  fn tip(&mut self) -> Self::TipFuture {
  let req = gen::node::TipRequest {};
  let future = self.node.tip(Request::new(req));
  @@ -372,9 +376,6 @@ where
  ResponseStreamFuture::new(future)
  }
  - type BlockSubscription = ResponseStream<T::Header, gen::node::Header>;
  - type BlockSubscriptionFuture = ResponseStreamFuture<T::Header, gen::node::Header>;
  -
  fn subscribe_to_blocks(&mut self) -> Self::BlockSubscriptionFuture {
  let req = gen::node::BlockSubscriptionRequest {};
  let future = self.node.subscribe_to_blocks(Request::new(req));
  