Blockchain-Based Decentralized Architecture for Software Version Control
Abstract
:1. Introduction
- Review of work done previously on the version control system and blockchain;
- Proposal of a decentralized blockchain-based architecture for software version control;
- Implementation of the proposed approach using Hyperledger Fabric on a cloud platform.
2. Background
2.1. Blockchain Technology
2.2. Software Configuration Management and Software Version Control
- Configuration Item (CI): in software configuration management, configuration items are single lower-level items that can be changed. A configuration item can be anything from a software project including a project planning document, project proposal, pert charts, code, requirement and design document, and test cases [4]. Configuration items are versioned as they change to distinguish them from other configuration items. Their dependence is also looked at.
- Version: CIs in software configuration management are versioned according to the different rules for distinguishing them from other CIs [26]. Our focus will be to manage version control in decentralized blockchain technology.
- Version Control: version control allow you to manage multiple revisions of the same unit of information, e.g., document, source file, or any document including code files in a project. The system has multiple users to control and share files. VCS allows an archive of the versions by which subsequent versions of source-controlled items can be stored, and historical information about these versions is also stored [23]. The major thing we achieve by version control is a collaboration by which people can share data and collaborate easily with other team members [22].
- Baseline: a baseline is a basic concept in software configuration management that help control a change. A baseline is a stable version of a code and it is known as the basis for further development [27]. It can comprise a single or more than one strong configuration item. Figure 4 shows baselines before the official release [27].
- Release: this is the full and final version of a software system or the system that is implemented.
- Configuration Control Board: a configuration control board is a group of people that are responsible for making a change in a software system. The proposal of change is sent to the configuration control board, which looks at both the negative and positive consequences of a change and on basis of the effect of the change they either approve or disapprove a change. A configuration control board can also give the solution for a change. In smaller projects, a configuration control board made up of testers, programmers, as well as requirement engineers, work informally, while in larger projects a formal configuration control board is in charge of tracking, controlling, and monitoring change [28].
2.3. Proof of Authority Consensus
- Block generation rights can only be given to nodes that can withstand DoS assaults since network nodes are pre-authenticated;
- A validating node can be removed from the list of validating nodes if it is unavailable for a while.
2.4. Blockchain and Version Control System Structure
3. Related Work
4. Proposed Approach
- File Repository;
- Smart Contract;
- Blockchain;
- Consensus Algorithm.
4.1. File Repository
4.2. Smart Contract
4.3. Blocks Contain the Data
- Hash of previous block;
- Time stamp;
- Project name;
- Project ID;
- File ID;
- Version of change;
- Previous version;
- File name (saved on IPFS);
- Developer ID.
4.4. Consensus Algorithm
5. Implementation
- Developer will connect to Fabric Client;
- Client will send all requests to Fabric network;
- Fabric network will be responsible for making all the changes in to ledger;
- Each block in ledger will be associated to a file placed in distributed repository (IPFS);
- Cryptographic hash generated for each file in IPFS will be stored in the ledger.
6. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
References
- Nakamoto, S. Bitcoin: A Peer-to-Peer Electronic Cash System. Available online: www.bitcoin.org (accessed on 20 October 2022).
- Androulaki, E.; Barger, A.; Bortnikov, V.; Cachin, C.; Christidis, K.; De Caro, A.; Enyeart, D.; Ferris, C.; Laventman, G.; Manevich, Y.; et al. Hyperledger fabric: A distributed operating system for permissioned blockchains. In Proceedings of the Thirteenth EuroSys Conference, Porto, Portugal, 23–26 April 2018; pp. 1–15. [Google Scholar]
- Khan, S.; Naheed, S.; Loukil, F.; Ghedira-Guegan, C.; Benkhelifa, E.; Bani-Hani, A. Blockchain smart contracts: Applications, challenges, and future trends. Peer-Peer Netw. Appl. 2021, 14, 2901–2925. [Google Scholar] [CrossRef] [PubMed]
- ul Hassan, C.A.; Hammad, M.; Iqbal, J.; Hussain, S.; Ullah, S.S.; Al Salman, H.; Mosleh, M.A.A.; Arif, M. A Liquid Democracy Enabled Blockchain-Based Electronic Voting System. Sci. Program. 2022, 2022, 1383007. [Google Scholar] [CrossRef]
- Rainer, B.; Christin, N.; Edelman, B.; Moore, T. Bitcoin: Economics, technology, and governance. J. Econ. Perspect. 2015, 29, 213–238. [Google Scholar]
- Xu, M.; Chen, X.; Kou, G. A systematic review of blockchain. Financ. Innov. 2019, 5, 1–14. [Google Scholar] [CrossRef] [Green Version]
- Casino, F.; Dasaklis, T.K.; Patsakis, C. A systematic literature review of blockchain-based applications: Current status, classification and open issues. Telemat. Inform. 2019, 36, 55–81. [Google Scholar] [CrossRef]
- Gürpinar, T.; Guadiana, G.; Ioannidis, P.A.; Straub, N.; Henke, M. The Current State of Blockchain Applications in Supply Chain Management. In Proceedings of the 2021 the 3rd International Conference on Blockchain Technology, Shanghai, China, 26–28 March 2021; pp. 168–175. [Google Scholar]
- Tandon, A.; Dhir, A.; Islam, A.N.; Mäntymäki, M. Blockchain in healthcare: A systematic literature review, synthesizing framework and future research agenda. Comput. Ind. 2020, 122, 103290. [Google Scholar] [CrossRef]
- Salah, K.; Rehman, M.H.U.; Nizamuddin, N.; Al-Fuqaha, A. Blockchain for AI: Review and open research challenges. IEEE Access 2019, 7, 10127–10149. [Google Scholar] [CrossRef]
- Sohrabi, N.; Yi, X.; Tari, Z.; Khalil, I. BACC: Blockchain-based access control for cloud data. In Proceedings of the Australasian Computer Science Week Multiconference, Melbourne, Australia, 4–6 February 2020; pp. 1–10. [Google Scholar]
- Sohrabi, N.; Tari, Z. On the scalability of blockchain systems. In Proceedings of the 2020 IEEE International Conference on Cloud Engineering (IC2E), Sydney, Australia, 21–24 April 2020; IEEE: Piscataway, NJ, USA, 2020; pp. 124–133. [Google Scholar]
- de Figueiredo, S.; Madhusudan, A.; Reniers, V.; Nikova, S.; Preneel, B. Exploring the storj network: A security analysis. In Proceedings of the 36th Annual ACM Symposium on Applied Computing, Virtual, 22–26 March 2021; pp. 257–264. [Google Scholar]
- Luo, X. Design and Implementation of Decentralized Swarm Intelligence E-Commerce Model Based on Regional Chain and Edge Computing. Complexity 2021, 2021, 5595002. [Google Scholar] [CrossRef]
- Zhu, Y.; Lv, C.; Zeng, Z.; Wang, J.; Pei, B. Blockchain-based decentralized storage scheme. In Journal of Physics: Conference Series; IOP Publishing: Bristol, UK, 2019; Volume 1237, p. 042008. [Google Scholar]
- Zheng, Q.; Li, Y.; Chen, P.; Dong, X. An innovative IPFS-based storage model for blockchain. In Proceedings of the 2018 IEEE/WIC/ACM International Conference on Web Intelligence (WI), Santiago, Chile, 3–6 December 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 704–708. [Google Scholar]
- Serrano, J.P.; Pereira, R.F. Improvement of it infrastructure management by using configuration management and maturity models: A systematic literature review and a critical analysis. Organizacija 2020, 53, 3–19. [Google Scholar] [CrossRef] [Green Version]
- Software Quality Assurance. Available online: http://www.computer.org (accessed on 24 November 2022).
- Siegmund, N.; Ruckel, N.; Siegmund, J. Dimensions of software configuration: On the configuration context in modern software development. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Virtual, 8–13 November 2020; pp. 338–349. [Google Scholar]
- Javapoint. Software Configuration Management Process. Available online: https://www.javatpoint.com/scm-process (accessed on 31 March 2022).
- Koc, A.; Tansel, A.U. A survey of version control systems. ICEME 2011, 2011, 1–6. [Google Scholar]
- Deepa, N.; Prabadevi, B.; Krithika, L.B.; Deepa, B. An analysis on version control systems. In Proceedings of the 2020 International Conference on Emerging Trends in Information Technology and Engineering (ic-ETITE), Vellore, India, 24–25 February 2020; IEEE: Piscataway, NJ, USA, 2020; pp. 1–9. [Google Scholar]
- Zolkifli, N.N.; Ngah, A.; Deraman, A. Version control system: A review. Procedia Comput. Sci. 2018, 135, 408–415. [Google Scholar] [CrossRef]
- da N. Costa, F.Z.; de Queiroz, R.J.G.B. Capivara: A decentralized package version control using Blockchain. arXiv 2019, arXiv:1907.12960. [Google Scholar]
- Mahmoud, Q.H.; Lescisin, M.; AlTaei, M. Research challenges and opportunities in blockchain and cryptocurrencies. Internet Technol. Lett. 2019, 2, e93. [Google Scholar] [CrossRef] [Green Version]
- Pei, S.; Chen, D. The implementing of software configuration management based on CMM. In Proceedings of the 2009 5th International Conference on Wireless Communications, Networking and Mobile Computing, Beijing, China, 24–26 September 2009; IEEE: Piscataway, NJ, USA, 2009; pp. 1–4. [Google Scholar]
- Tao, X. Software configuration management of change control study based on baseline. In Proceedings of the 2010 International Conference on Intelligent Control and Information Processing, Dalian, China, 12–15 August 2010; IEEE: Piscataway, NJ, USA, 2010; pp. 93–96. [Google Scholar]
- Mohd, F.S.S.; Bannerman, P.L.; Staples, M. Software configuration management in global software development: A systematic map. In Proceedings of the 2010 Asia Pacific Software Engineering Conference, Washington, DC, USA, 3 November–30 December 2010; IEEE: Piscataway, NJ, USA, 2010; pp. 404–413. [Google Scholar]
- Adelin, M.M.; Manolache, S.; Tapus, N. Decision Making using the Blockchain Proof of Authority Consensus. Procedia Comput. Sci. 2022, 199, 580–588. [Google Scholar]
- Nishara, N.; Salah, K.; Azad, M.A.; Arshad, J.; Rehman, M.H. Decentralized document version control using ethereum blockchain and IPFS. Comput. Electr. Eng. 2019, 76, 183–197. [Google Scholar]
- Randhir, K.; Marchang, N.; Tripathi, R. Distributed off-chain storage of patient diagnostic reports in healthcare system using IPFS and blockchain. In Proceedings of the 2020 International Conference on COMmunication Systems & NETworkS (COMSNETS), Bangalore, India, 7–11 January 2020; IEEE: Piscataway, NJ, USA, 2020; pp. 1–5. [Google Scholar]
- Agyekum, K.O.; Xia, Q.; Liu, Y.; Pu, H.; Cobblah, C.N.; Kusi, G.A.; Yang, H.; Gao, J. Digital media copyright and content protection using IPFS and blockchain. In Image and Graphics: 10th International Conference, ICIG 2019, Beijing, China, August 23–25, 2019; Springer: Cham, Switzerland, 2019; pp. 266–277. [Google Scholar]
- Jonathan, B.; LaToza, T.D.; Baldmitsi, F.; Stavrou, A. Advancing open science with version control and blockchains. In Proceedings of the 2017 IEEE/ACM 12th International Workshop on Software Engineering for Science (SE4Science), Buenos Aires, Argentina, 22 May 2017; IEEE: Piscataway, NJ, USA, 2017; pp. 13–14. [Google Scholar]
- Mathis, S.; Fiz, B.; Norvill, R.; Shbair, W.; State, R. Blockchain-based, decentralized access control for IPFS. In Proceedings of the 2018 Ieee International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData), Halifax, NS, Canada, 30 July–3 August 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 1499–1506. [Google Scholar]
- Dongcheng, L.; Wong, W.E.; Zhao, M.; Hou, Q. Secure storage and access for task-scheduling schemes on consortium blockchain and interplanetary file system. In Proceedings of the 2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C), Macau, China, 11–14 December 2020; IEEE: Piscataway, NJ, USA, 2020; pp. 153–159. [Google Scholar]
- Records Keeper. Available online: https://www.recordskeeper.com/ (accessed on 24 November 2022).
- Juliet, M.; Young, A.; Verhulst, S. Addressing transaction costs through blockchain and identity in swedish land transfers. In Blockchain Technologies for Social Change; GovLab: New York, NY, USA, 2018. [Google Scholar]
- Zhang, Z.; Zhong, Y.; Yu, X. Blockchain storage middleware based on external database. In Proceedings of the 2021 6th International Conference on Intelligent Computing and Signal Processing (ICSP), Xi’an, China, 9–11 April 2021; IEEE: Piscataway, NJ, USA, 2021; pp. 1301–1304. [Google Scholar]
- Chen, Y.; Li, H.; Li, K.; Zhang, J. An improved P2P file system scheme based on IPFS and Blockchain. In Proceedings of the 2017 IEEE International Conference on Big Data (Big Data), Boston, MA, USA, 11–14 December 2017; IEEE: Piscataway, NJ, USA, 2017; pp. 2652–2657. [Google Scholar]
- Ala, E.; Amintoosi, H.; Seno, A.H.; Dehghantanha, A.; Parizi, R.M. A systematic literature review of integration of blockchain and artificial intelligence. Blockchain Cybersecur. Trust. Priv. 2020, 147–160. [Google Scholar]
- Wang, K.; Dong, J.; Wang, Y.; Yin, H. Securing data with blockchain and AI. IEEE Access 2019, 7, 77981–77989. [Google Scholar] [CrossRef]
- Al-Breiki, H.; Rehman, M.H.U.; Salah, K.; Svetinovic, D. Trustworthy blockchain oracles: Review, comparison, and open research challenges. IEEE Access 2020, 8, 85675–85685. [Google Scholar] [CrossRef]
- Sousa, M.J.; Dal Mas, F.; Gonçalves, S.P.; Calandra, D. AI and Blockchain as New Triggers in the Education Arena. Eur. J. Investig. Health Psychol. Educ. 2022, 12, 445–447. [Google Scholar] [CrossRef]
- Krichen, M.; Ammi, M.; Mihoub, A.; Almutiq, M. Blockchain for modern applications: A survey. Sensors 2022, 22, 5274. [Google Scholar] [CrossRef] [PubMed]
- Bhushan, B.; Khamparia, A.; Sagayam, K.M.; Sharma, S.K.; Ahad, M.A.; Debnath, N.C. Blockchain for smart cities: A review of architectures, integration trends and future research directions. Sustain. Cities Soc. 2020, 61, 102360. [Google Scholar] [CrossRef]
- Abou Jaoude, J.; Saade, R.G. Blockchain applications–usage in different domains. IEEE Access 2019, 7, 45360–45381. [Google Scholar] [CrossRef]
- Gao, J.; Liu, H.; Li, Y.; Liu, C.; Yang, Z.; Li, Q.; Chen, Z. Towards automated testing of blockchain-based decentralized applications. In Proceedings of the 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC), Montreal, QC, Canada, 25–26 May 2019; IEEE: Piscataway, NJ, USA, 2019; pp. 294–299. [Google Scholar]
- Lahami, M.; Maâlej, A.J.; Krichen, M.; Hammami, M.A. A Comprehensive Review of Testing Blockchain Oriented Software. Proceedings of 17th International Conference on Evaluation of Novel Approaches to Software Engineering ENASE, Online Streaming, 25–26 April 2022; pp. 355–362. [Google Scholar]
- Amritha, P.P. A Blockchain and IPFS based framework for secure Research record keeping. Int. J. Pure Appl. Math. 2018, 119, 1437–1442. [Google Scholar]
- Wang, S.; Yuan, Y.; Wang, X.; Li, J.; Qin, R.; Wang, F.-Y. An overview of smart contract: Architecture, applications, and future trends. In Proceedings of the 2018 IEEE Intelligent Vehicles Symposium (IV), Suzhou, China, 26–30 June 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 108–113. [Google Scholar]
- Lawrence, S.A.; Ganadhas, C.S. The evaluation report of sha-256 crypt analysis hash function. In Proceedings of the 2009 International Conference on Communication Software and Networks, Chengdu, China, 20–22 February 2009; IEEE: Piscataway, NJ, USA, 2009; pp. 588–592. [Google Scholar]
- Nasir, Q.; Qasse, I.A.; Talib, M.A.; Nassif, A.B. Performance analysis of hyperledger fabric platforms. Secur. Commun. Netw. 2018, 2018, 3976093. [Google Scholar] [CrossRef] [Green Version]
- Amazon. Hyperledger Fabric. Available online: https://aws.amazon.com/blockchain/what-is-hyperledger-fabric/ (accessed on 27 October 2022).
- Bashari, R.B.; Bhatti, H.J.; Ahmadi, M. An introduction to docker and analysis of its performance. Int. J. Comput. Sci. Netw. Secur. 2017, 17, 228. [Google Scholar]
Paper | Published in (Journal/Conference) | Method | Platform | Implemented /Proposed | Key Terms |
---|---|---|---|---|---|
N. Nizamuddin et al. [30] | Journal—Computers & Electrical Engineering | VCS in blockchain | Ethereum | Proposed and implemented | IPFS, Smart contracts |
Randhir Kumar et al. [31] | Conference—COMSNETS | Solution for patient data | - | Proposed | IPFS, Medical Research |
Kwame Opuni-Boachie Obour Agyekum et al. [32] | Conference—ICIG 2019 | Content protection with blockchain | Fabric Alliance Blockchain | Proposed and implemented | Fabric, IPFS, Digital Media |
Felipe Zimmerle da N. Costa and Ruy J. Guerra B. de Queiroz [24] | cryptography and security | VCS in blockchain | Custom | Proposed and implemented | Version control, Capivara |
Mathis Steichen et al. [34] | Conference—IEEE SmartData | Modified IPFS | Custom | Proposed and implemented | IPFS |
Dongcheng Li et al. [35] | Conference—QRS-C | Storage & task scheduling in IPFS & Blockchain | Hyper ledger fabric | Proposed and implemented | IPFS, task scheduling, storage |
Zhaiyo Zhang et al. [38] | Conference—ICSP 2021 | Query performance for version control using blockchain | Custom | Proposed and implemented | Query performance, version control space |
Yongle Chen et al. [39] | Conference—BIGDATA | Throughput improvement | Custom | Proposed and analyzed | P2P, IPFS |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Hammad, M.; Iqbal, J.; Hassan, C.A.u.; Hussain, S.; Ullah, S.S.; Uddin, M.; Malik, U.A.; Abdelhaq, M.; Alsaqour, R. Blockchain-Based Decentralized Architecture for Software Version Control. Appl. Sci. 2023, 13, 3066. https://doi.org/10.3390/app13053066
Hammad M, Iqbal J, Hassan CAu, Hussain S, Ullah SS, Uddin M, Malik UA, Abdelhaq M, Alsaqour R. Blockchain-Based Decentralized Architecture for Software Version Control. Applied Sciences. 2023; 13(5):3066. https://doi.org/10.3390/app13053066
Chicago/Turabian StyleHammad, Muhammad, Jawaid Iqbal, Ch Anwar ul Hassan, Saddam Hussain, Syed Sajid Ullah, Mueen Uddin, Urooj Ali Malik, Maha Abdelhaq, and Raed Alsaqour. 2023. "Blockchain-Based Decentralized Architecture for Software Version Control" Applied Sciences 13, no. 5: 3066. https://doi.org/10.3390/app13053066
APA StyleHammad, M., Iqbal, J., Hassan, C. A. u., Hussain, S., Ullah, S. S., Uddin, M., Malik, U. A., Abdelhaq, M., & Alsaqour, R. (2023). Blockchain-Based Decentralized Architecture for Software Version Control. Applied Sciences, 13(5), 3066. https://doi.org/10.3390/app13053066