Script
根據共識規則,腳本大小限制是什麼?它們是否在測試網上強制執行?
我試圖找出腳本在大小方面的限制,這些限制會使腳本無效(忽略標準)。根據這個問題以及比特幣核心原始碼1 2 3中的這些程式碼行,似乎存在以下規則:
Maximum script size = 10,000 Maximum data size to be pushed to the stack = 520
為了測試這些規則,我在 TestNet 上做了一堆交易,所有這些都違反了某些規則並被包含在塊中(全部從 發送
n3eynMTEiGgPTuoKPApnRjE9pAuaAk3gkB
)?範例:Tx ID:
88bac1e84c235aa0418345bf430fb43b336875974b6e87dc958de196f9222c35
PubkeyScript
length=0xfd1527=10,005
script=4d11275b2c...394e75
或Push_10001_byte<5b2c...394e> OP_DROP
如您所見,腳本的長度已經是 10,005 > 10,000 並且第一次數據推送是 10,001 > 520。換句話說,我打破了這兩個規則。
另外據我所知,TestNet 上的“共識”規則完全相同(有一個例外:難度調整),對嗎?那麼這些交易如何有效呢?
這些共識規則對於測試網和主網確實是相同的。
但是,它們僅在執行腳本時才適用。所以你必須創建一個輸入來嘗試使用它來測試它。