在solana發交易的時候,會在tx內包一塊最近的blockhash塞進去,之後一起簽名。而這個blockhash距離鏈上最新的區塊太遠的話,tx就會被拒絕。 (大概拿到之後兩分鐘就會過期) 這個機制使我們沒有辦法讓tx在本地放一陣子之後再送出。官方有提供一個解法叫做durable nonce。
這個durable nonce會需要你先創一個nonce account。nonce account在創建完後同時裡面也會存在一個nonce。我們只要讓tx符合下面條件就可以啟動nonce的機制
- 把 nonce 放在 blockhash (就不用放最近一塊的blockhash了)
- tx的第一個instruction是advanced nonce的操作
滿足上面兩個條件就可以啟動durable nonce的機制,下面會分成幾個步驟帶大家一步一步操作。