Go-Ethereum

IPFS 上託管了多少個 NFT?

  • March 11, 2022

首先讓我說我是一個 NFT 菜鳥,所以如果有任何明顯的問題,我提前道歉。

我正在尋找確定在 IPFS 上而不是在集中式 Web 伺服器上“託管”了多少 NFT,即有多少以vstokenURIs開頭。此處的文章很好地概述了您可以為特定合約地址執行的手動步驟以獲取. 我希望能夠以有效的方式為整套 NFT 做到這一點。ipfs://``https://``tokenURI

在我的搜尋中,我遇到了一個非常酷的項目ethereum-etl,它甚至有一個帶有乙太坊區塊鏈的 Big Query 的公開可用實例。不幸的是,這些數據庫表中的 tokenURI 似乎都不可用。

我最好的選擇是修改ethereum-etl還是編寫呼叫 Big Query 實例然後使用 web3.js 的腳本?tokenURI具體來說,使用以下方式從合約地址獲取 看起來是非常可行的:

const nftAddress = 'YOUR_ADDRESS';
const contract = new web3.eth.Contract(ERC721ABI, nftAddress);
const tokenURI = await contract.methods.tokenURI(id).call();

(這是對我在這裡找到的程式碼的改編)

當然,在完整的 NFT 集上執行腳本來執行此操作需要一段時間,對吧?有沒有更好的開箱即用的方法?

更新:我創建了這個沙箱,它使用 web3.js 來獲取tokenURI給定的 NFT。

你正在做的可能是你最好的選擇!沒有智能合約的鏈上“系統資料庫”可以讓你跟踪它們的存在。

以下是您可以採取的一些途徑。

1. 找到一個包含您想要的資訊的數據集:這很不言自明,ethereum-etl很酷,但顯然他們的 Google BigQuery 實例沒有您想要的所有數據。也許有人有一個數據集呢?可能不是(它是利基、動態數據),但可能值得一試。您可能想看看NansenDune平台。請記住,即使您確實找到了數據集,它也可能不是最新的,因為baseURI/tokenURIs可以更改。

**2.通過第三方乙太坊 API 查詢您感興趣的每個 ERC-721/ERC-1155 合約的 / baseURItokenURI**這可能最接近您正在做的事情。您將獲得一份您感興趣的所有契約的列表,現在您可能想要查詢每個契約的該功能。這將使您到達您需要去的地方,但它可能會很慢,因為您需要使用一些毫無疑問會限制您的 API,除非您付費。但這將為您提供準確的資訊。您可以考慮抽樣,例如僅對去年創建的契約進行 1% 的抽樣。

**3. 查詢您感興趣的每個 ERC-721/ERC-1155 合約的 /,查詢本地託管節點baseURItokenURI**這是非常極端的。乙太坊節點現在非常大,這可能不切實際。值得把它放在那裡。如果您不想受到第三方 API 的速率限制/瓶頸,您可以自己託管數據並執行配置為查詢您自己的節點的腳本。

如果我是你,我可能會選擇帶有抽樣的選項 2。

引用自:https://ethereum.stackexchange.com/questions/123549