## 5 System Simulation
### Results  
* Gap consumption: We examined the gas consumption for the smart contracts including both contract deployment, as well as contract calling. Every contract includes two functions. For example, the product contract corresponds to the function of pro\({}_{-}\)-submit, and pro\({}_{process}\).pro\({}_{submit}\) means that the MAUs submit production data to the supervision organization. pro\({}_{process}\) means that the supervision organization processes the productapplication. We set the number of blockchain nodes to 40, 45, 50, 55, 60, 65 and 70, respectively. The results of varying the total number of blockchain nodes are shown in Figure 3. We introduced a logarithmic overhead to the gas consumption. Clearly, the gas consumption is small, and the gas consumption does not increase with the expansion of nodes. This is because the gasLimit was introduced to prevent a smart contract from consuming too many computational resources, and hence, we can take the gas consumption as a metric of system performance.
* Communication:We measured the communication cost of invoking smart contracts corresponding to different numbers of nodes. Table 10 shows the communication cost in detail. It includes five aspects, which record the communication cost of every functional contract corresponding to the functions. It costs no more than 400 bytes when invoking smart contract functions. Note that the network bandwidth has been commonly measured as faster than 20 Mb/s (i.e., \(2.5\times 10^{6}\) bytes per second) in the network. Therefore, it is reasonably acceptable for practical use in terms of communication cost.  
\begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline \multicolumn{4}{c}{**Object Size**} & \multirow{2}{*}{**Numbers of Nodes**} & \multirow{2}{*}{**Channel Listen Port**} & \multirow{2}{*}{**Node Port**} & \multirow{2}{*}{**Gas Limit (WEI)**} & \multirow{2}{*}{**Block Generate (s)**} \\
**MAU** & & & & & & & \\
2 & & & & & & & \\  
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Contract** & **Function** & **Communication (byte)** \\ \hline Product Contract & pro\_submit & 365 \\  & pro\_process & 236 \\ \hline Order Contract & order\_submit & 338 \\  & order\_process & 237 \\ \hline Transport Contract & transport\_submit & 357 \\  & transport\_process & 224 \\ \hline Regulation Contract & circulation\_table\_BAE\_insert & 391 \\  & circulation\_table\_SAE\_insert & 385 \\ \hline Blasting contract & blasting\_submit & 378 \\  & blasting\_process & 249 \\ \hline \hline \end{tabular}  
* Computation: To examine the computational cost to pack transactions, we varied the transaction pool from 1000 to 20,000. Table 11 shows the result of varying the transaction pools. It costs less than 1 s with the setting of the 20,000 transactions. The  
\end{table}
Table 10: Communication.  
Figure 3: Contract gas consumption.  
computational cost increases linearly with increasing transactions. With the default setting of one second of block generation time, the highest number of processed transactions is about 30,000, which is not the upper bound of the supervision system. This is because the transaction packing time is dominated by the machine's performance and the algorithm's computation approach.