【主要内容】

今天开始尝试通过Python来建构一个最简单功能的区块链实现,共用时间36分钟。

(此外整理作笔记花费了约67分钟)

详细学习过程见文末学习过程屏幕录像。

今天开始分析一直区块链应用的简单实现的代码写法,但没有任何实质进展。

【学习笔记】

一、安装flask

(一)首先尝试按教程操作:

昨天安装了虚拟环境模块:

virtualenv

今天按照教程,在昨天的基础上继续安装

检测是否安装成功的方法:

然而当我把这一切做完的时候,用VSCODE打开import flask的页面,发现,还是提示flask没有安装 。

这证明按此教程,折腾了半天终于把flask成功的安装到虚拟环境中。

然而昨天 从github下下载的这个源文件,不是在虚拟环境中运行的。

(二)于是直接安装pip install flask

这样终于将flask安装完成,运行Py文件执行操作正常。

二、尝试学习分析此Py文件实现的原理的过程

当发现从github上下载的包中,在文件夹【blockchain_client】(这就是区块链供客户使用的客户端)下有一个py文件:

【blockchain_client.py】

直接运行此文件,成功在浏览器中通过:

http://127.0.0.1:8080/

访问了网页版的区块链客户端。

因为对flask模块不很熟悉,因此并不了解网页源文件与flask是怎样互动而构建了一个本地服务器架构的,于是开始寻找。

(一)发现html源文件

【blockchain_client.py】

文件对应的三个html源文件存放在从github中下载下来的源文件包中的

文件夹【blockchain_client】->【templates】文件夹下

三个文件并行放在此目录中。

今天由于学习时间的关系,还没有深入研究透flask模块是如何与外部的Html源文件进行交互的。

但发现一个有趣的现象:

(二)flask模块可以虚构页面的物理位置?

在物理目录中,这三个html源文件:

index.html

make_transaction.html

view_transactions.html

是并列存放在同一目录下的,

然而,模拟出的服务器的链接地址却有所不同:

分别对应的地址如下:

http://127.0.0.1:8080/

http://127.0.0.1:8080/make/transaction

http://127.0.0.1:8080/view/transactions

即是说,本来在同一物理目录下的三个html文件,在实际展示效果中,却被放到了服务器的三个不同目录下的感觉,我以前写过网站程序,使用的是asp.net,没有涉及到隐藏真实的页面地址这些工作,就目前我的初步认识(不知道是对还是错),发现这个flask模块的这种作用比较有意思。

此文件的代码细节还需要进一步花时间研究。

【学习后记】

一、适用于python的每一个第三方库都是一方小宇宙

这是这学习Python几十天来发自内心的感慨,Python的强大就在于它的包容乃大,生态建设,促进了它自身的繁荣。

这不得不让人承认:建构一个生态系统的意义胜过无数的独自欣赏的封闭项目要来得有生存力,要更为强大。

二、简单的才是最有生力的

blockchain_client.py

文件真正有效部分只有90行,然而却实现了一个完整的区块链的客户端功能,真可谓是体量小,功能强劲。

这无不让人惊叹于世界上最厉害的生物体正是连基本生命结结构都残缺不全的病毒!

简单才是王道。