not approved
DRED Decentralized API
Current Project Status
Unfunded
Amount
Received
₳0
Amount
Requested
₳195,000
Percentage
Received
0.00%
Solution

Develop a decentralized API service on Cardano based on DRED state channels to enable traditional API services transition to the Node operator model for increased capacity and resilience.

Problem

Lack of decentralized API services on Cardano forces projects and dApps to use centralized services. How can we decentralize the API services to improve the ecosystem?

Impact Alignment
Feasibility
Value for money

Team

3 members

DRED Decentralized API

Please describe your proposed solution.

Our proposed solution tackles the problem of having centralized API services by introducing a novel decentralized system architecture. By using state channels for request-response operations and implementing a reward system for load distribution among servers, we aim to enhance resilience and encourage organizations to participate by running their servers.

In our decentralized system, API calls are managed through (DRED) state channels, enabling reliable tracking and management of request and responses. The introduction of a decentralized load balancer dynamically offers responsibility for serving API calls to specific servers managed by node operators (such as DAO members).

This unique solution for load distribution balances workload across the network to provide resilience, while having a decentralized consensus record of the contributions provided by servers.

We aim to engage node operators who may have spare capacity on underutilized hardware, and with developers on projects who can benefit operationally by using decentralized API services. Developers will also benefit by being able to write traditional API code (e.g. an express web server) and deploy decentrally.

We will develop code and documentation developers can use to understand how to get the advantages of decentralized APIs and most effectively integrate them into their applications.

In future, our solution will also be able to incentivize operators to participate in the network and maintain their servers, rewarding them for successfully serving API calls. This fosters a healthy and robust decentralized API service ecosystem, driving the shift to decentralized systems.

Please define the positive impact your project will have on the wider Cardano community.

Impact:

Our solution provides a decentralized RPC/API service enabling a shift to decentralization. Benefits include improving security, resilience, and fair distribution of rewards, and attracting a broader audience to Cardano.

This will attract developers and enable authors of traditional API's to continue using their skills and code, and to operate those APIs through decentralized, community-operated infrastructure

Other secondary benefits include increased developer engagement, and fostering innovation by enabling innovative applications.

Success:

We’ll measure the success of our project through several key metrics demonstrating its positive impact on the Cardano ecosystem. Our primary objective is to streamline the integration of at least one existing service with our decentralized APIs, such as Dandelion/GraphQL and Demu Munode. Additionally, we will closely monitor the adoption rate of our DRED decentralized API among applications, as well as the growth in the number of developers utilizing our solution. A substantial increase in both application usage and developer engagement would serve as strong indicators of the project's success.

Moreover, we recognize the importance of qualitative feedback, and thus, we plan to conduct user feedback sessions to gather valuable insights and assessments regarding the usability and effectiveness of our decentralized APIs.

Concluding, our ultimate goal is to foster innovation within the Cardano ecosystem by enabling the utilization of the Node operator model for different services. Consequently, it is crucial to monitor robustness indicators, such as resilience, security, and censorship resistance.

Output:

We will actively engage with the community by making regular commits to our open-source repository and incorporating user feedback to enhance the project. Updates on our progress will be shared through platforms like Twitter, Discord, and also in After Town Halls. Once completed, the project will be publicly available on GitHub.

Collaboration with Cardano’s developer community is a priority for us. Consequently, we will organize workshops and webinars to share knowledge, discuss our solutions, and encourage further research and development for decentralized APIs

The project’s output will be valuable for future R&D. The documentation and codebase will serve as a guide for developers working on Cardano-related services switching to the Node operator model, while node operators with spare capacity can benefit from our work (e.g. being incentivized to serve API calls for other decentralized services).

What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

Our capability can be demonstrated by what we have already done, what we are doing, how we are working together, and by the reputation of the team members:

  • We developed DRED, a foundational library at the core of this proposal. The DRED project was managed and successfully delivered by this same team.
  • This proposal benefits of our experience in the development of another project using DRED, used for real-time interaction.
  • The team is capable, meets regularly, and has a good track record of github commits, and of published documentation and videos for the current projects
  • Several team members are well-known in the community

What are the key milestones you need to achieve in order to complete your project successfully?

Milestone 1 (1 month):

  • Create client-side proxy (javascript class)

  • Create server-side proxy (bridge to express service)

  • Implement each GET/PUT processing

  • Successful when: A decentralized API client can connect to a DRED node with GET/PUT request and receive an HTTP response from a decentralized server through DRED.

  • Outcome: client and server proxies APIs work withGET/PUT processing

  • Deliverable: Demo video, code.

>Milestone 2 (1 month):

  • Implement POST processing

  • Service providers identify and respond when they have responsibility for an API call

  • Serve one or more endpoints from Dandelion / GraphQL, Demu Munode

  • Successful when: A POST service interaction is demonstrated (request/DRED/response)

  • Outcome: A POST service interaction is demonstrated (request/DRED/response)

  • Deliverable: Demo video, code.

>Milestone 3 (1 month):

  • Bridge to out-of-process express service (e.g. in a docker container)

  • Iterate on bridge / proxy software components

  • Successful when: an external REST service can be exposed through DRED API Service.

  • Outcome: decentralized APIs can connect an external REST service.

  • Deliverable: Demo video, code

>Milestone 4 (1 month):

  • Fallback response when primary responsibility isn't served, for service redundancy.

  • Create record-keeping channel so that servers can have credit for the contribution, which can be later rewarded with minted tokens

  • Iterate on bridge / proxy software components

  • Successful when: a dead API-serving node has its responsibilities smoothly filled by a fallback node

  • Outcome: decentralized API offer redundancy

  • Deliverable: demo video, code

>Milestone 5 (1 week):

  • npm package

  • docs and CIP update

  • Community session

  • demo vid

  • Successful when: people can install a package and connect their server with a DRED API Service neighborhood

  • Outcome: people can install a package and connect their server with a DRED API Service neighborhood

  • Deliverable: docs and CIP update

  • Deliverable: Community session

  • Deliverable: demo vid, code

>For the Final Milestone, we present the results of M4:

  • Outcome: people can install a package and connect their server with a DRED API Service neighborhood
  • Deliverable: docs and CIP update
  • Deliverable: Community session
  • Deliverable: demo video, code

Please provide a cost breakdown of the proposed work and resources.

Overall, we did compute the total expenditure based on the team size, location, and using a market rate well below average in our locations.

The core team is made of four members, all software professionals living in the U.S. and E.U.

After careful evaluation based on past experiences, 50%FTE worked, and possible risks, we determined that the team needs around 75 k₳ per month ( 18.5 k$/mo) to work properly.

It is worth to note that, with such an amount, we can cater for unforeseen circumstances, like team member replacements, or market volatility, but we can hardly afford an extra developer or smart contract developer in case this might be needed in order to complete the project quicker.

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

This project represents good value for money.

Besides, the team cost is significantly competitive and below the market rate, giving team member locations, roles, and skills required for this project. As an example, for the American team members, the average wages for contracting software engineers (in CA or TX) are well above the 10 k$/month, while for the European team members (DE, AT) the average wages are around 7 k€/month

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