add new client messaging
This commit is contained in:
		
							parent
							
								
									802d5c669d
								
							
						
					
					
						commit
						45027ea306
					
				| @ -576,6 +576,11 @@ impl Client { | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	/// Used by PoA to communicate with peers.
 | ||||||
|  | 	pub fn broadcast_message(&self, message: Bytes) { | ||||||
|  | 		self.notify(|notify| notify.broadcast(message.clone())); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	/// Attempt to get a copy of a specific block's final state.
 | 	/// Attempt to get a copy of a specific block's final state.
 | ||||||
| 	///
 | 	///
 | ||||||
| 	/// This will not fail if given BlockID::Latest.
 | 	/// This will not fail if given BlockID::Latest.
 | ||||||
| @ -1231,9 +1236,7 @@ impl BlockChainClient for Client { | |||||||
| 
 | 
 | ||||||
| 	// TODO: Make it an actual queue, return errors.
 | 	// TODO: Make it an actual queue, return errors.
 | ||||||
| 	fn queue_infinity_message(&self, message: Bytes) { | 	fn queue_infinity_message(&self, message: Bytes) { | ||||||
| 		if let Ok(new_message) =  self.engine.handle_message(UntrustedRlp::new(&message)) { | 		self.engine.handle_message(UntrustedRlp::new(&message)); | ||||||
| 			self.notify(|notify| notify.broadcast(new_message.clone())); |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	fn signing_network_id(&self) -> Option<u8> { | 	fn signing_network_id(&self) -> Option<u8> { | ||||||
|  | |||||||
| @ -52,6 +52,8 @@ pub enum ClientIoMessage { | |||||||
| 	UpdateSealing, | 	UpdateSealing, | ||||||
| 	/// Submit seal (useful for internal sealing).
 | 	/// Submit seal (useful for internal sealing).
 | ||||||
| 	SubmitSeal(H256, Vec<Bytes>), | 	SubmitSeal(H256, Vec<Bytes>), | ||||||
|  | 	/// Broadcast a message to the network.
 | ||||||
|  | 	BroadcastMessage(Bytes) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /// Client service setup. Creates and registers client and network services with the IO subsystem.
 | /// Client service setup. Creates and registers client and network services with the IO subsystem.
 | ||||||
| @ -222,11 +224,15 @@ impl IoHandler<ClientIoMessage> for ClientIoHandler { | |||||||
| 			}, | 			}, | ||||||
| 			ClientIoMessage::UpdateSealing => { | 			ClientIoMessage::UpdateSealing => { | ||||||
| 				trace!(target: "poa", "message: UpdateSealing"); | 				trace!(target: "poa", "message: UpdateSealing"); | ||||||
| 				self.client.update_sealing() | 				self.client.update_sealing(); | ||||||
| 			}, | 			}, | ||||||
| 			ClientIoMessage::SubmitSeal(ref hash, ref seal) => { | 			ClientIoMessage::SubmitSeal(ref hash, ref seal) => { | ||||||
| 				trace!(target: "poa", "message: SubmitSeal"); | 				trace!(target: "poa", "message: SubmitSeal"); | ||||||
| 				self.client.submit_seal(*hash, seal.clone()) | 				self.client.submit_seal(*hash, seal.clone()); | ||||||
|  | 			}, | ||||||
|  | 			ClientIoMessage::BroadcastMessage(ref message) => { | ||||||
|  | 				trace!(target: "poa", "message: BroadcastMessage"); | ||||||
|  | 				self.client.broadcast_message(message.clone()); | ||||||
| 			}, | 			}, | ||||||
| 			_ => {} // ignore other messages
 | 			_ => {} // ignore other messages
 | ||||||
| 		} | 		} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user