mirror of https://github.com/poanetwork/hbbft.git
Use DeserializeOwned where applicable.
This commit is contained in:
parent
6375decbc0
commit
493b946a4a
|
@ -4,7 +4,7 @@
|
|||
use bincode;
|
||||
use crossbeam;
|
||||
use crossbeam_channel::{Receiver, Sender};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::{de::DeserializeOwned, Serialize};
|
||||
use std::io;
|
||||
use std::net::TcpStream;
|
||||
|
||||
|
@ -34,7 +34,7 @@ pub struct CommsTask<'a, M: 'a> {
|
|||
pub node_index: usize,
|
||||
}
|
||||
|
||||
impl<'a, M: Serialize + for<'de> Deserialize<'de> + Send + 'a> CommsTask<'a, M> {
|
||||
impl<'a, M: Serialize + DeserializeOwned + Send + 'a> CommsTask<'a, M> {
|
||||
pub fn new(
|
||||
tx: &'a Sender<SourcedMessage<M, usize>>,
|
||||
rx: &'a Receiver<M>,
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
use std::collections::BTreeMap;
|
||||
use std::sync::Arc;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::{ChangeState, JoinPlan};
|
||||
use {NetworkInfo, NodeIdT};
|
||||
|
||||
|
@ -83,10 +81,7 @@ impl<C, N: NodeIdT> Batch<C, N> {
|
|||
|
||||
/// Returns the `JoinPlan` to be sent to new observer nodes, if it is possible to join in the
|
||||
/// next epoch.
|
||||
pub fn join_plan(&self) -> Option<JoinPlan<N>>
|
||||
where
|
||||
N: Serialize + for<'r> Deserialize<'r>,
|
||||
{
|
||||
pub fn join_plan(&self) -> Option<JoinPlan<N>> {
|
||||
if self.change == ChangeState::None {
|
||||
return None;
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ use std::sync::Arc;
|
|||
|
||||
use crypto::{SecretKey, SecretKeySet, SecretKeyShare};
|
||||
use rand::{self, Rand, Rng};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::{de::DeserializeOwned, Serialize};
|
||||
|
||||
use super::{ChangeState, DynamicHoneyBadger, JoinPlan, Result, Step, VoteCounter};
|
||||
use honey_badger::{HoneyBadger, SubsetHandlingStrategy};
|
||||
|
@ -42,8 +42,8 @@ impl<C, N> Default for DynamicHoneyBadgerBuilder<C, N> {
|
|||
|
||||
impl<C, N> DynamicHoneyBadgerBuilder<C, N>
|
||||
where
|
||||
C: Contribution + Serialize + for<'r> Deserialize<'r>,
|
||||
N: NodeIdT + Serialize + for<'r> Deserialize<'r> + Rand,
|
||||
C: Contribution + Serialize + DeserializeOwned,
|
||||
N: NodeIdT + Serialize + DeserializeOwned + Rand,
|
||||
{
|
||||
/// Returns a new `DynamicHoneyBadgerBuilder` configured to use the node IDs and cryptographic
|
||||
/// keys specified by `netinfo`.
|
||||
|
|
|
@ -5,7 +5,7 @@ use std::sync::Arc;
|
|||
use bincode;
|
||||
use crypto::Signature;
|
||||
use rand::{self, Rand};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::{de::DeserializeOwned, Serialize};
|
||||
|
||||
use super::votes::{SignedVote, VoteCounter};
|
||||
use super::{
|
||||
|
@ -46,8 +46,8 @@ pub struct DynamicHoneyBadger<C, N: Rand> {
|
|||
|
||||
impl<C, N> DistAlgorithm for DynamicHoneyBadger<C, N>
|
||||
where
|
||||
C: Contribution + Serialize + for<'r> Deserialize<'r>,
|
||||
N: NodeIdT + Serialize + for<'r> Deserialize<'r> + Rand,
|
||||
C: Contribution + Serialize + DeserializeOwned,
|
||||
N: NodeIdT + Serialize + DeserializeOwned + Rand,
|
||||
{
|
||||
type NodeId = N;
|
||||
type Input = Input<C, N>;
|
||||
|
@ -79,8 +79,8 @@ where
|
|||
|
||||
impl<C, N> DynamicHoneyBadger<C, N>
|
||||
where
|
||||
C: Contribution + Serialize + for<'r> Deserialize<'r>,
|
||||
N: NodeIdT + Serialize + for<'r> Deserialize<'r> + Rand,
|
||||
C: Contribution + Serialize + DeserializeOwned,
|
||||
N: NodeIdT + Serialize + DeserializeOwned + Rand,
|
||||
{
|
||||
/// Returns a new `DynamicHoneyBadgerBuilder`.
|
||||
pub fn builder() -> DynamicHoneyBadgerBuilder<C, N> {
|
||||
|
|
|
@ -3,7 +3,7 @@ use std::sync::Arc;
|
|||
|
||||
use bincode;
|
||||
use crypto::Signature;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::Serialize;
|
||||
|
||||
use super::{Change, ErrorKind, Result};
|
||||
use fault_log::{FaultKind, FaultLog};
|
||||
|
@ -28,7 +28,7 @@ pub struct VoteCounter<N> {
|
|||
|
||||
impl<N> VoteCounter<N>
|
||||
where
|
||||
N: NodeIdT + Serialize + for<'r> Deserialize<'r>,
|
||||
N: NodeIdT + Serialize,
|
||||
{
|
||||
/// Creates a new `VoteCounter` object with empty buffer and counter.
|
||||
pub fn new(netinfo: Arc<NetworkInfo<N>>, era: u64) -> Self {
|
||||
|
|
|
@ -3,7 +3,7 @@ use std::marker::PhantomData;
|
|||
use std::sync::Arc;
|
||||
|
||||
use rand::{self, Rand, Rng};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::{de::DeserializeOwned, Serialize};
|
||||
|
||||
use super::HoneyBadger;
|
||||
use honey_badger::SubsetHandlingStrategy;
|
||||
|
@ -27,7 +27,7 @@ pub struct HoneyBadgerBuilder<C, N> {
|
|||
|
||||
impl<C, N> HoneyBadgerBuilder<C, N>
|
||||
where
|
||||
C: Contribution + Serialize + for<'r> Deserialize<'r>,
|
||||
C: Contribution + Serialize + DeserializeOwned,
|
||||
N: NodeIdT + Rand,
|
||||
{
|
||||
/// Returns a new `HoneyBadgerBuilder` configured to use the node IDs and cryptographic keys
|
||||
|
|
|
@ -7,7 +7,7 @@ use std::sync::Arc;
|
|||
use bincode;
|
||||
use crypto::Ciphertext;
|
||||
use rand::Rand;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::{de::DeserializeOwned, Serialize};
|
||||
|
||||
use super::{Batch, ErrorKind, MessageContent, Result, Step};
|
||||
use fault_log::{Fault, FaultKind, FaultLog};
|
||||
|
@ -188,7 +188,7 @@ pub struct EpochState<C, N: Rand> {
|
|||
|
||||
impl<C, N> EpochState<C, N>
|
||||
where
|
||||
C: Contribution + Serialize + for<'r> Deserialize<'r>,
|
||||
C: Contribution + Serialize + DeserializeOwned,
|
||||
N: NodeIdT + Rand,
|
||||
{
|
||||
/// Creates a new `Subset` instance.
|
||||
|
|
|
@ -4,7 +4,7 @@ use std::sync::Arc;
|
|||
|
||||
use bincode;
|
||||
use rand::{Rand, Rng};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::{de::DeserializeOwned, Serialize};
|
||||
|
||||
use super::epoch_state::EpochState;
|
||||
use super::{Batch, Error, ErrorKind, HoneyBadgerBuilder, Message, MessageContent, Result};
|
||||
|
@ -40,7 +40,7 @@ pub type Step<C, N> = ::Step<HoneyBadger<C, N>>;
|
|||
|
||||
impl<C, N> DistAlgorithm for HoneyBadger<C, N>
|
||||
where
|
||||
C: Contribution + Serialize + for<'r> Deserialize<'r>,
|
||||
C: Contribution + Serialize + DeserializeOwned,
|
||||
N: NodeIdT + Rand,
|
||||
{
|
||||
type NodeId = N;
|
||||
|
@ -68,7 +68,7 @@ where
|
|||
|
||||
impl<C, N> HoneyBadger<C, N>
|
||||
where
|
||||
C: Contribution + Serialize + for<'r> Deserialize<'r>,
|
||||
C: Contribution + Serialize + DeserializeOwned,
|
||||
N: NodeIdT + Rand,
|
||||
{
|
||||
/// Returns a new `HoneyBadgerBuilder` configured to use the node IDs and cryptographic keys
|
||||
|
|
|
@ -28,7 +28,7 @@ use std::{cmp, iter};
|
|||
|
||||
use failure::{Backtrace, Context, Fail};
|
||||
use rand::{Rand, Rng};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::{de::DeserializeOwned, Serialize};
|
||||
|
||||
use dynamic_honey_badger::{self, Batch as DhbBatch, DynamicHoneyBadger, Message};
|
||||
use transaction_queue::TransactionQueue;
|
||||
|
@ -107,8 +107,8 @@ pub type QueueingHoneyBadgerWithStep<T, N, Q> = (QueueingHoneyBadger<T, N, Q>, S
|
|||
|
||||
impl<T, N, Q> QueueingHoneyBadgerBuilder<T, N, Q>
|
||||
where
|
||||
T: Contribution + Serialize + for<'r> Deserialize<'r> + Clone,
|
||||
N: NodeIdT + Serialize + for<'r> Deserialize<'r> + Rand,
|
||||
T: Contribution + Serialize + DeserializeOwned + Clone,
|
||||
N: NodeIdT + Serialize + DeserializeOwned + Rand,
|
||||
Q: TransactionQueue<T>,
|
||||
{
|
||||
/// Returns a new `QueueingHoneyBadgerBuilder` configured to use the node IDs and cryptographic
|
||||
|
@ -140,7 +140,6 @@ where
|
|||
/// Creates a new Queueing Honey Badger instance with an empty buffer.
|
||||
pub fn build<R>(self, rng: R) -> QueueingHoneyBadgerWithStep<T, N, Q>
|
||||
where
|
||||
T: Contribution + Serialize + for<'r> Deserialize<'r>,
|
||||
R: 'static + Rng + Send + Sync,
|
||||
{
|
||||
self.build_with_transactions(None, rng)
|
||||
|
@ -156,7 +155,6 @@ where
|
|||
) -> Result<QueueingHoneyBadgerWithStep<T, N, Q>>
|
||||
where
|
||||
TI: IntoIterator<Item = T>,
|
||||
T: Contribution + Serialize + for<'r> Deserialize<'r>,
|
||||
R: 'static + Rng + Send + Sync,
|
||||
{
|
||||
self.queue.extend(txs);
|
||||
|
@ -175,12 +173,7 @@ where
|
|||
/// queue.
|
||||
#[derive(Derivative)]
|
||||
#[derivative(Debug)]
|
||||
pub struct QueueingHoneyBadger<T, N, Q>
|
||||
where
|
||||
T: Contribution + Serialize + for<'r> Deserialize<'r>,
|
||||
N: NodeIdT + Serialize + for<'r> Deserialize<'r> + Rand,
|
||||
Q: TransactionQueue<T>,
|
||||
{
|
||||
pub struct QueueingHoneyBadger<T, N: Rand, Q> {
|
||||
/// The target number of transactions to be included in each batch.
|
||||
batch_size: usize,
|
||||
/// The internal `DynamicHoneyBadger` instance.
|
||||
|
@ -196,8 +189,8 @@ pub type Step<T, N, Q> = ::Step<QueueingHoneyBadger<T, N, Q>>;
|
|||
|
||||
impl<T, N, Q> DistAlgorithm for QueueingHoneyBadger<T, N, Q>
|
||||
where
|
||||
T: Contribution + Serialize + for<'r> Deserialize<'r> + Clone,
|
||||
N: NodeIdT + Serialize + for<'r> Deserialize<'r> + Rand,
|
||||
T: Contribution + Serialize + DeserializeOwned + Clone,
|
||||
N: NodeIdT + Serialize + DeserializeOwned + Rand,
|
||||
Q: TransactionQueue<T>,
|
||||
{
|
||||
type NodeId = N;
|
||||
|
@ -230,8 +223,8 @@ where
|
|||
|
||||
impl<T, N, Q> QueueingHoneyBadger<T, N, Q>
|
||||
where
|
||||
T: Contribution + Serialize + for<'r> Deserialize<'r> + Clone,
|
||||
N: NodeIdT + Serialize + for<'r> Deserialize<'r> + Rand,
|
||||
T: Contribution + Serialize + DeserializeOwned + Clone,
|
||||
N: NodeIdT + Serialize + DeserializeOwned + Rand,
|
||||
Q: TransactionQueue<T>,
|
||||
{
|
||||
/// Returns a new `QueueingHoneyBadgerBuilder` configured to use the node IDs and cryptographic
|
||||
|
|
Loading…
Reference in New Issue