我正在研究區(qū)塊鏈,并且正在實現(xiàn)一個非常簡單的“工作證明”。工作證明:export function mineBlock(difficulty: number, block) { const prefix = Array(difficulty + 1).join("0"); function mine(block, difficulty) { const nonce = block.nonce + 1; const newBlock = {...block, nonce}; const hash = calculateHash(newBlock); return hash.substring(0, difficulty) === prefix ? {...newBlock, hash} : mine({...newBlock, hash}, difficulty); } return trampoline(mine(block, difficulty));}蹦床:export function trampoline(func) { let result = func; while(result && typeof(result) === "function") { result = result(); } return result;}我仍然收到“超出最大調用堆棧大小”錯誤,甚至沒有蹦床mine功能。我已經閱讀了關于StackOverflow的許多其他問題,以及各種博客上的文章,但是其中許多問題僅關注蹦床或TCE解決問題的“階乘”或“斐波那契”示例……但事實并非如此。我正在使用Node 10,所以我不介意這在瀏覽器中不起作用。
蹦床遞歸導致“超出最大調用堆棧大小”
不負相思意
2021-04-26 16:19:58