如何使用JavaScript和Express创建区块链

如何使用JavaScript和Express创建区块链

如何使用JavaScript和Express创建区块链

文章插图

什么是区块链?当结合生成有关某些交易或一系列步骤的信息时 , 区块链是一组在一起的区块链 。 例如 , 每当您进行任何银行存款或取款交易时 , 您都将根据您上一次存储在银行中的金额执行一项操作 , 当任何人在线上进行交易时 , 它都需要与上一个区块有某种关系 。
我们将如何理解这种情况并基于此创建应用程序 , 这是该块将如何连接的演示 。
如何使用JavaScript和Express创建区块链

文章插图

与流程图类似 , 我们将创建一个应用程序来演示相同的内容 。
让我们建立一个块首先 , 创建一个区块链 。 首先我们需要拥有块 , 因此让我们创建一个名为BloCK的类 。
如何使用JavaScript和Express创建区块链

文章插图

在第一行 , 我们正在导入一个包来为我们处理加密 。 下面的命令将为我们安装软件包 。
npm i crypto-js在构造对象时 , 这里有一些参数 , 即索引 , 时间戳 , 事务和foreignHash 。
index 是为块提供唯一的标识符 , 并通过索引为我们需要的任何数据结构提取块 。
timestamp 就是给特定的块一个创建时间 , 因为不能更新该块 , 所以我们不关心那个的updateAt时间戳 。
transaction是需要阻止的实际数据 。 例如 , 员工总数或总数或发件人详细信息等
precedingHash 如图所示 , 该字段将负责上一个块和当前块之间的连接 。
hash是将与一起工作的领域 , precedingHash以确保我们处在正确的连接轨道上 。
最后 , 有一个函数computeHash可以使用SHA256算法为我们计算哈希值 。 该算法将获取所有数据 , 以确保我们生成的哈希码的唯一性 。
现在 , 我们创建了块 , 让我们转到链上 。
创建一条链同样 , 我们将创建一个链类 , 该链类将使用更多方法在其中调用该块 。 这是整个类的代码 。
如何使用JavaScript和Express创建区块链

文章插图

首先 , 我们创建了一个空的构造函数来为我们初始化一些字段 , 包括id [给标识符] , name [给块一个很酷的名字] , blockchain [正在处理所有块的实际字段] , 以及最后一个困难[获得工作证明] 。
在进入代码的另一部分之前 , 我们将研究成因 。 对于任何区块链项目 , 我们都需要一个创始来用第一个块初始化链 , 因为第一个块的行为类似于构建块 , 并包含该块其余部分的第一个哈希 , 以用作先前的哈希 。 在这里 , 我们从上一类创建了一个块对象 , 并将其初始值作为参考 。
然后 , 我们创建了一个create()包含少量参数的name 是通过API命名 , id 是从API提供ID并genesis赋予初始成因一个值 。
那么我们在obtainLatestBlock()给我们链中输入的最后一个块 , 这将帮助我们获取最后一个块的哈希 , 然后将其分配给链中的新元素 。
最重要的方法是addNewBlock()在我们的链中添加一个新的块 , 该方法将块项目作为参数 。 首先 , 我们将获取区块链的最新哈希并将其添加到中precedingHash , 然后创建一个新哈希并将其分配给哈希 , 我们可以跳过此步骤 , 因为我们已经将其添加到了Block对象的构造函数中 。 但是一旦这种方法运行 , 它将继续将物品推入我们的区块链生态系统 。
最后checkChainValidity() , 我们将不使用它 , 但有助于验证该块 。
添加控制器和路由我们将添加3条路线 , 创建一个区块链 , 
POST - /api/blockchain得到区块链 , 
GET - /api/blockchain将新的孩子添加到链中
POST - /api/blockchain/append让我们为它创建一个控制器文件 , 
如何使用JavaScript和Express创建区块链

文章插图

首先 , 我们将导入我们创建的两个类Block和BlockChain 。 然后 , 我们创建了一个名为FlippingCoin的控制器 , 您可以根据需要命名它 。 但是 , 关键是我们需要关注3种方法:

推荐阅读