# Software Engineering Applications Enabled by Blockchain Technology: A Systematic Mapping Study
## 4 Results
### What Blockchain Platforms Are Used in Developing SE Applications (RQ3)  
As can be seen in Table 5, Ethereum and Hyperledger Fabric are the most used blockchain platforms by the selected studies. This is not surprising, given that these platforms are designed to run smart contracts or chaincode, and the ability to run code has the strongest contributions for blockchain-oriented SE according to [PERSON] and [PERSON] [30]. In Ethereum, all programmable computations, such as invoking and deploying smart contracts, are subject to fees [60], which serve to reward miners for adding blocks to the system. Two of the selected studies measured the fees for calling smart contracts functions [29; 44]. [PERSON] et al. [44] evaluated a cost of 1 $ up to 8 $, depending on the processing speed. They concluded that a cost below $4 is reasonable in the case of software development projects that usually require a significant amount of money to finish. On the other side, Hyperledger Fabric provides higher levels of scalability and confidentiality due to the delineation of roles, such as ordering and validating transactions, which in turn allows for configurable consensus. However, challenges related to Hyperledger Fabric may be the high communication overhead and potential DoS attacks. [PERSON] [56] provided a modified transaction validation procedure that involves less communication overhead and protects Hyperledger from DoS attacks. Their proposed workflow eliminates client communication with the ordering module, instead of that endorsers send endorsed transactions directly to the ordering module. However, these authors do not provide information about how consensus is reached regarding the order of transactions.  
There is very little evidence regarding consensus mechanisms used in our selected studies. We identified only two consensus mechanisms that were proposed but were not deployed [46; 47]. [PERSON] et al. [46] presented a blockchain-based approach in which developers are miners who create code and testers are validators. They also proposed a consensus mechanism to handle situations when many developers claim to have accomplished the same work. The consensus mechanism relies on a probability distribution function which is constructed based on developers' activity (their contribution and waiting time) and testers' preference (number of votes for each code). The probability of the developers' code to be confirmed increases with the increase of developers' contribution, waiting time and votes. [PERSON] et al. [47] presented an approach in which contracted testers test software for potential vulnerabilities, and register testing results on the blockchain. To resolve potential disputes that can occur in the testing process, they proposed a consensus mechanism named Proof of Skill. The idea is to maintain a skill rating for each tester based on the testing job category and previous testing job performance on the platform. The algorithm groups testers based on their votes and computes the average skill rating for each group. The dispute is won by the group with the highest skill rating. Finally, the algorithm increases the skill ratings for testers in the winner group and decreases for those in the loser group.