[DAO: QmXpMpy] Catalyst Protocol Definition

by 0x5e5d9d1dfd87e9b8b069b8e5d708db92be5ade99 (Paralax24#de99)

The Catalyst API has been evolving and adding different functionalities, endpoints and parameters as needed by the evolving platform requirements. Because of this needs, some changes while good decisions at the moment to unblock features, were not thought holistically or now they may be causing too much unneeded Data Transfer cost or have room for performance improvement for the Catalysts core processes like Bootstrapping and Synchronization.

Decision
After reviewing the Catalyst API we defined a set of changes to clean up and close a first clean version of the Catalyst Protocol. The changes that will be described below will enable us to:

  • Reduce Data Transfer cost by only narrow down the response bodies to return needed information
  • Reduce public API complexity by hiding endpoints that are only intended for troubleshooting, this will also reduce hits to endpoints that should not be used externally
  • Improve the Catalyst bootstrapping and synchronization time by reducing the amount of request and information received for the synchronization
  • Contribute to the Platform scaling and support of more concurrent users
  • Do a more efficient uses of the DB
  • Open the door to create new Catalyst implementation based on this protocol definition and with this, help us to create a more robust Protocol

List of API changes:

Secure endpoints won’t be part of the Catalyst Protocol definition but we will keep them as internal troubleshooting tools, these endpoints will require a key in order to be used. Those endpoints that will be removed from the Protocol but remain available for internal use are listed under the SECURE section

Current API API Specification for the Decentraland Catalyst Server (BETA)
Branch with API changes GitHub - decentraland/catalyst-api-specs at api-refinement

NEW ENDPOINTS
These endpoints will help to replace the most request information to the /deployments
/content/pointers/{entityType}
Given an entity type (scene, wearables) this endpoint returns the list of all the pointers paginated
/content/pointers/{entityType}/history?pointer=0,0&pointer=1,1
Given a list of pointers of the specified entity type, returns the history of deployments

RENAMED
From /lambdas/contentv2/scenes to /lambdas/content/scenes

SECURE
Removed from the public API and Protocol definition but kept for internal use
/content/deployments
/contents/{hashId}/active-entities
/content/failed-deployments
/lambdas/crypto/validate-signature
/comms/islands
/comms/islands/{islandId}
/comms/peers

DEPRECATED
/lambdas/contentv2/parcel_info: This info is also at /content/entities/{entityType}?id={cid}
/lambdas/contentv2/contents/{cid}: Should be downloaded with /content/contents/{cid}

Please vote for YES if you agree with the described API Changes or NO if you consider that the proposed changes will have a negative impact on the Decentraland Protocol.

  • YES
  • NO
  • Invalid question/options

Vote on this proposal on the Decentraland DAO

View this proposal on Snapshot

Catalyst Protocol Definition

This proposal has been REJECTED by a DAO Committee Member (0xfe91c0c482e09600f2d1dbca10fd705bc6de60bc)