 Research
 Open Access
 Published:
Efficient consensus algorithm for the accurate faulty node tracking with faster convergence rate in a distributed sensor network
EURASIP Journal on Wireless Communications and Networking volume 2016, Article number: 195 (2016)
Abstract
One of the challenging issues in a distributed computing system is to reach on a decision with the presence of so many faulty nodes. These faulty nodes may update the wrong information, provide misleading results and may be nodes with the depleted battery power. Consensus algorithms help to reach on a decision even with the faulty nodes. Every correct node decides some values by a consensus algorithm. If all correct nodes propose the same value, then all the nodes decide on that. Every correct node must agree on the same value. Faulty nodes do not reach on the decision that correct nodes agreed on. Binary consensus algorithm and average consensus algorithm are the most widely used consensus algorithm in a distributed system. We apply binary consensus and average consensus algorithm in a distributed sensor network with the presence of some faulty nodes. We evaluate these algorithms for better convergence rate and error rate.
Introduction
The miniaturization of electronic devices provide the impact on the development of wireless sensor network (WSN). WSNs consist of so many tiny sensor nodes capable of sensing, transmitting and receiving signals. Distributed sensor nodes are deployed in an ad hoc manner and responsible for various applications such as monitoring, surveillance, security and healthcare load balancing [1]. Sensor nodes communicate with each other in a multihop fashion. Nodes need to perform some tasks at each time step and report a central base station. For large distributed sensor networks, it is difficult to deploy so many central base stations in the surveillance area. But with the central base stations, task management becomes centralized. The task management technique by distributed sensor nodes cooperatively have been studied in recent years. It is not feasible to take decision by one independent node. Consistent decision making using cooperation among sensor nodes by some information exchange mechanism is suitable for a distributed system. To reach a decision collectively using cooperation is called to reach consensus [2].
To reach consensus in a quicktime is a challenging issue in a distributed sensor network. Consensus algorithms help to reach on a particular decision in a way that the globally optimal decision is reached in a distributed way. Binary consensus and average consensus are two widely used consensus algorithms. These are two distributed iterative information exchange algorithms.
Basically consensus algorithms are used in control area. Recently the consensus algorithm is also used in distributed network. This helps to achieve global optimal decision in a distributed fashion without any central controller. There are some works to reach consensus using either binary consensus or using average consensus algorithm. To our best knowledge, there is no work to evaluate these two consensus algorithms for convergence rate comparison.
Consensus algorithm is acted as a way to achieve globally optimal decision in a totally decentralized way, without sending all the sensors data to a fusion center [3]. Recently, the most attractive consensus algorithm is the gossip algorithm, where pairs of nodes are selected at random to exchange and update their values. Compared with routing algorithm, it is robust and easily implemented. It is not necessary to put much effort on route discovery and route maintenance, and it is a distributed iterative information exchange scheme. However, random information exchange between neighbors also leads to overhead and increases the time to reach consensus in the network. In addition, the connectivity of the network affects the accuracy of the final consensus value.
We apply binary and average consensus algorithms in a distributed sensor network. No study has analyzed the convergence rate for an irregular network topology with the faulty nodes. Hence, in this paper, we investigate the proposed algorithm in irregular network topology, such as Cshaped, Ishaped, Hshaped, Dshaped, and Oshaped topology with faulty nodes. An irregular sensor model is introduced to evaluate the robustness of the algorithm. We apply segment tree data structures to reach consensus decisions at faster time. In addition we also investigate the proposed algorithm in regular network topology by creating random networks.
Actually, we use our own system model to apply binary consensus and average consensus algorithm in a distributed network for reaching a consensus decision. Our algorithm runs for a huge network. Initially we don’t have any idea of the whole network besides there can be many faulty nodes. Our main goal is to reach consensus decision as fast as possible. In few cases, randomly chosen nodes will run faster but we are ignoring random choices because random choices might get huge amount of time to reach a consensus decisions. So, we can claim that the probability of our algorithm runs faster than random choicebased algorithm like gossip algorithm.
The rest of this paper is organized as follows. Section 2 discusses related work. Section 3 explains our network model. In Section 4 we present background and our proposed method. Section 5 is our proposed algorithms, and Section 6 experimental results and evaluation for distributed sensor networks. Section 7 concludes this paper with a brief summary.
Related works
The widely used consensus algorithm to reach a decision in a distributed environment is gossip algorithm [4]. In gossip algorithm, pair of nodes are chosen randomly to exchange information and update their values. It is easy to implement. But, the random information exchange creates more overhead in the network and it takes more time to reach consensus. Generally, those algorithm works for various irregular topologies like ring topology. Sometimes, randomized consensus algorithm can run faster but there is guarantee. This algorithm terminates after a particular amount of time even if the consensus is reached or not. Time limitation leads to lower efficiency and higher sensitivity to disturbances. The average consensus algorithm [5] helps to reach the consensus by updating their local values using average values of their neighbor’s values. Another widely used consensus algorithm is binary majority consensus [6]. Connectivity between nodes also affect the consensus value for the gossip algorithm. Besides few randomized consensus algorithms [7], [8] also exist. This consensus algorithm does not provide guaranteed consensus for the additive noise in the network. Few papers used also gossip algorithm but the iteration number is fixed [9]. Its an overview of the use of consensus algorithm in cooperative control and those consensus algorithms are also single and double integrator dynamical systems. Those algorithms run for rigid body attitude dynamics. Few papers focus on average consensus algorithm on asymmetric interaction mechanisms, with timevarying weights on each edge, it is possible to provide a substantial increase of convergence rate with respect to the symmetric timeinvariant case [10]. There are some research works which are focusing on energy efficiency and so they used clusterbased distributed consensus algorithm in forms of both fixed linear iteration and randomized gossip. Some rare works found like working on autonomous vehicle [11]. As distributed algorithms are typically iterative and suffer from time and energy consumption so they come up with this idea. As standard gossip algorithms can lead to a significant waste of energy by repeatedly recirculating redundant information they propose and analyze an alternative gossiping scheme that exploits geographic information. By utilizing geographic routing combined with a simple resampling method, they demonstrate substantial gains over previously proposed gossip protocols [12]. Few paper works study distributed broadcasting algorithms for exchanging information and computing in an arbitrarily connected network of nodes. Specifically, they study a broadcastingbased gossiping algorithm to compute the (possibly weighted) average of the initial measurements of the nodes at every node in the network. They showed that the broadcast gossip algorithms converge almost surely to a consensus [13]. Some paper works on greedy based like that paper presents greedy gossip with eavesdropping (GGE), a new average consensus algorithm for wireless sensor network applications [14]. Some paper works interested in the problem of computing the average consensus in a distributed fashion on random geometric graphs they describe a new algorithm called Multiscale Gossip which employs a hierarchical decomposition of the graph to partition the computation into tractable subproblems [15]. Some paper works on superposition gossiping for average consensus in cluster wireless sensor networks where the nodes in each cluster exploit the natural superposition property of wireless multipleaccess channels to significantly decrease local averaging times [16]. A paper proposed an ondemand distributed clustering algorithm for multihop packet radio networks. They try to keep the number of nodes in a cluster around a predefined threshold to facilitate the optimal operation of the medium access control (MAC) protocol [17]. Few papers consider the problem of organizing a set of mobile, radioequipped nodes into a connected network. They require that a reliable structure be acquired and maintained in the face of arbitrary topological changes due to node motion and/or failure [18].
Network model
The considered network model is undirected. The network model may have some faulty nodes but we do not have any idea about that at first. We consider a clustered network with a cluster head for each cluster. Cluster heads can communicate with all the nodes in their respective clusters. Cluster head of a particular cluster can communicate with the cluster heads in the other clusters. Cluster heads also work as normal nodes with an additional characteristic is that they cannot be faulty which is our assumption. We assume the connection between the cluster heads form a complete graph and the graph is completely connected.
Each node of the sensor network hold three classes of values which are energy, binary states, and average states. As we are working on both binary and average consensus, we need to use it. When a node’s energy becomes zero or less, it becomes a faulty node and cannot communicate throughout the network.
Figure 1 a defines a sample of network model where blue bold circles define cluster heads; we may see each sensor node’s neighbor, cluster area, and their network area. Figure 1 b defines a sample network model but here we just show for single cluster area where a cluster head exist which sensor id is 5.
In Fig. 1 b, edge defines physical distances and double circles define cluster heads. In Fig. 1 a, we can see that one cluster area nodes has not any communication link to other cluster area sensor nodes.
The reason is one’s cluster area sensor nodes do not fall under other cluster area sensor nodes generally. But, there can be a communication link possible if their transition radius crosses other sensor nodes.
We provide both regular and irregular networks. Both network models are exactly the same as this network model, but we did not mark the networks cluster head or cluster area.
Background and proposed methods
Segment tree
In Computer Science, a segment tree is a tree data structure for storing intervals, or segments. It allows querying which of the stored segments contain a given point. It is, in principle, a static structure: that is, its structure cannot be modified once it is built. The node of a segment tree takes a given priority based value from a specific range. Almost all methods generally use recursive process. Segment tree has a single root/top node and every node of a segment tree except leaves has two children which are left and right. The left child’s id is TreeNode ID * 2 and the right child’s id is TreeNode ID * 2+1. As segment tree generally works in recursive process so every node except leaves go to it is both left and right children recursively. The base case of recursive process is stopped when calling reaches leaf nodes. Generally a segment tree has three methods which are build, query, and update. The depth of a segment tree is log (number of nodes). The general three methods of a segment tree described below. To describe the below part, we considered the segment tree of Fig. 2 and set priority as taking Max Value and N defines number of nodes.
Build We can build a segment tree from the given set of elements in an array. For example the given array is [4, –9, 3, 7]. The segment tree for that array is given in Fig. 2. While building, it will start from top node which starts from 1 and it takes the max value of the ranges among 1 to 7. It is actually topdown processing. So from top node 1 to leave nodes 4, 5, 6, 7, it goes when its reached leaves node it saves the corresponding array value. For example leave node 7 which take the maximum value of ranges [44] saves array value of four number index which is 7. Then, it goes the parent node by backtracking as generally segment tree processes are recursive. Besides, segment tree every node parent can be found by divide its id by two except the root node as root node has no parent exist. When a node is not a leaf node, it considers its both left and right child value which also can be got from backtracking. So, from its left and right child value, it takes the maximum among them as both left and right child value are computed when we ready to save values to that node. For example: tree node id 1 will save value 7 because its left child has 4 and right child has 7 so it takes the maximum. That is how segment tree build process works. The complexity of build process is O(nlog(n)) as we updated every leaf nodes individually.
Query The query process is just like searching from it. For example, what is the max value from array index 2 to 4? The process is as follows: we start from root node if we see that a node range is set under required query then we will go to its left and right child node. For example, when we are in root node, its range is [1 4] and required range is [2 4] that means required ranges set under root node. We should divide the root node to left and right child. Then, we can see that the right child total range sets under query range so instead of divide it by left and right child we should take that node value which is 7. On the other hand, root node’s left child take ranges [1–2] which set under query range but not totally so we again divide it by left and right child which are node id 4[1–1] and 5[2–2] where node id 5 sets under totally to the queried range so we will take its value which is –9 but node id 4[1–1] is out of the queried range. So we need to just ignore that node. At last, the required answer is the max value between 7 and –9 which is 7. Time Complexity is O(log(n)).
Update Its update operating is almost like its query operation. After searching the required range, its update that leaf node because, we assume given range for update operation is like [ii]. So, we will get to that leaf node by recursively and update it from there. For example, let us update three number index of that array and change it to 10. So, by recursively when we will reach to the leaf node of 6[33], we will change it to 10. By backtracking, we will reach tree node id 3. Now, the max value will be 10 instead of 7. At last, we will reach the root node max value will be 10 instead of 7. That is how segment tree update process works. Besides if the given range of update operation is [ij], where i! = j, then another process can be applied which we call lazy propagation. In our problem, it is not needed. So, we just skipped it. Time complexity is O(log(n)). In our problem for update process, we implemented faster bottomup process instead of recursive topdown process.
Creating two weighted graphs
In our main graph, edge has many characteristics. That particular edge hold many values which are Binary states, average states, binary protocols weight/priority, average weight, two end pointer energy, distance from peer to peer node’s, unique id, node id of two end pointer. In Fig. 1 b, edge represents distance. So, we should make more two weighted graphs, but here, edge represents not only physical distances but also above described characteristics. Here, actually Fig. 3 a, b are same graphs. To make it clear, we have drawn two graphs to view the edges for binary and average consensus individually. We collected the edge information from Table 1, sensor node information, and link information from Fig. 1 b. In both of the figures, cluster head is defined as a 5 sensor node id by drawing a double circle.
Binary consensus When we try to reach a consensus decision in a distributed network, every node of the network can hold initially one of the two values, 0 and 1. When two nodes communicate and run the updating protocols, they compare their current state and then each assume a new state based on what they have seen. When binary consensus algorithm is running, a node may be in one of the five states which can be described informally as:

0  The node believes the majority opinion is most likely false.

1  The node believes the majority opinion is most likely true.

e0  The node believes the majority opinion might be false.

e1  The node believes the majority opinion might be true.

F  The node is a faulty node. Convergence occurs when all nodes have states 0,e0 or 1,e1.
Updating protocol for binary consensus:
For updating, we have to follow updating protocols [3]. The protocols are given below with an example:

1) (0,1) → (e1,e0)

2) (e0,1) → (1,e1)

3) (0,e1) → (e0,0)

4) (e0,e1) → (e1,e0)

5) (0,e0) → (e0,0)

6) (e1,1) → (1,e1)

7) (s,s) → (s,s),for s = 0,1,e0,e1

8) (s,F) → (s,F) here, F indicates faulty node
We introduce a new protocol here which is (s,F) →(s,F) as mentioned at number 8 above. We must give priority to these protocols. We assign priority based on decreasing order serial from the updating protocols. We propose serial no.1 as highest priority. Table 2 represents total priority table for binary consensus.
Let us describe the situation in Fig. 4. First node B and C run updating protocol. The states will become e0 and e1. Then, A and B run updating protocol; their states will become e1 and 1. Now, a consensus is reached because all the states are either e1 or 1. Actually in Fig. 4, we did not consider any cluster head or faulty node we just tried to show how updating protocols are used for binary consensus.
Average consensus For average consensus, every state initially takes some value and here energy plays very important role. While pair wise updating in average consensus the new states value for both pair is its average value. Besides, we propose its weight which is below:

A = Energy(u)  distance and B = Energy(v)  distance

weight(u,v) = A + B if A and B >= 0

otherwise weight(u,v) = 0
Updating protocol for average consensus: there is only one updating protocol for average consensus which is simple its average by consideration of number of iterations which is given below:
Edge array and edge graph
Now, we have to make an array which stores edges with its information. In edge graph, we have neighbor edges [hashed unique id] to every node. Figure 5 is the edge array of our main graph, and Table 3 defines our edge graph. Algorithm 1 is based on creating Edge Array and Algorithm 2 is based on creating edge graph.
Proposed algorithms
Here, we applied our proposed algorithm for consensus in two different independent segment trees. We first build two segment trees from corresponding two edge arrays, and by the help of edge graph, we track down both tree leaf index id in STreeNode, S2TreeNode from edge arrays. We did it for future bottom up processing and avoid unnecessary recursion. We also provide algorithms for creating edge array and edge graph which we described earlier.
Modeling Edge graph proved great contribution to make fasten the algorithm. Without doing algorithm time complexity, will be much more higher.
In Edge graph, we tracked the each node’s next neighbor edges. We can easily walk from node to its perspective neighbor edges which is very important in our algorithm.
Our main algorithm is basically algorithm 6 and 10 which are our main binary consensus and average consensus. Algorithm 3, 4, 5, and 6 are for binary consensus algorithm. In Algorithm 6, we used algorithm 3, 4, and 5.
Algorithm 7, 8, 9, and 10 are for average consensus algorithms. In algorithm 10, we used algorithm 7, 8, and 9.
Creating edge array algorithm is really simple actually, we just take an array class of edges, then put all the edges in the array, but we need to put the edges all characteristics in the array. In addition, we need to track the vice versa EdgeID to create edge graph in creating edge graph algorithm.
After creating Edge array, we are ready to create Edge Graph because we efficiently tracked down EdgeID. We also provide creating edge graph algorithm.
To create Edge Graph, we just iterate all the sensor nodes and save their neighbor edges. We get their neighbor edges from EdgeID which we tracked earlier.
There is a trick to use EdgeID. First, we should traverse each sensor nodes and their neighbor sensor nodes. So, now it is become easier for us to use EdgeID efficiently to create Edge graph.
Segment tree for binary consensus
Now, we have to make a segment tree for the whole part of the edge array. Here, every node of the segment tree can take four elements which are mainEdge, dummyEdge, weight, and size. While considering the left child and right child for the upper nodes, we will choose the highest prioritybased edge as mainEdge and dummyEdge will be NULL but here if highest priority based edge exist more than one and all of them follow protocol id [1 and 6 both] then we take two edges.
One edge is saved in mainEdge and another edge is saved in dummyEdge. Besides if all of their weights follow same protocol (1 or 6 not both) then we save any single edge to tree nodes mainEdge and dummyEdge will be NULL.
We consider every time top node from the segment tree and if the top node has both edges, we take any node from it and change its two endpoints value and update its information according to the updating protocols.
Here, we might have to change many edges information’s according to updating protocols. Because if the edges end points connected to another edges, then we have to change their information also.
For example, see the Fig. 6 (top node id 1). When we will work on edge [46], we should make change edges [45] and [65] information also. While updating we have to make change their information inside the segment tree by the help of Edge graph and as we track down in STreeNodearray the leaf nodes index of the segment tree so we can go to that node and update it from there and by bottom up processing we make changes until we reach to the root. While doing bottom up processing, we will do the same thing what we did for building the segment tree.
When we can see that there is only one edge mainEdge in the top node of the segment tree and its priority is third lowest priority which is 3 (updating protocol number 1 and 6), so that means the other nodes in the segment tree are as same as top node or other nodes contain faulty nodes or having second lowest or first lowest priority edges so we do not need to consider those nodes in this time. But if segment trees topNode contains faulty nodes of the network, then as it follows lowest priority based updating protocols. So consensus will never occur we can claim that easily.
While updating, we must also minimize energy from that edge two pointer node. Besides, binary consensus has zero percent error rate. If segment trees topNode contains faulty nodes of the network so it follows lowest prioritybased updating protocols. So, consensus will never occur we can claim that easily.
Besides Binary consensus has zero percent error rate. Figure 6 defines binary consensus algorithm simulation for a single iteration. In algorithms mBX means mainEdges binary state X, BPId means binary protocol ID.
Our binary consensus algorithm focus on how fast we can reach a situation when all the sensor nodes value states are e1 or 1 or all the sensor nodes value e0 or 0.
That is why we gave the priority of each node to node states, and greedily, we try to reach a consensus situation. The lower prioritybased edges come late for processing and higher priority edges come earlier for processing.

Complexity: O(treeNodes * (maxEnergy/minDistance) * treeNodes * log(treeNodes))
Segment tree for average consensus
Now, we have to make another segment tree for the edge array. Here, every node of the segment tree can take only single elements which we name treeEdge. To build a segment tree as it goes from top to bottom so when we reach the leaf nodes of the segment tree, we mapped the leaf node number to its corresponding edge to S2TreeNodeArray (have to do it for future purposes) and while considering the left child and right child for the upper nodes in segment tree we will choose the highest weightbased edge for average consensus.
This algorithm runs for edges and implemented in another segment tree data structure. For every time, we will consider the top node from the segment tree and as initially we have highest max weight edges based average consensus weight in the top node. When Top node Average consensus weight is not zero, we will continue our average consensus algorithm otherwise we should stop. Figure 7 defines average consensus algorithm simulation for a single iteration. Average consensus must have some error rate. The formula for calculating error rate is given below:
We will calculate this error rate after every single iterations. If we reached the highest possible average consensus point, we cant reduce error rate more. Few shortcuts tAX means treeEdges average state X.
Our average consensus algorithm focuses on how fast we can reach a situation when all the sensor nodes value states are same and second focus is we should less reduce the energy for the sensor nodes.
That is why we proposed the edge weight for average consensus. The lower prioritybased edges comes late for processing and higher priority edges come earlier for processing. For average consensus, lower prioritybased edges mean lower edge weight.

Complexity: O(treeNodes * (maxEnergy/minDistance) * treeNodes * log(treeNodes))
Experimental results and evaluation
We simulate our environment with the distributed sensor nodes using Java programming language. We worked for both random and various topologies. For random topology, we considered random shaped but for shaped topology we considered five shaped network models which are C, D, I, H, and O. After reaching consensus decision, we get all sensor nodes average values from leaves of the segment tree because leaves of the segment tree stores single array updated values. We did it exactly like how we use buildtree for going leaves of the segment tree. Here, actually iteration means how many times we choose an edge to update their protocol. So, the less number of iterations means the algorithm reaches on consensus faster. We take data thrice for various topologies and twice for random topologies to clearly see the results variations. We described the defination and generation for various selected five topologies.
Random topology
For random topology, we considered 3001800 sensor nodes. Their graphical shaped are randomly chosen. Both times, we plot and draw table the graphs based on (i) Iterations vs ErrorRate and (ii) Iterations vs FaultyNodes. Table 4 represents two times iterations results. Here, for example I(A1) means in first testing out of twice iteration number in average consensus, I(B1) for iteration number for binary consensus. E is for error rate, F for faulty node.
Iterations vs error rate If we see in Fig. 8 a, b, Iterations vs Error rate graph we can see that for binary consensus relative error rate become zero for any number of iterations which we already described in our algorithm analysis but Error Rate for average consensus in various over iterations but generally maximize iterations minimizes error rate like Fig. 8 b.
In irregular topology, we may see that after consensus, reaching point for average consensus error rate became stable and for binary consensus error rate is zero as usual.
Iterations vs faulty nodes Lets see Fig. 9 a, b, Iterations vs Faulty Nodes graph for average consensus number of faulty nodes is always zero the actual reason is if we see our average consensus algorithm the edge taking priority includes energy left in a sensor node. So, we gave lowest priority to those nodes. While running the algorithm, they do not come generally to reach consensus for a fixed iteration. But in rare cases for average consensus, there might be some faulty nodes on the other hand for binary consensus; we did not give edge taking priority based on energy in a sensor nodes, so normally, we get some faulty nodes.
Various topology
We have implemented our algorithm in C [90 sensor nodes],O [130 sensor nodes],I [80 sensor nodes], H[80 sensor nodes] and D[80 sensor nodes]. We represented three times their iteration vs ErrorRate plots and tables with their accurate graphical representations. We also provided their definitions and generations with the use of Fig. 10. We showed here [AL] 12 regions with boundary boxes. We can set any number of sensor nodes in the box and connect some regions to some regions to graphically represent our desired shaped topology. In each plot, figures HACP mean highest possible average consensus reaching point. We may see that after that, line error rate for average consensus is unchanged. BCP means binary consensus reaching point which is always zero, as we claimed error rate for binary consensus is always zero.
C topology We created C topology by connecting sensor nodes in Fig. 10 (i) from D to B (ii), from B to E (iii), from E to F (iv), from F to G (v), from G to L and (vi), and from L to I. In total, we used 90 sensor nodes to generate C topology. Table 5 represents C topology. Figures 11 b and 12 a, b represents plots for C topology, and Fig. 11 a is actual C topology we examined.
D topology We created D topology by connecting sensor nodes in Fig. 10 (i) from B to D, (ii) from D to H (iii), from H to I (iv), from I to L, and (v) from L to B. In total, we used 80 sensor nodes to generate D topology. Table 6 represents D topology. Figures 13 b, and 14 a, b represents plots for D topology and Fig. 13 a is actual D topology we examined.
H topology We created H topology by connecting sensor nodes in Fig. 10 (i) from A to J, and (ii) from F to H and (iii) from C to K. In total, we used 80 sensor nodes to generate H topology. Table 7 represents H topology. Figures 15 b and 16 a, b represents plots for H Topology and Fig. 15 a is actual H topology we examined.
I topology We created I topology by connecting sensor nodes in Fig. 10 (i) from B to L, (ii) from A to C, and (iii) from J to K. In total, we used 80 sensor nodes to generate I topology. Table 8 represents I topology. Figures 17 b and 18 a, 18 b represents plots for I topology and Fig. 17 a is actual I topology we examined.
O topology We created O topology by connecting sensor nodes in Fig. 10 (i), from B to E, (ii) from E to F, (iii) from F to G, (iv) from G to L, (v) from L to I, (vi) from I to H, (vii) from H to D, and (viii) from D to B. In total, we used 130 sensor nodes to generate O topology. Table 9 represents O topology. Figures 19 b and 20 a, b represent plots for O Topology and Fig. 19 a is actual O topology we examined.
Conclusions
In a distributed sensor network, where robustness is an important issue for finding out the faulty nodes efficiently. Consensus algorithms help to reach on a decision by which we are able to track the faulty nodes. Accuracy of knowing the right information about the faulty nodes is very challenging in a distributed environment. We consider different shapes of topology for applying the binary and average consensus algorithm. We also apply binary and average consensus algorithms in a random graph. We observe that average consensus algorithm provides faster convergence by giving less number of iterations. On the other hand, binary consensus is more accurate to find out the faulty nodes. So, using the appropriate consensus algorithm depends on the topology we are using and depends on the application.
In the future, we will consider the robustness issue in details considering some noisy nodes in the environment which provide misleading value. We will choose a discrete event simulator for our work for making the simulation more cognitive.
References
 1
IF Akyildiz, W Su, Y Sankarasubramaniam, E Cayirci, Wireless sensor network: a survey. Comput. Netw. 38:, 393–422 (2002).
 2
F Benezit, AG Dimakis, P Thiran, M Vetterli, in Allerton Conference on Communication, Control, and Computing. Gossip along the way: orderoptimal consensus through randomized path averaging (EPFLAllerton, USA, 2007), pp. 26–28.
 3
M Draief, M Vojnovic, in Annual joint conference of the IEEE computer and communications societies (INFOCOM 2010). Convergence speed of binary interval consensus (SIAMSan Diego, California, 2010), pp. 15–19.
 4
ADG Dimakis, AD Sarwate, MJ Wainwright, Geographic gossip: efficient averaging for sensor networks. IEEE Trans. Signal Process. 56(3), 1205–1216 (2008).
 5
Y Li, Z Zhou, T Sato, A clusterbased consensus algorithm in a wireless sensor network. Int. J. Distributed Sensor Netw. Hindawi. 60(547124), 1–15 (2013).
 6
N AlNakhala, R Riley, TM Elfouly, in International Wireless Communications and Mobile Computing Conference (IWCMC). Binary consensus in sensor motes (IEEESardinia, 2013), pp. 1337–1342.
 7
D Culler, D Estrin, M Srivastava, Overview of sensor networks. Computer. 37(8), 41–49 (2004).
 8
A Gogolev, L Marcenaro, Randomized binary consensus with faulty agents. Entropy. 16:, 2820–2838 (2014).
 9
WJ Li, HY Dai, Clusterbased distributed consensus. IEEE Trans. Wireless Commun. 8(1), 28–31 (2009).
 10
S Sardellitti, M Giona, S Barbarossa, Fast distributed average consensus algorithms based on advectiondiffusion processes. IEEE Trans. Signal Process. 58(2), 826–842 (2010).
 11
W Ren, RW Beard, Distributed Consensus in MultiVehicle Cooperative Control: Theory and Applications (Springer, London, UK, 2010).
 12
A Dimakis, AD Sarwate, MJ Wainwright, Geographic gossip: efficient averaging for sensor networks. IEEE Trans. Signal Process. 56(3), 1205–1216 (2008).
 13
TC Aysal, ME Yildiz, AD Sarwate, A Scaglione, Broadcast gossip algorithms for consensus. IEEE Trans. Signal Process. 57(7), 2748–2761 (2009).
 14
D Ustebay, BN Oreshkin, MJ Coates, MG Rabbat, Greedy gossip with eavesdropping. IEEE Trans. Signal Process. 58(7), 3765–3776 (2010).
 15
KI Tsianos, MG Rabbat, in International Conference on Distributed Computing in Sensor System. Fast decentralized averaging via multiscale gossip (ACMSanta Barbara, Calif, USA, 2010), pp. 21–23.
 16
M Zheng, M Goldenbaum, S Stanczak, Y Haibin, in IEEE Wireless Communication and Networking Conference. Fast average consensus in clustered wireless sensor networks by superposition gossiping (IEEEParis, France, 2012), p. 14.
 17
M Chatterjee, SK Das, D Turgut, Wca: a weighted clustering algorithm for mobile ad hoc networks. J. Cluster Comput. 5(2), 193–204 (2002).
 18
DJ Baker, A Ephremides, The architectural organization of a mobile radio network via a distributed algorithm. IEEE Trans. Commun. 29(11), 1694–1701 (1981).
Competing interests
The authors declare that they have no competing interests.
Author information
Affiliations
Corresponding author
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
About this article
Cite this article
Hossain, R., Khan, M.I. Efficient consensus algorithm for the accurate faulty node tracking with faster convergence rate in a distributed sensor network. J Wireless Com Network 2016, 195 (2016). https://doi.org/10.1186/s136380160698x
Received:
Accepted:
Published:
Keywords
 Wireless sensor networks
 Consensus algorithm
 Distributed systems
 Convergence rate
 Faulty node tracking
 Binary consensus
 Average consensus