numbersprotocol / community-support

This is a channel for Numbers community to report issues or open feature requests.
225 stars 6 forks source link

Each nftRecord in AssetTree could have one or more NFT, not collecting all NFTs #319

Open shc261392 opened 11 months ago

shc261392 commented 11 months ago

Is your feature request related to a problem? Please describe. According to the Asset Tree Spec:

nftRecord is a file on IPFS decentralized web containing a list of NFT records. As discussed in the Key Difference From NFT page, it is common that one asset is minted as multiple NFTs. In order to keep all the NFT records and associate them with the asset, we choose to save JSON files on IPFS and serve as the database of NFT records.

However, using nftRecord as a database of all NFT records for an asset make it more difficult to make commits, since it requires the committer to retrieve all previous NFT records of the asset before making a new commit. The effort is non-trivial, and collecting all NFT information of an asset is a feature that is already completed by the NSE service. It would be more ideal to delegate the NFT database job to NSE, instead of requiring the committer to collect all previous NFT information in existing asset trees before making a new commit.

If it is not required for the committer to make a list of all associated NFTs in nftRecord, it would be nice to provide a clearer description to let the committer know they only need to add the NFT associated with the current commit.

Describe the your user story As a Nit commit user and NFT developer, I want to commit only the NFT I created in nftRecord, instead of being responsible of collecting all previous nftRecord and append my new NFT to it.

Describe the solution you'd like Whether or not I could do this is not very clear in the spec, so I'd like the spec to update and give a clearer definition to address the concern described above.

Describe alternatives you've considered N/A

Select label General

Additional context N/A

┆Issue is synchronized with this Asana task by Unito

tammyyang commented 11 months ago

Agreed this is an issue. Here is my proposal if makes sense:

We can update nftRecors spec so that it is used for a one-time commit.

For example, if I want to make sure the records can be found, I need to create a commit after minting and put the NFT info "of that mint" to be included in the nftRecors .

However, if I truly want to know the full NFT history of an asset, I should use search engine API (which pulls the onchain data directly).

@shc261392 how do you think?

shc261392 commented 11 months ago

That makes sense to me. Also it would be nice to keep the nftRecord as array structure and allow multiple NFTs in a one-time commit to support the case that multiple NFTs are minted as a action.