# Decentralizing Private Blockchain-IoT Network with OLSR
## 3 Background
### Ad Hoc Network and OLSR
By sending back a HELLO message, the sender acknowledges the receiver with the symmetric link discerned. Similarly, the receiver's one-hop neighbors become the two-hop neighbors of the sender. By constantly discerning neighbors, each node detects two sets, indicating the one-hop and two-hop neighbors locally. Furthermore, each node selects a set of Multipoint Relays (MPR) from its one-hop neighbors to cover all two-hop neighbors. Only selected MPR nodes are responsible for forwarding network traffic. Consequently, the OLSR protocol minimizes the overhead of flooding messages by reducing redundant retransmission [35]. The selected MPRs shape the backbone of the information propagation topology. Finally, the routing table is calculated based on the topology information. IETF RFC 3626 defines the protocol and a set of parameters for an OLSR node [16]. We present the time parameters and their definition in Table 2. Several important parameters related to HELLO messages are as follow. * _HELLO_INTERVAL_ or _Thello_ determines the time interval of HELLO message emission for each node. This parameter is included in a HELLO message. _Thello_ is set to 2 s by default. * _REFRESH_INTERVAL_: Each known neighbor node has to be mentioned at least once during a _REFRESH_INTERVAL_ to keep track of the latest connectivity changes. _Trefresh_ is equal to _Thello_ by default. * _NEIGHB_HOLD_TIME_ or _Thold_ specifies until when the information provided in the latest HELLO message is considered to be valid. The _Thello_ = 3 \(\times\)_Trefresh_ by default. * _Validity Time_\(T_{\text{validity}}\) determines the time when the messages (including HELLO messages) will expire from reception. After receiving a HELLO message, the local links will be updated according to the attached information. All symmetric links and asymmetric links are restricted with a timer to show when the links are expired, namely L_SYM_time and L_ASYM_time, respectively. Both timers are set to the current time plus _Validity Time_. A node loss response comes from a regular pace of disseminating HELLO messages. The link is restricted by another time L_LOST_LINK_time, which is defined as the current time plus _NEIGHB_HOLD_TIME_. The link is still regarded as SYM_LINK or ASYM_LINK since a packet loss may cause it. The timer will be revoked on the arrival of a HELLO message. On the contrary, if L_LOST_LINK_time expires without a standard message received, the link will be regarded as lost marked as LOST_LINK. The lost links are advertised in messages rather than dropped immediately, \begin{table}
\begin{tabular}{c c c} \hline \hline
**Parameter** & **Definition** & **Explanation** \\ \hline \(T_{\text{h}llo}\) & _HELLO_INTERVAL_ & \\ \hline \(T_{\text{refresh}}\) & _REFRESH_INTERVAL_ & equal to \(T_{\text{h}ello}\) \\ \hline \(T_{\text{h}old}\) & _NEIGHB_HOLD_TIME_ & three times of \(T_{\text{h}ello}\) \\ \hline \(T_{\text{validity}}\) & _Validity time_ & \\ \hline L_SYM_time & Timer for symmetric links & equal to \(T_{\text{validity}}\) \\ \hline L_ASYM_time & Timer for asymmetric links & equal to \(T_{\text{validity}}\) \\ \hline L_LOST_LINK_time & Timer for lost links & equal to \(T_{\text{h}old}\) \\ \hline \hline \end{tabular}
\end{table} 
Table 2: OLSR time parameters. allowing nodes to detect link breakages. After the expiration of SYM_LINK or ASYM_LINK timers, the link is finally removed.