[DAO:0e02c46] Creation of DAO-Owned Catalyst Archival Node for Decentraland Core

by 0xe400a85a6169bd8be439bb0dc9eac81f19f26843 (howieDoin)

Should the following $19,800 grant in the Platform category be approved?

Abstract

We believe there is a need to provide a DAO-owned Decentraland catalyst node for the community to use for applications. This node would be deployed as an archival node to make additional, historical data available to the community. The DAO-owned node would not be used to support users in world but instead to power an ecosystem of apps; thereby replacing the load on the existing catalyst node network.

We will also be developing an open source code base that can be used in conjunction with a historical node to query common requests against the historical database, host the infrastructure, and make it available to the community for one year alongside our other DAO Data APIs.

Grant size

19,800 USD

Beneficiary address

0xe64581F067Cfdce58657E3c0F58175e638C30f2B

Email address

howie@atlascorp.io

Description

The catalyst node network currently supports users as they play in Decentraland. The node network saves information on scene deployments, user profiles, and other Decentraland content that is not directly on chain but requires storage. Any application that wants to use this data – say to display the profile pictures of the user on an app, or to understand what parcels are associated with a scene – would use the APIs available on the catalyst nodes. If the application ecosystem around Decentraland begins to scale, this may cause an undue burden or strain on the node network as this load is above and beyond what is required to support users in game.

Similar to the DAO Data Aggregation initiative we undertook at the end of last year, we believe there is a need to stand up a dedicated catalyst node which can be used by the community for applications and application development. We are requesting funds which will translate directly into infrastructure costs to support an Application node with historical data.

This idea was conceived of by @Zino of the Grant Support Squad, with Atlas CORP volunteering to support the deployment and backfilling of data required.

Budget Specification

This project will cost the DAO $19,800 and will take approximately 2-3 months to deploy.
This breaks down into:

$7,400.00 - Infrastructure and Hosting Costs*:

• Budget for Digital Ocean API servers for one year

• Budget for Digital Ocean Volumes (<=5TB) for one year

• Reimbursement to @HPrivakos for any data transfer or costs incurred in assisting in the set up.

*This estimate is based on current pricing for each of the above platforms. $7,400 may not last a full year if pricing is altered by the provider.

$10,000.00 - Development Costs (estimated 3 month delivery):

• Configuration and deployment of historical catalyst node

• API query development resources to produce queries and prevent overuse

• DevOps and infrastructure development resources to automate as much as possible

• Technical Writing resources to provide user-facing API documentation

$2,400 - Ongoing Support Costs (6 months post deployment):

• Code updates when breaking changes occur due to external forces

• API Documentation updates

• API query user support in the Decentraland discord

Personnel

The development of this data platform would be done by the Atlas CORP (@atlascorp_dcl) team, who have extensive experience working with this data set:

• HowieDoin – Lead Analytics & Infrastructure innovation

• MorrisMustang – Lead DCL & Solidity innovation

• JosephAaron – Operations and task management

• StaleDegree – Senior Solidity/UI Development

• RyanNFT –Solidity/DCL Developer

• MrFlickIt – UX and Design

Roadmap and milestones

Currently the footprint of a node is about 2.25 TB which is expected to grow over time. This proposal covers 12 months of cloud infrastructure costs – a server with the appropriate horsepower as well as a volume to persist the 3-5 TB of [current and future] data required to host the catalyst node with historical data. We are currently working with the Foundation to transfer the current source of historical catalyst data which @HPrivikos stewards over to our catalyst node.

This node will then be made available to the community, which is encouraged to transfer queries to this new node. Instead any application that requires catalyst node data including player profile, scene definitions, and any new functionality to get comprehensive history should be served from this application-supporting catalyst node.

An open source API will be developed to perform queries against the historical data. These API queries will include information that has been asked of the Atlas CORP team but to date are not possible to answer without a historical catalyst node. These queries may include the ability to answer the following questions:

• When did a user first sign up for Decentraland?

• What is a user’s “user number”, from the ranked order all users signed up for Decentraland?

• What parcels did a scene cover in the past?

• What parcels did a scene cover over time?

Query documentation (e.g. Redoc) will be published and made available for users looking to operate or integrate with the API.

Vote on this proposal on the Decentraland DAO

View this proposal on Snapshot

2 Likes

I believe I can do it for cheaper, I already have the infrastructure and data in place to do it, I’ll start a new proposal for it.

1 Like

@HPrivakos You could do it really cheap if you just used your paycheck from the Foundation. Im sure you could do it for free if you were so benevolent with your time and money. You’ve had the data all along and were subsidized by the Foundation to run the infrastructure. I understand it looks like low hanging fruit to you now, but it didn’t seem so important before. If your intention is to stifle other development groups from wanting to contribute to the DAO, this is the perfect way forward.

would absolutely love to see this, it would open up SO MUCH possibility. Based on your previous DAO data project, I have 100% faith in your team to execute this. However, I do have one question:

We will also be developing an open source code base that can be used in conjunction with a historical node to query common requests against the historical database, host the infrastructure, and make it available to the community for one year alongside our other DAO Data APIs.

what happens after that one year? it will become pay to access or…?

1 Like

I’m getting 300 MANA per month from the Foundation for my catalyst, that’s 180 USD per month, I’m losing money running a catalyst, you are complaining I got 3.6k MANA (2.2k USD at current rate) over the last year when you are asking for nearly 20k for a year.
I believe I can do what you propose for less than half the price, which would be cheaper even including Foundation “subsidiary”.

I have the data because I ran a catalyst since the launch, using personal money and making sure to keep all the data on my own time and cost (backup cost money, in addition to running the server), I could have enable garbage collection to save money but I went out of my way to make sure everything was save-keeped, never made any money from it.


My goal is not to stifle development groups from contributing, I just believe I can provide a similar service for way cheaper, saving the DAO some money.
I also want to see how [DAO: bafkrei] Creation of DAO-Owned Data Aggregation Layer for Decentraland Core goes after a year.

4 Likes

Thanks for the vote of confidence @dax! With respect to what happens after the 12 months - the intention is to simply not make any binding decisions now. After 11-12 months we will have 12 months of data on who is using it, the distribution of utility (e.g. who depends on it more than others), and tangible data on infrastructure costs, cost growth, and maintenance and support effort. We we would be happy to continue to steward this infrastructure if the DAO decides to continue funding this initiative beyond the initial 12 months, but as the code will be made open source in theory anyone can decide to pick up that torch.

There also exists a possibility that it becomes necessary to support a redundant source of this data so we are not the only source of this data, just as we have suggested with our previous infrastructure contribution.

2 Likes

Thank you for highlighting what is likely a systemic problem within the ring of approved DAO nodes. If you are not being subsidized enough to cover the cost your node and some additional time for maintenance, there is a high likelihood you eventually stop caring.

It will be both to the DAO’s benefit and all of the Node operators that this is solved in a way that is equitable.

Let us have this be the catalyst towards transitioning the subsidy away from the Foundation and over to the DAO, and correcting the amount being provided to the node operators so Decentraland is sustainable. This is but one step towards aligning the incentives of the DAO and the node operators. At the same time, and as discussed throughout multiple AMA sessions, I suggest the DAO enforce an SLA/uptime requirement to hold the operators to a specific standard.

I encourage you to be part of that proposal.

3 Likes

Great proposal, would love to see DAO veterans finding consensus and working collectively on it. @MorrisMustang @HPrivakos @HowieDoin Hope you will find it. :peace_symbol: :handshake:

2 Likes

Hi everyone, I’m @agusaldasoro(https://github.com/agusaldasoro), and as part of the Decentraland Foundation, I’m one of the core contributors to the Catalysts. Below is my personal opinion about this matter, and it does not represent the opinion of Foundation.

Firstly, I’d like to clarify that I think that having the data and historical information of all Catalyst deployments available and released is of utmost importance and relevance to the community. That being said, I also believe that as we move towards a universe where data is decentralized, any community member should be able to have their own historical data running without depending on either the Decentraland Foundation or Atlas Corp.

What’s the current status?

  • There is only one node that holds all the historical data (as the Garbage Collection was never enabled there) which is https://peer.kyllian.me owned by HPrivakos.

  • There is also a Foundation hosted historical peer, which is read-only and only runs the Content Server that stores all scenes, wearables, emotes and stores, but it doesn’t store profiles at https://peer-historical.decentraland.org

Furthermore, I’d like to clarify that the implementation to retrieve all historical information from the Content Servers is already implemented within the /deployments endpoint. Therefore, it is not necessary to make any development or code changes to the Catalysts to offer this functionality.

Anyway, to bootstrap a Historical Content Node from Scratch the only way to do it is by copying a dump of another database and the folder with files (or S3). As there is no programmatically way to synchronize all changes from beginning of times, as only active entities are synced.

That being said, the item:

$10,000.00 - Development Costs (estimated 3 month delivery):

• Configuration and deployment of historical catalyst node

• API query development resources to produce queries and prevent overuse

• DevOps and infrastructure development resources to automate as much as possible

• Technical Writing resources to provide user-facing API documentation

Is not clearly needed. As:

  • The configuration and deployment of historical catalyst node consists of two steps:
  1. Copy all the data from peer.kyllian.me catalyst (which is a dump of the database and a folder with files)
  2. Run the ./init command from https://github.com/decentraland/catalyst-owner repository
  • No new code needs to be written.
  • No need for devops or new infrastructure, as with the Catalyst owner repository you have there all the necessary configuration for the docker images to run smoothly. Also, for running a Content Server only, you will only need to run a postgres docker and the content server docker (which the catalyst-owner branch is already set to do). Also, the content server can be run as read only mode, where the only allowed queries are GET.
  • No need for new technical writing resources, as no new API needed.

As a priority, I believe it is essential to first release the information and make it available to anyone who wants to run a complete historical Catalyst and only has to bear the hardware costs. Currently, there is no way (other than manually copying the database and files) to bootstrap a Content Server from scratch that includes all the historical data. And in my opinion, that should be the focus first.

In that line, if the items ‘Configuration and deployment of historical catalyst node’ and ‘API query development resources to produce queries and prevent overuse’ will include the necessary changes to bootstrap a Historical Catalyst from Scratch, then it would be great to have it specified in the proposal. Also, those changes must be compliant with the current Synchronization Mechanism between Catalysts as described in the Decentraland Protocol: https://adr.decentraland.org/adr/ADR-103 and also the sync mechanism employed by the nodes: https://adr.decentraland.org/adr/ADR-52. So a RFC with all the implementation details of the plan is mandatory to agree on a solution to that before approving a grant.

Once we have that sorted out, we can begin discussing the development of applications that run on top and add use cases to this implementation. Also, to vote and understand the value proposition of this I think that it is mandatory to commit to an API schema + Docs before voting, and also to guarantee High Availability.

I will vote no on the proposal because there is no easy and practical way for a new user to bootstrap a content server with all historical data, which I believe is the cornerstone on which to build new functionalities.

5 Likes

Voting no due to the information provided by @agusaldasoro It looks to me like this grant proposal needs a complete overhaul. Are we just voting for what ever sounds good without any diligence or data now? This is why in contract work companies or individuals bid on a job. Maybe there should be a way to do this also for certain Grant proposals. Unless someone can show otherwise?

Just wanted to give my shout of confidence in this team. Vroomway installed Atlas Analytics back in November of this last year (2022) and since then it has fundamentally changed how we understand our users. That understanding of our users has impacted our team more than any other software we use. The team is always available to troubleshoot what little issues we have had. Most have been user error :sweat_smile: They also built us a proprietary feature that allows us to have an even deeper look at some analytics to ensure integrity in our game and the integrity in our in-game economy.

We have essentially 3 different types of analytics now with 1 being DCL basic analytics (places page, builder analytics, etc), Colyseus server, and Atlas. Atlas and Colyseus are nearly always in sync and match up perfectly. Whereas DCL basic analytics are often off. Especially the places board. For the first 3-4 months of our game we relied heavily on the basic analytics in builder and on the places page and we never could get an understanding of what our users did and wanted. Now having that visibility and literal heat map of what the users are doing is infinitely valuable. After seeing the heat maps and other features, we changed our conversion funnel and instantly saw significant improvements in our conversion and the way people interact with our game. This helped us not only stay on track with our goals but also helped accelerate our goals and completely destroy our expectations (in a positive way).

Every time we release a new feature or have an important event, we are confident going into it knowing that everything we need to track is in place. Having this kind of confidence free of charge is absolutely game-changing. This is a true asset to any game/project maker in DCL. I talked with several analytic projects/companies before I found Atlas and none were as comprehensive or detailed as Atlas is. I cannot thank the Atlas Corp team enough for supporting us in our journey and helping us get closer to our community. Much love team! :pray:

Based on the information provided by @agusaldasoro, is there going to be a reframing of the proposal? It looks like the value provided by this project would be high but the implementation pathway could be simplified.

Creation of DAO-Owned Catalyst Archival Node for Decentraland Core

This proposal is now in status: PASSED.

Voting Results:

  • Yes 88% 9,904,614 VP (118 votes)
  • No 12% 1,397,165 VP (11 votes)

Creation of DAO-Owned Catalyst Archival Node for Decentraland Core

This proposal has been ENACTED by a DAO Committee Member (0xbfa6d24e6a061e9aea3447163fdfe045177dd40e)

Vesting Contract Address: 0x00f0e5b2a02A23c8A5DB1A81A24600dD9A77109d