GOSH 3.0 Release
Part I: Intro
GOSH began development in April. The idea of storing git on-chain had never been realized. It was even considered by some as impossible. At least not possible today. Now, not a full year has passed and GOSH is already on Version 3.0, the second production release of this, our decentralized git on the blockchain.
The previous release (GOSH 2.0) was limited in scope. The central obstacle we found working with GOSH 2.0 was actually improving on its limitations, contracts were very hard to upgrade and performance just wasn’t fast enough. This meant building GOSH to be just as easy to use as cloud hosting platforms was a challenge.
GOSH 3.0 is a major overhaul of the GOSH blockchain’s architecture, centered around Smart Contract Upgradeability. This, aside from an array of very significant optimization upgrades, is the main difference between GOSH 2.0 and GOSH 3.0
Part II: Claim Your Code
With GOSH 3.0 any Open Source developer can now claim their GitHub repository on GOSH.
Keep building where you left off, while securing your software supply chain, and building consensus around your code.
Let us show you how to do this:
You can now sign in to GOSH with your GitHub account, no need to create a new one
You can then select any of your organizations and claim your GitHub repository. The whole process is done automatically. GOSH will create a DAO for that repository, and push it, and you can immediately start building on GOSH
Enter your seed phrase as a crucial step to the security of your account
You will receive a notification when your repository is uploaded
If you choose to use it, the GOSH Bot can automatically push your updates on GOSH every time you push anything on GitHub. You can continue using the tools you love with no workflow adjustment. Only now you have the benefit of the security features and the decentralized repository management tools that have become GOSH’s hallmark. All you need to do is sign in once, forever.
Due to very high demand, the repository migration process may take a few days — we appreciate your patience and will send you an email when your organization is ready so that you can start building on GOSH.
Now let’t talk a little bit about the latest news from GOSH’s development process, what’s so new about the architecture, and how we found gains.
Part III: New Architecture, Parallelization
On the blockchain, when data is going through a user wallet there is always a bottleneck, because one wallet can only process transactions sequentially.
On GOSH 3.0 we made this process parallel, improving performance exponentially.
The main reason we were able to parallelize is because GOSH is an asynchronous, multithreaded, multisharded blockchain.
Parallelization allows us to first-push the GOSH repository onto GOSH in 27 minutes for a remote part, and 15 minutes for a blockchain part.
Before GOSH 3.0, it took 7 hours.
This improvement shows the power of asynchronous execution and parallelization in this new architecture.
Here is a short discussion on this between GOSH developers:
Part IV: New Architecture, Upgradeability
The next feature we would like to discuss is Smart Contract Upgradeability.
With this update we targeted adaptability for future updates. Our goal was to ensure that the development of future updates didn’t require breaking changes, yet would be able to upgrade any part of the system.
One of the main reasons contract upgradeability is so vital is that it allows us to work on future releases, tools, and improvements without it affecting GOSH user data.
Without upgradeability every update would mean a redeployment of all user data on GOSH all over again. With this release, every DAO decides, through voting, whether or not to upgrade their smart contracts once a new version is available. GOSH developers do not have a final say on this (there is no difficulty bomb, for instance) and the upgrade itself will not require repository re-uploads.
Part V: New Architecture, Data Migration
The blockchain’s immutable history means that upgrading, replacing, or migrating data is very hard to do. To assist with this we added tombstone support. With any upgrade, a repository will set a tombstone saying that the history of this repository can be reconstructed in the future despite version upgrades.
We hope that with GOSH 3.0 you never need to migrate your data again.
Previously, users needed to pull their data from the old system and push it to the new one. This worked fine for small repositories. But, as we have discussed this was a pain for all repositories that were larger in size.
Here is a demonstration of how this works:
Part VI: Conclusion
This release officially means that GOSH is approaching production-grade git levels of efficiency. We have increased performance exponentially. We have safeguarded all users of GOSH against future disturbances to their workflows. We have allowed any developer on Earth an easy way to claim their previous work on GOSH and benefit from security and decentralization. And, of course, we have taken that one step closer to achieving our stated aims of securing the software supply chain and allowing open source developers to extract the value locked in their code.
Going forward we will be focusing on releasing smaller patches and updates more regularly, as well as focusing on user experience. You can expect to see a large upgrade on DAO use and functionality in the near future. Likewise, GOSH will continue to focus on the security tools we can build on top of this new blockchain.
For those interested, here is the full discussion between GOSH developers and CEO Mitja Goroshevsky:
If you aren’t already: