比较基础的区块链实现,并不一定要用 JS 写,TS 也可以,只是一个 prototype,很多随机、验证没有做,顺便加一些自己的学习笔记相关。 简介 顾名思义,区块链是由一个个区块(block) 串联 起来的产物,而每一个 block 至少包含以下 5 个属性: interface Block { index: number; timestamp: number; transactions: Transaction[]; nonce: number; hash: string; previousBlockHash: string; } 其中 index 并不是必须的,这个属性只是为了方便获取最后一个 block,其他的包含时间戳、当前 block 所包含的交易(transactions)、nonce、hash 和上一个 block 的 hash,除了 nonce 之外的其他属性都比较好理解。 nonce 是一个电脑生成的随机数,它的用途是用来生成当前 block 的特定 hash 值,和证明整个 block chain 的合法性。nonce 又被称之为 proof of...