funded
Open-Source Blockfrost Deployment Images
Current Project Status
In Progress
Amount
Received
₳104,550
Amount
Requested
₳123,000
Percentage
Received
85.00%
Solution

We’ve created streamlined deployment configs for quick deployment with minimal setup granting access to the deployed infrastructure. Production is focused on scaling, customizing, and best practices.

Problem

Complexity and inefficiency in configuring, orchestrating, and scaling Blockfrost for production/development use is complex and lacks scalability, leading many users to rely on costly cloud instances.

Feasibility
Value for money
Impact / Alignment

Ikigai Technologies

6 members

Open-Source Blockfrost Deployment Images

Please describe your proposed solution.

Since many organizations are embracing the containerized approach to application development, our approaches leverage kubernetes and docker.

The development solution is a docker-compose config. It gives the developer a single line command that can be used to standup blockfrost. While being similar to the production config, this docker-compose approach provides direct access to the all deployed resources and a quick feedback loop.

The production solution is a helm chart, which can be deployed on a kubernetes cluster. This helm chart has an out-of-the-box configuration so developers can get started quickly. However it also accepts a variety of parameters so the deployment can be customized for their specific environment/use case. It also has settings to enable the deployment to scale with increased usage.

How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?

We built and tested a solution we'd like to share with the community that decreases the mean time to deployment, increases operational consistency, and lowers the effort required for developers to start using Blockfrost. The docker-compose aspect of our solution allows a developer to deploy and develop against a local Blockfrost instance in just a few seconds. Developers can use this to for new POC projects or features dependent on Blockfrost without having to interact with the cloud provider or setup an account.

The helm/kubernetes deployment option gives teams the ability to use a self hosted Blockfrost resource instead of the cloud hosted one. This gives teams more flexibility, reduces their dependence on a centralized third party, and makes it easier to stand up staging or per-production instances of their projects. Additionally, our configuration uses best practices which helps teams deploy robust and stable instances by default.

The project which result was to create easy deployable instance of blockfrost and relevant sub-services (like submit-api) has been used with success as part of our internal applications. As a company we solved engineering problems we faced thanks to this. We strongly believe that solution we prepared can be used in similar cases by other.

On of the priority of each company, not only our, is to build customers trust by delivering proven and reliable solutions. Including blockfrost into our stack we sign the project by betting our reputation. It’s the highest level of trust we can provide.

How do you intend to measure the success of your project?

Success will be measured by both internal and external indicators. Internally, we will track the impact on our own projects, monitoring uptime, resiliency, and performance. Additionally, we will measure the reduction in Mean-Time-to-Deployment (MTTM) for new projects relying on Blockfrost.

Externally, we will gauge success through community engagement on our Github repository. Metrics such as pull requests, stars/follows, and low issue reports will indicate value and adoption by the community.

These measures will reflect the benefits our project brings to Cardano's productivity and growth in the short and long term. By continuously evaluating and refining our solutions based on these metrics, we aim to maximize their impact on the Cardano ecosystem.

Please describe your plans to share the outputs and results of your project?

We have already published blog posts on our website and Medium.com, explaining the benefits of our solution. Our open-source Github repository allows for community feedback. We will continue documenting our experiences, sharing examples, and incorporating user feedback into further development. Our goal is to engage the Cardano community, disseminate knowledge, and contribute to ongoing research and development activities.

What is your capability to deliver your project with high levels of trust and accountability?

We have high confidence because this project has already been built and tested, and requires some small improvements for the greater community adoption. We will use time to address community questions and strengthen documentation as needed.

We are also using this for Ikigai projects such as grabbit.market with vast developer experience on our team.

What are the main goals for the project and how will you validate if your approach is feasible?

Our main goal is to share our solution with the community and create a common solution on various aspects of similar problems. We want to created generic, extensible, preconfigured and easy deploy infrastructure which rapidly ready to handle needs of different projects.

In order to achieve this, we aim to identify the specific issues and challenges faced by the Cardano community when using Blockfrost or alternative solutions, and adjust our project accordingly to provide broader coverage and address these needs effectively.

Please provide a detailed breakdown of your project’s milestones and each of the main tasks or activities to reach the milestone plus the expected timeline for the delivery.

Milestone 1: 6 weeks, 2 devs

  • setup and configure services to up and running base to each other
  • cardano node
  • cardano db-sync
  • cardano-submit-api
  • postgres
  • blockfrost
  • build working containers
  • extract and adjust parameters from existing docker and kubernetes files
  • add missing properties and fix some of existing
  • create missing configs
  • parameterize containers and create compose file
  • extract common properties to evn values
  • unify way how the parameters are passed
  • define containers dependencies and connections
  • adjust running scripts and os level commands
  • kubernetes config
  • translate working docker compose to kuberneters config
  • add missing configs like networks, deployments or storages
  • helm charts
  • build charts config base of docker compose and kubernetes config

Milestone 2: 2 weeks, 1 dev

  • documentation and release

Please describe the deliverables, outputs and intended outcomes of each milestone.

  • Releasing the open source infra solution
  • Created open source github repo with documentation on how to use and modify deployments
  • Created CICD pipeline in github actions to build and publish the helm chart when a release tag is created
  • Created public S3 bucket repository to store and track versions of the helm chart so others could easily access it using standard helm commands
  • building working container, helm chart, etc. for blockfrost
  • Take existing development docker-compose file suggested by blockfrost and add additional parameters and services (cardano-service-api) to mimic the cloud offering of blockfrost
  • Translate docker definitions from compose into kubernetes deployment/pod definitions
  • Create kubernetes definitions for additional networking or infra requirements, such as services, physical volume claims, ingresses, secrets
  • Repeat the two steps above to create helm sub-charts for pre-req services (cardano-node, db-sync, submit-api) so entire stack can easily be deployed with one command
  • Parameterize all of the above so users can easily customize the deployment for their specific needs and environment
  • Iterate on parameters to allow production stable and scalable deployment

Please provide a detailed budget breakdown of the proposed work and resources.

Note that budget and milestones are retroactive, the project is already complete and open sourced at: https://github.com/ikigai-github/ikigai-blockfrost-config

Budget:

  • Developer time (~35k) (14 weeks of dev time)
  • infrastructure costs for testing ($300)

Who is in the project team and what are their roles?

Mike Morency: https://www.linkedin.com/in/mmorency93/

  • Senior DevOps Engineer at Ikigai Technologies
  • Responsible for developing, testing, and maintaining the helm/kubernetes portion of the deployment config.
  • Provides support and maintenance for docker-compose config.
  • Main steward of the Github repository

Krzysztof Szymański: https://www.linkedin.com/in/krsz/

  • Senior Software Engineer at Ikigai Technologies
  • Responsible for developing and testing the docker-compose and local development experience of the deployment config

How does the cost of the project represent value for money for the Cardano ecosystem?

In determining costs for this project, we consider the average industry wage, the number of developers needed, and the project's estimated duration. Additionally, as a legal entity, we comply with federal pay regulations and follow proper hiring processes with HR involvement. This ensures that our compensation practices align with legal requirements and promotes fair pay within our organization.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00