24 个区块——构建区块链降临日历
24 个区块——构建区块链降临日历
原文:https://medium.com/hackernoon/24-blocks-building-an-blockchain-advent-calendar-6bf8d5b74ac0

congerdesign / pixabay
在区块链/加密货币领域度过如此疯狂的一年后,我想为我心爱的人打造一些新的独特的东西。突然,我想到了将区块链话题与圣诞节话题联系起来的想法,我开始制作区块链降临日历。日历往往像区块链一样是线性的,所以为什么不尝试一下,将两者结合起来。
您需要什么:
- 24 个容器,如盒子、袋子、袜子或任何可以装糖果的东西
- 24 件物品放入容器中(这是最难的部分)
- Node JS (>= 9.3.0) / npm 或者 yarn /基本的 JavaScript 编程技能(或者只是复制粘贴我的脚本)
- 打印机/剪刀/胶水/办公材料
基本上,下面的 calendar.js 描述了整个日历逻辑。对于列表中的每个项目,都会创建一个新的块,并将其附加到块链。添加完所有区块后,程序会打印出整个区块链。你只需要从第 4 行开始,在数组中列出你想放入日历的 24 个项目。这个脚本使用的是一个名为 Blockchain lite 的区块链库。您必须在安装之前使用以下命令:
npm install blockchain-lite
或者
yarn add blockchain-lite
如果你用的是纱线。这将从 npm 注册表中安装区块链-lite 软件包。
运行该命令后:
node calendar.js
您应该会得到类似下面 calendar-output.txt 文件所示的输出。我使用了这个命令:
node calendar.js > calendar-output.txt
将输出通过管道传输到一个名为 calendar.txt 的文本文件
之后,我们得到了一个由 24 个(0 到 23)块组成的数组,其中包含了我们之前插入的所有信息以及额外的元信息,比如时间戳和索引。所有块和其中的数据都是一致的,并且经过了正确的哈希处理。如果您要更改区块链中的单个项目,整个链将会不一致,并且有必要重写整个链以再次变得一致。第一块没有先前的散列。这个街区是我们的创世纪街区或者说是 12 月 1 日。指数为 23 的街区是我们的最后一个街区,即 12 月 24 日。
将输出通过管道传输到 calendar.txt 文件后,我手动修改了该文件。我删除了文件中所有的元信息和数据。我想让我的账本保密;).
我还缩短了字符 12 和 52 之间的散列部分,以确保输出适合我的机器。也没有必要有 64 个字符长的散列,反正它们在 24 个块中是唯一的。
现在你只需要像纸(厚厚的红纸板或者类似这样的东西)一样把圣诞上的积木(calendar.txt)打印出来就可以了。用物品装满容器。将打印好的散列块切成小块,并将其贴在正确的容器上。混合所有的容器,你就完成了。在 12 月 1 日,您需要搜索没有先前散列的块或起源块。在 12 月 2 日,您需要搜索先前的散列与前一天容器的散列相同的容器。所以,一天比一天容易。
帮自己一个忙,不要把容器排成一串,因为那样会破坏寻找正确的散列/先前的散列组合的乐趣。
我想祝你快乐连锁,节日快乐和新年快乐。保重。