Research Article
A Consensus Algorithm Based on Risk Assessment Model for Permissioned Blockchain
Input: Transaction request from client. | Output: void | 1.begin | 2. if no evaluator group in the permissioned blockchain system then: | 3. generate evaluator group | 4. end if | 5. while Transaction request from client && evaluator group is existed do: | 6. if accountant node is not existed || the term of account node is less than current term || accountant node is Byzantine node then: | 7. generate candidate | 8. communication between all follower nodes and evaluator group through RiskCompute RPC | 9. all node update RNL | 10. communication between candidate node and all follower nodes through RequestVote RPC | 11. if received vote from most follower nodes then: | 12. candidate node become accountant node | 13. else if accountant node existed then: | 14. add the transaction request into block | 15. communication between accountant node and evaluator group through Judgment RPC | 16. if the number of “fail” in all Judgment RPC>50% then: | 17. the block is set to empty block | 18. else then: | 19. the block is set to valid block | 20. communication between all follower nodes and accountant node through AppendEntries RPC | 21. if follower node find empty block then: | 22. add accountant node into RNL | 23. the term of follower node is increase | 24. end while | 25.end |
|