Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KodaDot - AssetsHub NFT indexer - Milestone 1 #1864

Merged
merged 13 commits into from
Oct 10, 2023
Merged

KodaDot - AssetsHub NFT indexer - Milestone 1 #1864

merged 13 commits into from
Oct 10, 2023

Conversation

yangwao
Copy link
Contributor

@yangwao yangwao commented Jul 25, 2023

Project Abstract

The AssetHub Indexer is a GraphQL service designed to streamline the interaction with Uniques, NFT non-fungible assets, and fungible assets on AssetHubs (Statemine/Statemint). This service is specifically tailored to serve as a robust data layer for NFT-oriented dApps, leveraging the simplicity of GraphQL and REST API.

In the current landscape, developers face challenges interacting with Uniques and Assets on Statemine due to the complexity and time-consuming nature of querying fungible and non-fungible assets on AssetHub. AssetHub Indexer aims to address these challenges by providing a user-friendly GraphQL interface, thus reducing the time and effort required to query these assets.

The key advantages of the AssetHub Indexer include

  • its focus on ease of use,
  • versatility for a broad range of use cases, and
  • its commitment to bringing Assets Hub (Statemine & Statemint) utilization & documentation closer to developers.

Furthermore, the AssetHub Indexer is a completely decentralized, open-source solution that respects user privacy by not collecting user data.

By reducing the time required to query assets and providing a more user-friendly interface, the AssetHub Indexer aims to foster the growth and development of the Web 3.0 ecosystem in Polkadot.

Grant level

  • Level 2: Up to $30,000, 3 approvals

Application Checklist

  • The application template has been copied and aptly renamed (kodadot_assethub_nft_indexer_statemine_statemint.md).
  • I have read the application guidelines.
  • Payment details have been provided (bank details via email or BTC, Ethereum (USDC/DAI) or Polkadot/Kusama (USDT) address in the application).
  • The software delivered for this grant will be released under an open-source license specified in the application.
  • The initial PR contains only one commit (squash and force-push if needed).
  • The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).

@CLAassistant
Copy link

CLAassistant commented Jul 25, 2023

CLA assistant check
All committers have signed the CLA.

@Polkadot-Forum
Copy link

This pull request has been mentioned on Polkadot Forum. There might be relevant details there:

https://forum.polkadot.network/t/polkadot-nft-assets-hub-indexer-by-kodadot/3528/1

@semuelle semuelle self-assigned this Jul 28, 2023
Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the thorough application, @yangwao! I will share it with the rest of the committee. I just have two questions:

  1. Since you mentioned that KodaDot is already using the indexer, could you expand on which parts of the project are already implemented and which are still work in progress?
  2. To simplify the evaluation, could you compress the list of deliverables? We don't need a separate deliverable for every event. For example, 3a and b, 4a to f and 6a to e could be one deliverable each.

@semuelle semuelle added the ready for review The project is ready to be reviewed by the committee members. label Aug 4, 2023
@yangwao
Copy link
Contributor Author

yangwao commented Aug 4, 2023

  • Since you mentioned that KodaDot is already using the indexer, could you expand on which parts of the project are already implemented and which are still work in progress?

You can have a realtime check here - https://github.com/kodadot/stick/milestone/1

2. To simplify the evaluation, could you compress the list of deliverables? We don't need a separate deliverable for every event. For example, 3a and b, 4a to f and 6a to e could be one deliverable each.

From our experience, the best is to have micro deliverables that the w3f reviewer can quickly evaluate.

Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the application, and sorry for the delay here. I'm generally happy to support the project, but could you reduce the price? The current FTE of 4, for example, seems too high to me, considering your current progress as well as the fact that so far, only three people contributed to the project. Reducing the grant to a level 2 project would also make it easier to accept it ;-)

Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with David. Twelve person months seems a lot for the scope.

@semuelle
Copy link
Member

Are you planning to make any further changes to the application, @yangwao, or should we continue reviewing as is?

@yangwao
Copy link
Contributor Author

yangwao commented Aug 15, 2023

considering your current progress as well as the fact that so far, only three people contributed to the project

There will be more people working on this.

Reducing the grant to a level 2 project would also make it easier to accept it

Yes, for now, it makes sense to split.

Are you planning to make any further changes to the application

Will be updating this week.

@keeganquigley
Copy link
Contributor

Thanks @yangwao feel free to ping us when we should take another look at it.

@keeganquigley keeganquigley added changes requested The team needs to clarify a few things first. and removed ready for review The project is ready to be reviewed by the committee members. labels Aug 15, 2023
@semuelle
Copy link
Member

Will be updating this week.

any updates, @yangwao?

@yangwao
Copy link
Contributor Author

yangwao commented Sep 1, 2023

Sure. I've been OOO, will look at the upcoming days

@github-actions
Copy link
Contributor

github-actions bot commented Sep 6, 2023

CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅

@yangwao
Copy link
Contributor Author

yangwao commented Sep 6, 2023

I have read and hereby sign the Contributor License Agreement.

@yangwao
Copy link
Contributor Author

yangwao commented Sep 6, 2023

Hey, @semuelle @keeganquigley @Noc2, I've split our proposal into Milestones.
Now, we will ask only for Milestone 1, which is already done live in production.
It's used by KodaDot, PlutoWallet and soon by others.

Ref

@yangwao yangwao changed the title KodaDot - AssetsHub NFT indexer KodaDot - AssetsHub NFT indexer - Milestone 1 Sep 6, 2023
Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the update, @yangwao. Please see some questions below.

| 9. | Metadata Support for Fungible Assets | Implement a handler to add metadata to a fungible asset event from the chain. |
| 9c. | Fungible Asset Allowlist Setup |Setting up allows list-based indexing of fungible assets. |
| 10a. | Data Views Development |Construction of data views for efficient access to indexed data. |
| 10b. | Implementing Metadata Caching Layer |Develop and retry IPFS metadata if un-indexed by 7j. |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does 'unindexed' mean here? Unpinned?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this means that we will store those data if particular IPFS hashes are not pinned by original author for better UX.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does 'unindexed' mean here? Unpinned?

We have come up eager approach of fetching metadata from ipfs (aka to index). If indexer fails to do that in 8 seconds metadata are unidexed and we try again after some period of time?

This is usefull because end users of this indexer does not nees to suffer high costs of IPFS gateways.

@semuelle
Copy link
Member

Please ping me here when the changes relevant to my requests have been made, @yangwao.

@yangwao
Copy link
Contributor Author

yangwao commented Sep 12, 2023

@semuelle please have check.

@yangwao yangwao requested a review from semuelle September 12, 2023 13:52
Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @yangwao. Thanks for the updates. However, I am slightly confused as the issues listed in the M1 tracker have been closed for six weeks, and the commits referenced in them are largely from April and May. Since we don't do retroactive funding, I'd suggest you apply for M2 instead.

@vikiival
Copy link
Contributor

Since we don't do retroactive funding, I'd suggest you apply for M2 instead.

Hello @semuelle.
sorry for confusion this proposal is aimed to AssetHub NFT indexer with ArrowSquid, which was released two days ago.

I am slightly confused as the issues listed in the M1 tracker have been closed for six weeks

Yes that was a proof-of-work that we are able to deliver good quality software.

largely from April and May

Yes, all this is implemented using FireSquid technology that would come to EOL in 3-4 months.

FireSquid vs. ArrowSquid aren't the same

The ArrowSquid is using a batch processor, that requires totally different data handling as FireSquid. Due to the nature of the ArrowSquid we are able do the processing more effectively but need to rewrite the code from scratch.

TL;DR

Prior this proposal the M1 was aimed as a proof of concept to present the successful delivery by our team. We aim to use latest tech (ArrowSquid) that requires reimplemetation of the current indexer.

Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates, @yangwao, and sorry for the late reply. Could you add the details of your previous comment regarding ArrowSquid into the application? Currently, it's not mentioned at all. Also, you removed the 5k USD allocation as deliverable, but the total costs remained the same. I would have assumed that it would be reduced correspondingly.

@semuelle
Copy link
Member

pinging @yangwao & @vikiival

@vikiival
Copy link
Contributor

@keeganquigley
Copy link
Contributor

Thanks @vikiival the proposal can't be merged until it reaches 3 approvals. However I see your changes haven't been merged yet by @yangwao, I think these changes need to be merged into the application first in order to move forward with it.

@yangwao
Copy link
Contributor Author

yangwao commented Sep 26, 2023

Hello @semuelle @keeganquigley please have check

@vikiival
Copy link
Contributor

I have read and hereby sign the Contributor License Agreement.

Copy link
Contributor

@keeganquigley keeganquigley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @vikiival @yangwao although looks like the application is still missing an Overview section. Can you add this in?

Also, the numbering in the milestone tables is missing 6, therefore it doesn't make sense as is. Can you fix the numbering scheme and perhaps consolidate some of the deliverables so that there aren't so many? For example, 4a. - 4f. could probably be combined into one section, as well as 7a. - 7k. Also section 9 doesn't follow the same letter scheme that the rest of the deliverables have.

@yangwao
Copy link
Contributor Author

yangwao commented Oct 5, 2023

you removed the 5k USD allocation as deliverable, but the total costs remained the same. I would have assumed that it would be reduced correspondingly.

Hey thanks for your assumption @semuelle, it was supposed to be removed as residues from the first version of the proposal, we've realized that implementation costs are slightly higher in ArrowSquid, than we've anticipated, thus we are taking max allowance on this stage to at least cover our implementation costs.
Hope it's OK for you as we are a trusted delivery partner in the Polkadot ecosystem with 7 indexers [1], [2], [3], [4]. The latest one will be used by Talisman and NovaWallet. So we see it as an ecosystem public good with utility.

Can you add this in?

It's added now.

Can you fix the numbering scheme and perhaps consolidate some of the deliverables so that there aren't so many?

Improved now.

Let us know @keeganquigley when you review it.

Copy link
Contributor

@keeganquigley keeganquigley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the changes @yangwao I think it would be great to have an indexer for AssetHub. Also based on Kodadot's standing in the community I'm willing to go forward with it. I will mark the application as ready for review and ping the rest of the committee.

@keeganquigley keeganquigley added ready for review The project is ready to be reviewed by the committee members. and removed changes requested The team needs to clarify a few things first. labels Oct 5, 2023
Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates, @yangwao. I am also willing to go ahead with it.

@Noc2 Noc2 merged commit 5259b0d into w3f:master Oct 10, 2023
8 of 9 checks passed
@github-actions
Copy link
Contributor

Congratulations and welcome to the Web3 Foundation Grants Program! Please refer to our Milestone Delivery repository for instructions on how to submit milestones and invoices, our FAQ for frequently asked questions and the support section of our README for more ways to find answers to your questions.

Before you start, take a moment to read through our announcement guidelines for all communications related to the grant or make them known to the right person in your organisation. In particular, please don't announce the grant publicly before at least the first milestone of your project has been approved. At that point or shortly before, you can get in touch with us at [email protected] and we'll be happy to collaborate on an announcement about the work you’re doing.

Lastly, please remember to let us know in case you run into any delays or deviate from the deliverables in your application. You can either leave a comment here or directly request to amend your application via PR. We wish you luck with your project! 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready for review The project is ready to be reviewed by the committee members.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants