参考
https://github.com/daxeel/blockshell/wiki
https://github.com/daxeel/blockshell.wiki.git
https://github.com/daxeel/blockshell.git
https://zhuanlan.zhihu.com/p/33520216?utm_medium=social&utm_source=ZHShareTargetIDMore
Blockshell —— 一个最小的学习区块链的命令行界面
git
wiki
切记 这是python2 坑死我了
Blockshell —— 一个最小的学习区块链的命令行界面:Blockshell 是一个用于学习区块链技术概念的命令行工具(CLI)。对于任何想要了解区块链技术是如何工作的人,BlockShell 应该是一个很好的入手点。
简介
Blockshell 适用区块链概念,并在本地系统中创建一个小小的区块链,所以,你可以实际学习像区块、挖矿、哈希值和工作量证明等等的概念。所以,在 Blockshell 中,使用简单的命令创建区块,剩下的任务都将交由 Blockshell 处理。
接下来,我将尝试解释 Blockshell 是如何工作的。
安装
blockshell
pip install --editable .
sudo apt-get install python-pip
pip要用pip2啊 千万记住啊
pip2的Ubuntu安装方法就是
cd blockshell
git clonehttps://github.com/daxeel/blockshell.git
source venv/bin/activate
virtualenv venv
mkdir
&& cd project_name
Step 1 - Create project directory
Step 2 - Create new virtual environment with python version 2.7.
Step 3 - Activate virtual environment
Step 4 - Clone this repo
Step 5 - Change directory to cloned one
Step 6 - Install blockshell
Step 7 - Try "blockshell" command and test installation!
我只做了后4步,显然我不想把他装到虚拟环境里
初始化新的区块链
上面的命令初始化新的区块链,并在工作目录中创建chain.txt(用于存储区块链数据),你可以将这个 chain.txt 文件作为真实世界区块链的分类账。
-- -- difficulty number表示区块链工作量证明的困难等级,数字(number)越大,在我们的区块链中挖掘新的区块需要的时间越多。
在我们的区块链中,有 Initial Zeros Proof of Work 算法,所以,当我们要挖掘新块时,PoW 将会寻找初始 3 个字符为零(0)的哈希,就像我们在初始化时我们的区块链的难度等级被设置为 3。
例:(hash)
0002fdd96ffec46277a753fa983773599c816dcf100c956afae0a4853fd1ce32
[BLOCKSHELL] $ blockshell init --difficulty 3
挖第一个区块
让我们存储一些数据,之后通过 PoW 来挖掘我们区块链的第一个区块。
[BlockShell] $ dotx hello blockchain
Blockshell 带有内置的用于创建一个新的事务的命令dotx,这个命令会挖掘给定数据的新块(如 hello blockchain)
挖掘这个区块取决于区块链的难度等级,现在是 3,这就是为什么我们的块在不到一秒钟的时候里面就开采出来了。在挖矿结束之后,我们收到了那个块的哈希,3 个字母的初始值为 0,难度为 3。
Genesis 区块(创始区块)
区块链中的第一个区块称为 Genesis 区块,它是在区块链开发时手动创建的。在我们的例子中,这个生成块的创建是由 Blockshell 来处理的,当我们初始化区块链时,它也创建了 Genesis 区块。
探索 Blockchain
现在,我们在区块链中有 2 个区块,首先是在前面的步骤中创建的 Genesis 块和其他数据,其中包含 hello blockchain数据。
使用以下命令列出区块链中的所有块:
[BlockShell] $ allblocks
这会列出了所有区块的哈希值。输出:
338a2d1ac1b8135283ae19a304b2b426b69b9caba7ef462f246fc577a0297230
000eea381e45c9f6c1c330cf991b5b1e7d15f739da3894b703e412881b2c2edd
查看区块数据
让我们来看看每个块里面的内容,可以使用 Blockshell 的getblock命令。
这里338a2d1ac1b8135283ae19a304b2b426b69b9caba7ef462f246fc577a0297230 是 Genesis 块,让我们来看看:
[BlockShell] $ getblock 338a2d1ac1b8135283ae19a304b2b426b69b9caba7ef462f246fc577a0297230
启动 Blockshell Web
Blockshell 内置了区块链 Web 浏览器,可以使用浏览器搜索区块链中的区块和数据。
打开一个新终端,进入克隆的 Blockshell 目录并运行python web.py 脚本。
python web.py
在浏览器中访问 127.0.0.1:5000。 一些非常有用的 VSCode 扩展在浏览器中访问 127.0.0.1:5000。
领取专属 10元无门槛券
私享最新 技术干货