OpenRegistry - Community Proposal

OpenRegistry - Community Proposal

Who we are and what we Do

We are a small team of passionate Software Engineers trying to bring more Decentralization into the world of monopolized, centralized services. With OpenRegistry, we’re trying to build an open source community driven Decentralized Container Registry. We are fully compatible with Open Container Initiative,the organization behind container runtime, image and distribution specifications.

Why Yet Another Container Registry(YACR)?

Containers are the building blocks of modern infrastructure and distributing them efficiently is a critical part of deploying applications (even more so, at scale).
For the longest time, Docker has run DockerHub and it’s been the most popular platform for Distributing container images by far. Here are a few reasons why we think OpenRegistry is important:

  1. Container Registries like DockerHub are run by centralized corporations with closed source code bases.
  2. When DockerHub goes down, it causes a lot of service degradation to it’s peers.
  3. DockerHub’s new rate limiting makes it even hard to use it.
    We have worked with fortune 500 clients in the past and we were literally forced to use AWS’s container registry (another centralized closed source service).
  4. Lack of openness in existing systems.

We’re trying to even the floor by bringing a critical piece of infrastructure to the community. Run by Open Cloud and powered by Open Technologies, OpenRegistry runs on Akash and uses Skynet as it’s storage layer (we’ll talk more about this in a minute).

The Solution we propose

We are motivated to take on the centralized services and make them distributed. We would want to open the ground up for community and make sure that the project’s topmost priority remains the community it serves, and not the individual profits.
Currently, OpenRegistry is implementing the OCI Distribution Specification that lets you store and share container images via relatively new container engine like containerd, podman, nerdctl, docker etc We plan on expanding the suite by adding following functionalities:

OCI Certification:

Our immediate goal is to get OCI certified by submitting the Conformance test report to the OCI organization. Upon acceptance we’ll have a badge of reliability and thus making it available for people to be utilized like any other Container Registry. Below is the snapshot of our current progress on conformance testing, once we pass all the cases, we’ll be production ready!

Vulnerability Scanning :

We’d like to incorporate container image vulnerability scanning to make sure the we’re always serving secure content. This will also help us keep the malicious actors at bay

Auto-Scaling:

Akash provides Spot like instances which means you would have to take care of system metrics, application logs and auto scaling. We would like to build an ecosystem around Akash to support Open Registry along with the larger community to help operate at a greater scale.

Authentication and Authorization with SPIFEE:

Akash already has plans to integrate an AuthZ/AuthN toolchain into the Akash ecosystem. We’d like to support the identity framework that Akash supports on top of the traditional Container Registry Authentication system e.g. if you can prove that you’re the owner of the deployment, you need not prove the same again for pulling a private container image from OpenRegistry.

Roadmap

Akash offers an affordable compute model which let’s you deploy at scale, if your application is fault tolerant. However, Akash does not have support for persistent volumes or storage so far. We’re planning to bridge this gap by using Skynet as our storage solution. With OpenRegistry, our goal is not to build yet another container registry but an open one. We’d like OpenRegistry to be a community lead project so that no single entity has more privileges. This will ensure that making too much profit is never a priority but serving the community always is. We’d also like to come up with an economic model to make sure that we at least cover our compute/storage billing and also support the developers, but one goal we have in mind is that as more people join OpenRegisyry, the cheaper it would become for individuals using it. We haven’t decided on this yet but maybe coming up with an Openregistry DAO program would help achieve transparency in the system.

The official granular roadmap can be found at our github here: OpenRegistry Development Roadmap

An estimate of Resources required

We’re a team of 2 Engineers who have worked for over 2 months (weekends and work nights) implementing a minimum viable product and from our initial estimate, we believe that we must have at least Two (2) full time and One (1) part time engineer working on OpenRegistry over the course of 4-5 months to make it production ready.
After that, we would love to run a marketing campaign on popular platforms like Twitter to attract suitable audience.
We’re seeking a total amount of $250k USD (in AKT) paid quarterly or monthly, (however the community decides) over the course of one year. These funds will be used for employ two full time engineers initially, pay for Akash Compute and Skynet Storage along with the marketing campaigns.

Please refer the following Questionnaire for details:

Q. Are you a resident of, citizen, or located in a geographic area that is subject to UN-, US-, EU-, Swiss or any other sovereign country sanctions or embargoes?
No, We’re a team of two (2) engineers based out of India, working from India.

Q. Are you over the age of 18?
Yes

Q. Akashian URI:

Q. Contact information:

  1. First & Last Name:
    - Gunjan Valecha
    - Jasdeep Singh

  2. Email Address: gunjanvalecha@icloud.com, singhjasdeep11@icloud.com

  3. Akash Wallet Address: akash1fhs7zcam0v7wrufcprhy2msa2pt890llzyhyvv

  4. Time Zone: IST (GMT+5:30)

  5. Language: English

  6. Social Networks: Twitter (guacaemole, jasdeepsingh45) (looks redundant)

  7. Discord Username: guacamole, jasdeepsingh

  8. Akash Forum Username: guacamole, Jasdeep Singh

  9. Github: guacamole, jay-dee7

  10. Twitter: guacamole, jasdeepsingh45

  11. LinkedIn: nil

  12. Website: openregistry.dev

  13. Blog: (none exists yet but we’ll host it at blog.openregistry.dev)

  14. Experience: Gunjan Valecha (5+ years), Jasdeep Singh (4+ years)

Are you a developer or software engineer?
We like to think of ourselves as Software Engineers. We think developers are the ones who build around Web Technologies and software engineers build around anything software (hence a bigger domain).

Are you currently involved in Akash’s Discord developer community channel?
(discord.akash.network)

Not actively, currently, we both have full time jobs and side projects and we try to spend as much time as possible with the communities we engage with.

Have you deployed on Akash’s Mainnet or Testnet? (docs.akash.network)
Yes, openregistry.dev and parachute.openregistry.dev are both deployed on Akash.

Do you have other team members?
Currently we’re a team of two (2) - Gunjan Valecha (guacamole) and Jasdeep Singh

Are you looking for additional team members?
Not right away but we do have plans to expand

Are you interested in working on Akash full-time? Akash is hiring engineers and contractors. Learn more here: Careers | Akash Network
Yes, this is something we’d both like to explore

What Cloud hosting services do you currently use? (Amazon/Google/Microsoft)
We don’t use any of the cloud providers so far for our projects, but we do have extensive experience working with AWS.

How much do you pay per month for Cloud services / hosting?
N/A

How did you hear about this program?
We applied for the Akash Open Cloud Hackathon on Gitcoin and soon after that, we became members of the Akash community. We found out about this program via the Akash Community Forum with the help of Colin.

Who will use your project when it’s complete?
Developers, Programmers, and potentially anyone who uses DockerHub will be our potential audience.

Will you monetize your project?
Initially, we’re thinking of running a freemium model for about 12 to 18 months. Or rather give very affordable plans for early subscribers.

Will you open source your project?
Yes, we believe in the fundamentals of OSS very strongly and see ourselves working on the same for a long time. The project is open source and will remain so.

Product Leadership / Drive:
Jasdeep Singh: Has worked with over 10 fortune500 clients with the previous organization and has extensive experience with cloud technologies, go, terraform, ansible, javascript and the container ecosystem.
Gunjan Valecha: Has worked with multiple multinational corporations in that last 5 years handling their networking teams and process management. They have recently joined Software development community to be able to work for OSS full time and has experience with go, ansible, HTML/CSS, ReactJS, UI/UX and Figma.

Tell us about yourself, your passion, your values What’s your aspiration for blockchain technology?
We use OSS tools and services at our jobs everyday. We believe strongly in the principles of Open Source Community. With this initiative we want to become a part of it and give back to the community.
It’s our common belief that Bockchain is being misused widely.
With OpenRegistry, through Akash we’d love to be a part of change that proves that great things can happen on Blockchain as well and thus motivating/inviting more projects to build on top of it.

If you had $1 million in grant funding what would you do?
If we had access to such funds, we’d like to first expand our team and make sure OpenRegistry is a success, then work on building more decentralized services:

  1. A deploy preview service that temporarily deploys your application directly from your pull request and deletes it after PR is merged. This would help larger teams to perform their DEV/QA tests more asynchronously.
  2. A CI/CD service on top of Akash since Akash’s compute model matches this vision perfectly.

Who will benefit most from your project?
Developers, Software Engineers, DevOps professionals. Our primary audience is the modern builders of the web. Most companies nowadays use container based deployment systems. DockerHub is the most used platform out there and we’re trying to build an Open, Decentralized alternative to it.

How will you help grow the Akash community?
OpenRegistry has the potential to be one of the first projects that operate at a much greater scale than that of usual applications. If OpenRegistry succeeds (which we’ll make sure it does), it can set a very good example for many more projects to follow. We can really show the community, and the larger software audience that great things can be built on top of Akash Network. We’ll also be making our deployment lifecycle public via blogs, video contents, etc so that other community members can take inspiration from it and build even better tools and services.

How will you make Akash approachable to developers?
By building tools, integrating well known infrastructure deployment workflows and by creating guides and visual content to help developers migrate from other cloud providers to Akash.

How do you think Akash should improve?
We believe there should a serverless-like platform on top of Akash. A system that automatically handles the commissioning, decommissioning, load reactions automatically. This platform should also be pluggable to github repositories to deploy directly from github to Akash. Also adding support for better log, metrics and debugging is crucial for any application.

Product Execution:
How would you utilize the grant funding?
The funds will be used to pay for Akash and SkyNet bills, pay developers to work full time and to run a small marketing campaign. We’d also want to integrate a functionality to reward any community member for their contribution to OpenRegistry.

Have you already started this work?
Yes, Although, it’s far from production ready, we have finished a large portion of functionality for OpenRegistry to work. We have already identified several issues which are being tracked at our github project.

Do you have a GitHub or website for your project?

How would you break this work up into 3 or 4 phases / milestones?

Phase 1: Getting OCI certified is the topmost priority for us. This will ensure that we’re completely compliant with the specification and we’ll have the protocol ironed out. Currently we’re passing most of the cases (46 passing, 13 failing, 3 skipped). Our estimate is that, it’ll take around two (2) months to get OCI certified. A month for finishing up the spec implementation and apply for the certification and then roughly around a month for the OCI organization to review our application and apply any suggestions that might come during the review process.

Phase 2: Load testing, stress testing, benchmarking and improving the performance and stability of the overall product. In this phase, we’ll be reaching out to a small part of our community to test it out, and provide feedback. This phase would be the most crucial phase since this is when we’ll get the actual usage and metrics from the system.

Phase 3: Depending upon the results from phase 2, we’ll make necessary changes and make it ready for a larger audience to test. We’re hoping for phase 3 to go live towards the end of 2021. This is also when we’ll be running our marketing campaign on relevant platforms.

Phase 4: We’re also planning to implement a TUS protocol based client for Skynet SDK in Go. Current skynet-go sdk is much behind their JS implementation. TUS based client will help us achieve resumable uploads and session based uploads. This will also let us offload 90%+ bandwidth on client side and Skynet. As a side product of this implementation, we’ll also get tons of memory and network bandwidth optimizations on our Akash deployments.

Product Progress:
How do you plan to share your work with the community once complete?
Since all the development will be open source, we’ll be maintaining a changelog on our github repository and blog posts on our official blog site along with posts in the Akash Community Forum for every major milestone we achieve.

Will you report your progress to the community every month? (this feels redundant too?)
We believe that monthly updates sometimes would not be as exciting as milestone achievements since milestones go on for a longer duration and they also have tons of features in them.

Do you have any screenshots, videos, or other context you can share?
Yes, we have a demo video for our product tour hosted on Vimeo here:
OpenRegistry Product Tour

Developer Associations: Are you associated with any accelerators, incubators, venture capital firms, or startup funds?
No.

Are you associated with any startup communities?
No.

Are you associated with the Cloud Native Computing Foundation (CNCF)?
No.

Are you associated with any open source projects?
No.

Are you associated with any of the Akash Network core team members?
No.

2 Likes

Awesome proposal. Thank you for being the first to apply for the awards!

2 Likes

Exciting to see this use-case leveraging Skynet, and we’ll be happy to see the PR’s in our Golang SDK :slight_smile:

Phase 4 is where I get really interested. I hope to see more projects using decentralized compute as a coordination layer, while remaining non-custodial of the data. I think this is a great example of showing how to take a traditional architecture and tweak it for the benefits of decentralization without adjusting developer experience.

I hope this grant is successful as it could really create a path for others trying to design products for a decentralized future.

2 Likes

Thank you so much for such invigorating words, can’t wait to start working on it!!

2 Likes