Transactions
比特幣交易廣播
我對網際網路上的交易廣播有點困惑。礦工如何知道交易已被廣播?網際網路網路非常龐大。或者我的比特幣客戶端如何收集廣播的塊?
比特幣 P2P 網路是一種泛洪設計,新的交易和區塊被廣播到每個連接的對等點,並且它們向每個對等點廣播。由於所有節點都會隨機選擇對等點,因此有效數據會很快到達所有參與者。所有驗證參與者都保留一個“記憶體池”,一組他們認為有效的未經確認的交易,礦工從他們的記憶體池中收集他們希望包含在區塊中的交易,並將它們變成一個候選模板以進行探勘。
在底層,比特幣有一個叫做json-rpc 的東西。它用於軟體中以及您希望集成到比特幣中以發送和接收付款、生成錢包地址和獲取網路數據的其他軟體。Bitcoin Core 和任何其他儲存區塊鏈完整副本的軟體(spv 錢包,如 multi-bit、mycelium 和 android 比特幣錢包重量輕,不會在手機上放置 60GB 的區塊鏈交易數據)。
他們通過埠 8333 相互交談,比特幣交易相互發送、廣播。如果您的電腦上有執行比特幣核心的自定義軟體,您可以編寫一個腳本,讓您的應用程序與比特幣對話以首先獲取輸入,然後創建原始交易,使用包含可花費輸入的私鑰簽署交易,然後廣播它。查看該過程,我們看到簽名交易返回一個 Json 數組,其中包含十六進制編碼的簽名數據和一個結果程式碼(大多數比特幣 Op_Code 腳本在協議級別返回 0 或 1 以表示失敗 (0) 或成功 (1) . 然後軟體通過埠 8333 使用該簽名的十六進制值將數據(廣播)發送給連接的對等方。然後協議返回事務 ID 或錯誤,再次作為 Json 對象。