Client
Blockchain.info 和 BlockExplorer 等 API 是如何工作的?
當我使用任一服務查詢地址時,他們是否只是查詢已開采的最新區塊?
或者這些服務是否在網路中有節點來收集尚未編碼在塊中的數據?
有時,我的查詢幾乎立即返回“正確”資訊,但有時需要很長時間才能反映最近的交易——想知道為什麼會這樣。奇怪的是我可以發送btc,在接收地址上查詢3秒內返回最新余額,然後立即進行另一筆交易並查詢成功,而其他時候API查詢不會反映很長一段時間的最新交易。見解讚賞。
像BlockExplorer和BlockChain.info 這樣的公共比特幣檢查服務幾乎和普通的比特幣客戶端一樣工作。
它們作為比特幣網路中的一個節點執行,因此與所有其他節點一樣,儲存完整的區塊鏈。該區塊鏈包含曾經進行的所有交易,並用於計算地址的餘額。
就像其他節點一樣,它們也接收來自其他節點的交易,並且可能還會在它們被確認之前顯示它們(當然明確表明它們不是)。事務到達所有節點所需的時間各不相同。並非所有節點都知道所有其他節點,因此事務可能需要幾秒鐘才能被所有節點注意到。
根據服務是否記憶體資訊,在節點的交易到達和它出現在網站上的時間之間可能會有一段時間。您可能會明白,當您針對相同的數據在彼此之後不久查詢 10 次時,在區塊鏈索引中多次進行相同的查找是非常昂貴的。因此,我認為這些客戶端中的大多數可能會進行某種記憶體,但不會過於廣泛。最多可能是一分鐘,因為他們知道在比特幣交易處理中,在那段時間內會發生很多事情。
除此之外,載入時間還取決於伺服器的負載。當多個使用者嘗試同時訪問其地址的餘額時,其中一些使用者可能不得不等待。