Skip to main content
. 2020 May 10;20(9):2725. doi: 10.3390/s20092725
Algorithm 1: Reputation Management and Leader Election Algorithm
Require:
  blockHash(previous): Hash of previous block
  block#(response): Block number of response time
  block#(request): Block number of request time
  Repi: Reputation of each oracle node
procedure Reputation_Management():
1: sum ← 0, i ← 1
2: RTleader = (block#(response) − block#(request)) × blockInterval
3: while iNoracle do
4:  sum += RTi
5:  ii + 1
  end
6: AvrgRT = sum/Noracle
7: Rleader = AvrgRT/RTleader
8: Cleader = min(Nresponse/Nlimit, 1)
9: Repleader = Repleader × Rleader × Cleader
10:
procedure Leader_Election():
11: sum ← 0, i ← 1
12: while iNoracle do
13:  sum += Repi
14:  ii + 1
  end
15: mod = blockHash(previous)%sum
16: while mod ≥ 0 do
17:  mod = modRepi
18:  if mod < 0 then
19:   i-th oracle node is elected as a leader node
   end
20:  ii + 1
  end