我正在研究区块链,并且正在实现一个非常简单的“工作证明”。工作证明: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,所以我不介意这在浏览器中不起作用。
添加回答
举报
0/150
提交
取消