
I am not sure where I first heard about forking. Was it from Housos and Daza 1 (2023 Wikipedia), at Uni, or when learning and exploring phenomenon of Decentralised Finance (DeFi)?
Whether my origin of knowledge came first, in terms of open-source software it means to use already build, free, and publicly available software and modify it to your liking and needs.
It sounds awesome and it works awesome in theory and usually in practice.
It is also good to notice that:
Firstly, almost nothing is for free these days.
Secondly, it will take ages to create your project from scratch, and why waste our precious and very limited time of existence on inventing already existing wheels – in that case, software. So, let’s fork something for the lucky beginning.
Introducing open-source software has dramatically changed the way we build and use technology. With open-source software, developers can access the source code of any published project, modify it to fit their needs and contribute their changes back to the new project.
This collaborative approach has resulted in some of the most successful software projects in history, including Linux, Apache, and MySQL. It is also a commonly used way of creating new Fintech projects and developments.
However, even in the open-source world, disagreements can arise. When a group of developers disagrees with the direction or management of a project, they may choose to “fork” and split the project, creating a new project that shares the code of the original but is maintained by a different group of developers.
While forking sometimes can be seen as a negative or divisive action, it can also be a powerful tool for innovation and progress. Usually, it goes the good direction, but as easy to predict – not always.
So, once again – what the hell is forking?
In the simplest words, forking is the act of taking a copy of an existing codebase and creating a new project with it. As I mention before it mostly allows to create a new version that better aligns with the newly established goals or requirements.
For example, in 2016, a group of developers decided to fork the Ethereum blockchain in response to the DAO attack 2 (Siegel, D.2023) when an insecure DAO contract was exploited for over 5.6 million ETH in a very famous hack. By forking the project, they were able to move the funds from a faulty contract to a newly created (Forked) contract. How awesome you may say.
Yep awesome, indeed. By doing so anyone who lost funds could get back some tokens and move them to their digital wallets n (Siegel, D. 2023).
Forking can be as well a divisive action, as it creates competing projects and can lead to fragmentation in the open-source world. The best example may be the Uniswap code forking by a pseudonymous developer named Chef Naomi in order to create a tween-looking-like SushiSwap platform followed by the strategy named a vampire attack 3 (Gemini 2022).
But not all forks are controversial examples and ideas. By forking a project, developers can experiment with new ideas and approaches without worrying about disrupting the existing project. This can lead to the creation of entirely new software projects that would not have been possible without forking.
Furthermore, forking can also act as a check and balance on existing projects. If a project becomes too centralized or stagnates in its development, a fork can provide a fresh start and encourage healthy competition. This competition can push both projects to improve and innovate, resulting in better software for everyone. Both developers and DAOs are happy, win-win, and again how awesome.
Of course, forking is not without its challenges. When a project is forked, it can lead to confusion and fragmentation in the open-source community. Users may not know which version of the software to use, or which project is the “official” version. Additionally, forking can lead to duplicate efforts and a loss of resources as developers split their time and energy between multiple projects.
To address these challenges, it’s important for developers to communicate openly and transparently about their reasons for forking and to work together to minimize the negative impact of fragmentation.
“Forking open-source projects is not a bad idea, so why not fork – just fork it.”
It is also good to mention that we may talk about two general types of forks.
Soft Fork—a slight modification to the consensus rules that is back compatible with previous versions of the blockchain. Soft forks partly modify a blockchain and apply new rules but fundamentally still allow older versions of the blockchain to remain valid.
Hard Fork—a permanent split in the blockchain if consensus cannot be reached. A hard fork is a far more serious issue as it will revoke and overturn older versions of the blockchain.
Whatever the type of fork it provides a never-ending possibility, if only working as intended. Bear in mind that shifty forks happen.
Finalising, open-source software has been around for decades, and forking is not a new tool or idea. It encourages experimentation, provides a fresh start, enables a check and balance, and promotes diversity.
Question: Have you ever forked something?
If the answer is yes, but I forked dinner only, then maybe go and try to fork a piece of open-source software – why not!
The theory is only as valuable as its twin in practice!
Ask AI, it may help a bit. And, Have a good forking.
References:
Housos (2023) Wikipedia. Available at: https://en.wikipedia.org/wiki/Housos
Siegel, D. (2023) Understanding the dao attack, CoinDesk Latest Headlines RSS. Available at: https://www.coindesk.com/learn/understanding-the-dao-attack/
Sushiswap: A uniswap fork and defi protocol Gemini(2022). Available at: https://www.gemini.com/cryptopedia/sushiswap-uniswap-vampire-attack
Originally published at https://spektrumlab.io on August 21, 2023.
Spektrumlab.io
No comments yet