首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

手把手教你挖矿

参考

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。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180203G163R500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券