Blockchain

區塊鏈 MySql 實現 - 更新數據庫

  • February 2, 2015

我知道這裡有類似的文章關於利用 MySQL 作為包含區塊鏈內容的應用程序的基礎,但我沒有看到任何關於在初始轉儲後更新數據庫問題的即時答案。

假設我繼續使用 blockparser 或 ABE(或您認為效果更好的其他應用程序),我如何在初始轉儲後更新數據庫?我還沒有實施任何解決方案,因為我想在深入研究之前弄清楚這部分。

我的目標是將我的本地區塊鏈插入 MySQL,然後定期更新以使數據庫保持最新。

幾個選項:

  1. 直接連接到比特幣網路,解析所有消息,驗證區塊並將其中包含的所有交易插入 MySQL 數據庫。這會有點困難,因為您必須編寫程式碼才能連接到網路。
  2. 與 MySQL 數據庫並行執行 bitcoind,並使用getblockcountgetblockhashgetblockgettransactionRPC 命令的某種組合,並將事務數據插入 MySQL 數據庫。您可以每 5 分鐘左右執行一次 cron,並且您應該擁有一個相當最新的 MySQL 數據庫。這是以相當大的磁碟空間為代價的,因為您需要為 bitcoind 擁有整個區塊鏈(30 gigs 並且還在增長)。
  3. 連接到其他服務並以這種方式獲取數據。Blockchain.info 是顯而易見的,他們有一個很棒的 AP​​I 可以獲取你需要的所有新數據。不幸的是,您必須信任他們才能提供正確的數據。還有使用stratum和ABE等提供數據的電子伺服器。哎呀,如果你能讓某人在 bitcoind 上打開他們的 RPC 埠(8333),你可以連接到他們的 bitcoind 並使用與 #2 相同的命令。這裡的缺點是您必須以某種方式、形式或形式信任第三方,當然,您可以編寫自己的驗證碼。

無論您選擇哪種方式,在嘗試使該數據庫保持最新時,您都需要處理一些困難的事情,例如孤立塊。

引用自:https://bitcoin.stackexchange.com/questions/35857