1. 介绍
本文介绍使用JavaScript来实现一个区块链程序
参考https://www.youtube.com/watch?v=zVqczFZr124【需要翻墙】
由于区块链中使用SHA256算法来进行加密,但是JavaScript中默认没有SHA256算法的实现,所以我们需要使用crypto-js实现SHA256算法。
使用npm来安装该crypto-js包
2. 开始
这里就不介绍区块链相关的概念了,直接看实例代码
首先我们使用Visual Studio Code来新建一个main.js文件,用于本次实验。
2.1 区块类
首先我们先建立一个区块的类,该类的构造器中需要传入相应的【索引,生成时间,块中存放的数据,上一个链上的HASH值】信息。
在main.js中加入如下代码。
代码如下:
2.2 区块链类
有了以上的区块类,需要有一个区块链类来将所有区块连接起来。
该区块链类中,提供了几个方法
在main.js中加入如下代码。
代码如下:
2.3 测试区块链类
在命令行直接使用node main.js命令来运行该main.js文件
fangzheng@localhost ~/JavaDev/Visual Studio/blockchain $node main.js
可以看到下一个区块的previousHash 等于 上一个区块的hash值,这样保证将整个区块连接了起来。
2.4 测试修改区块链
接下来测试修改区块链中某一个块,然后验证该区块链是否还有效。
第63-66行是新添加的测试代码
使用node main.js命令来运行该main.js文件后,打印如下结果:
Is blockchain valid ? true
Is blockchain valid ? false
可以看到没修改之前整个区块链是有效的,修改之后是无效。
3. 总结
以上就是简单的使用JavaScript来实现了区块链程序的代码,完整代码如下:
领取专属 10元无门槛券
私享最新 技术干货