Bitcoind

solo挖礦送出成功hash<=target時使用哪個rpc命令?

  • December 10, 2021

基本上,我想知道在嘗試向網路送出塊時要使用哪個命令(除其他外)。

Q1。是命令**bitcoin-cli submitheader還是bitcoin-cli submitblock**?

Q2。無論Q1中的答案是什麼,是要傳遞的數據在其中格式化**" " (double quotes)還是可以在不需要的情況下傳遞" " (double quotes)**。

我個人傾向於 Q1,bitcoin-cli submitblock 但我再次將生成成功雜湊的塊頭組合發送到網路進行驗證(0000002fa7931a0f87d08733874323.............)所以我開始考慮是否**bitcoin-cli submitheader**是正確的 API 呼叫。

這個非常重要。我不想成功地挖出一個區塊卻無法送出它……那真是太可笑了 o_o

提前致謝。

Q1。是命令**bitcoin-cli submitheader還是bitcoin-cli submitblock**?

塊不僅僅是一個標題,它們也包含交易。submitheader只需要一個標題,而不是交易。因此,僅送出標頭以將塊中繼到網路是不夠的。因此正確的 RPC 是submitblock.

據我所知,submitheader實際上也不會將標頭髮送給任何對等方,而submitblock會。

Q2。無論Q1中的答案是什麼,是要傳遞的數據在其中格式化**" " (double quotes)還是可以在不需要的情況下傳遞" " (double quotes)**。

如果您使用的是典型的 shell,那沒關係。如果您以程式方式執行此操作,則不要使用雙引號。

bitcoind 期望任一 RPC 的參數是一個字元串,儘管它不是直接從你的 shell 接收字元串,而是通過來自 bitcoin-cli 的 HTTP。bitcoin-cli 將採用 shell 提供的字元串並將其格式化以用於 bitcoind 使用的 JSON-RPC 協議。如果您正在編寫程序,則需要遵循 JSON-RPC 協議來格式化數據。

但是當使用 bitcoin-cli 時,它需要 shell 提供的字元串。由於 和 的參數都是submitblock十六submitheader進製字元串,因此無需使用任何形式的引號(單引號'或雙引號"),因為十六進製字元串中沒有特殊字元需要外殼轉義或以其他方式被告知不解釋。但是,對字元串進行單引號或雙引號是完全無害的,因為 shell 會在將字元串提供給 bitcoin-cli 之前解釋這些引號並刪除它們。

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