fix tests
This commit is contained in:
parent
498b2fb0b1
commit
9290fdde85
@ -215,7 +215,7 @@ mod tests {
|
||||
tap.unlock_account_permanently(addr, "0".into()).unwrap();
|
||||
|
||||
let raw_rlp = message_full_rlp(
|
||||
|mh| tap.sign(addr, None, mh).ok().map(H520::from),
|
||||
|mh| tap.sign(addr, None, mh).map(H520::from),
|
||||
123,
|
||||
2,
|
||||
Step::Precommit,
|
||||
|
@ -134,6 +134,7 @@ impl Tendermint {
|
||||
|
||||
fn broadcast_message(&self, message: Bytes) {
|
||||
if let Some(ref channel) = *self.message_channel.lock() {
|
||||
trace!(target: "poa", "broadcast_message: {:?}", &message);
|
||||
match channel.send(ClientIoMessage::BroadcastMessage(message)) {
|
||||
Ok(_) => trace!(target: "poa", "broadcast_message: BroadcastMessage message sent."),
|
||||
Err(err) => warn!(target: "poa", "broadcast_message: Could not send a sealing message {}.", err),
|
||||
@ -154,7 +155,7 @@ impl Tendermint {
|
||||
) {
|
||||
Ok(m) => Some(m),
|
||||
Err(e) => {
|
||||
warn!(target: "poa", "generate_message: Could not sign the message {}", e);
|
||||
trace!(target: "poa", "generate_message: Could not sign the message {}", e);
|
||||
None
|
||||
},
|
||||
}
|
||||
@ -325,9 +326,9 @@ impl Engine for Tendermint {
|
||||
*self.authority.write() = *block.header().author()
|
||||
}
|
||||
|
||||
/// Round proposer switching.
|
||||
/// Should this node participate.
|
||||
fn is_sealer(&self, address: &Address) -> Option<bool> {
|
||||
Some(self.is_proposer(address).is_ok())
|
||||
Some(self.is_authority(address))
|
||||
}
|
||||
|
||||
/// Attempt to seal the block internally using all available signatures.
|
||||
@ -335,17 +336,21 @@ impl Engine for Tendermint {
|
||||
if let Some(ref ap) = *self.account_provider.lock() {
|
||||
let header = block.header();
|
||||
let author = header.author();
|
||||
// Only proposer can generate seal.
|
||||
if self.is_proposer(author).is_err() { return None; }
|
||||
let height = header.number() as Height;
|
||||
let round = self.round.load(AtomicOrdering::SeqCst);
|
||||
let bh = Some(header.bare_hash());
|
||||
let vote_info = message_info_rlp(height, round, Step::Propose, bh);
|
||||
if let Ok(signature) = ap.sign(*author, self.password.read().clone(), vote_info.sha3()).map(H520::from) {
|
||||
// Insert Propose vote.
|
||||
self.votes.vote(ConsensusMessage { signature: signature, height: height, round: round, step: Step::Propose, block_hash: bh }, *author);
|
||||
// Remember proposal for later seal submission.
|
||||
*self.proposal.write() = Some(header.bare_hash());
|
||||
Some(vec![
|
||||
::rlp::encode(&self.round.load(AtomicOrdering::SeqCst)).to_vec(),
|
||||
::rlp::encode(&signature).to_vec(),
|
||||
Vec::new()
|
||||
::rlp::EMPTY_LIST_RLP.to_vec()
|
||||
])
|
||||
} else {
|
||||
warn!(target: "poa", "generate_seal: FAIL: accounts secret key unavailable");
|
||||
@ -538,7 +543,7 @@ mod tests {
|
||||
(b, seal)
|
||||
}
|
||||
|
||||
fn vote<F>(engine: &Arc<Engine>, signer: F, height: usize, round: usize, step: Step, block_hash: Option<H256>) where F: FnOnce(H256) -> Option<H520> {
|
||||
fn vote<F>(engine: &Arc<Engine>, signer: F, height: usize, round: usize, step: Step, block_hash: Option<H256>) where F: FnOnce(H256) -> Result<H520, ::account_provider::Error> {
|
||||
let m = message_full_rlp(signer, height, round, step, block_hash).unwrap();
|
||||
engine.handle_message(UntrustedRlp::new(&m)).unwrap();
|
||||
}
|
||||
@ -720,11 +725,11 @@ mod tests {
|
||||
engine.register_message_channel(io_service.channel());
|
||||
|
||||
// Prevote.
|
||||
vote(&engine, |mh| tap.sign(v1, None, mh).ok().map(H520::from), h, r, Step::Prevote, proposal);
|
||||
vote(&engine, |mh| tap.sign(v1, None, mh).map(H520::from), h, r, Step::Prevote, proposal);
|
||||
|
||||
vote(&engine, |mh| tap.sign(v0, None, mh).ok().map(H520::from), h, r, Step::Prevote, proposal);
|
||||
vote(&engine, |mh| tap.sign(v1, None, mh).ok().map(H520::from), h, r, Step::Precommit, proposal);
|
||||
vote(&engine, |mh| tap.sign(v0, None, mh).ok().map(H520::from), h, r, Step::Precommit, proposal);
|
||||
vote(&engine, |mh| tap.sign(v0, None, mh).map(H520::from), h, r, Step::Prevote, proposal);
|
||||
vote(&engine, |mh| tap.sign(v1, None, mh).map(H520::from), h, r, Step::Precommit, proposal);
|
||||
vote(&engine, |mh| tap.sign(v0, None, mh).map(H520::from), h, r, Step::Precommit, proposal);
|
||||
|
||||
// Wait a bit for async stuff.
|
||||
::std::thread::sleep(::std::time::Duration::from_millis(50));
|
||||
|
Loading…
Reference in New Issue
Block a user