导航:首页 > 观区块链 > 区块链ruanyifeng

区块链ruanyifeng

发布时间:2023-01-21 08:52:56

① 漫画图解 什么是区块链

漫画图解:什么是区块链

什么是区块链?
区块链,英文 Blockchain,本质上是一种去中心化的分布式数据库。任何人只要架设自己的服务器,接入区块链网络,都可以成为这个庞大网络的一个节点。
区块链既然本质是数据库,里面究竟存储了什么东西呢?让我们来了解一下区块链的基本单元:区块(Block)。
一个区块分为两大部分:
1.区块头
区块头里面存储着区块的头信息,包含上一个区块的哈希值(PreHash),本区块体的哈希值(Hash),以及时间戳(TimeStamp)等等。
2.区块体
区块体存储着这个区块的详细数据(Data),这个数据包含若干行记录,可以是交易信息,也可以是其他某种信息。
刚才提及的哈希值又是什么意思呢?
想必大家都听说过MD5,MD5就是典型的哈希算法,可以把一串任意长度的明文转化成一串固定长度(128bit)的字符串,这个字符串就是哈希值。
而在我们的区块链中,采用的是一种更为复杂的哈希算法,叫做SHA256。最新的数据信息(比如交易记录)经过一系列复杂的计算,最终会通过这个哈希算法转化成了长度为256bit的哈希值字符串,也就是区块头当中的Hash,格式如下:

区块与Hash是一一对应的,Hash可以当做是区块的唯一标识。
不同的区块之间是如何进行关联的呢?依靠Hash和PreHash来关联。每一个区块的PreHash和前一个区块的Hash值是相等的。
为什么要计算区块的哈希值呢?
既然区块链是一个链状结构,就必然存在链条的头节点(第一个区块)和尾节点(最后一个区块)。一旦有人计算出区块链最新数据信息的哈希值,相当于对最新的交易记录进行打包,新的区块会被创建出来,衔接在区块链的末尾。
新区块头的Hash就是刚刚计算出的哈希值,PreHash等于上一个区块的Hash。区块体的Data存储的是打包前的交易记录,这部分数据信息已经变得不可修改。
这个计算Hash值,创建新区块的过程就叫做挖矿
用于进行海量计算的服务器,叫做矿机
操作计算的工作人员,叫做矿工。
计算哈希值究竟难在哪里?咱们来做一个最粗浅的解释,哈希值计算的公式如下:
Hash = SHA-256(最后一个区块的Hash + 新区块基本信息 + 交易记录信息 + 随机数)
其中,交易记录信息也是一串哈希值,它的计算涉及到一个数据结构 Merkle Tree。有兴趣的小伙伴可以查阅相关资料,我们暂时不做展开介绍。
这里关键的计算难点在于随机数的生成。猥琐的区块链发明者为了增大Hash的计算难度,要求Hash结果的前72bit必须都是0,这个几率实在是太小太小。
由于(最后一个区块的Hash + 新区块基本信息 + 交易记录信息)是固定的,所以能否获得符合要求的Hash,完全取决于随机数的值。挖矿者必须经过海量计算,反复生成随机数进行“撞大运”一般的尝试,才有可能得到正确的Hash,从而挖矿成功。
同时,区块头内还包含着一个动态的难度系数,当全世界的硬件计算能力越来越快的时候,区块链的难度系数也会水涨船高,使得全网平均每10分钟才能产生出一个新区块。
小伙伴们明白挖矿有多么难了吧?需要补充的是,不同的区块链应用在细节上是不同的,这里所描述的挖矿规则是以比特币为例。
区块链的应用

比特币(BitCoin)的概念最初由中本聪于2008年提出,而后根据这一思路设计发布了开源软件以及建构其上的P2P网络。比特币是一种P2P形式的数字货币。点对点的传输意味着一个去中心化的支付系统。
什么是P2P网络呢?
传统的货币都是由中央银行统一发行,所有的个人储蓄也是由银行统一管理,这是典型的中心化系统。
而比特币则是部署在一个全世界众多对等节点组成的去中心化网络之上。每一个节点都有资格对这种数字货币进行记录和发行。
至于比特币底层的数据存储,正是基于了区块链技术。比特币的每一笔交易,都对应了区块体数据中的一行,简单的示意如下:
交易记录的每一行都包含时间戳、交易明细、数字签名。
表格中只是为了方便理解。实际存储的交易明细是匿名的,只会记录支付方和收款方的钱包地址。
至于数字签名呢,可以理解为每一条单笔交易的防伪标识,由非对称加密算法所生成。
接下来说一说比特币矿工的奖励:
比特币协议规定,挖到新区块的矿工将获得奖励,从2008年起是50个比特币,然后每4年减半,目前2018年是12.5个比特币。流通中新增的比特币都是这样诞生的,也难怪大家对挖掘比特币的工作如此趋之若鹜!
区块链的优势和劣势
区块链的优势:
1.去中心化
区块链不依赖于某个中心节点,整个系统的数据由全网所有对等节点共同维护,都可以进行数据的存储和检验。这样一来,除非攻击者黑掉全网半数以上的节点,否则整个系统是不会遭到破坏的。
2.信息不可篡改
区块内的数据是无法被篡改的。一旦数据遭到篡改哪怕一丁点,整个区块对应的哈希值就会随之改变,不再是一个有效的哈希值,后面链接的区块也会随之断裂。
区块链的劣势:
1.过度消耗能源
想要生成一个新的区块,必须要大量服务器资源进行大量无谓的尝试性计算,严重耗费电能。
2.信息的网络延迟
以比特币为例,任何一笔交易数据都需要同步到其他所有节点,同步过程中难免会受到网络传输延迟的影响,带来较长的耗时。
几点补充:
1.本漫画部分内容参考了阮一峰的博文《区块链入门教程》,感谢这位大神的科普。
2.由于篇幅有限,关于Merkle Tree 和 非对称加密 的知识暂时没有展开细讲,有兴趣的小伙伴们可以查阅资料进行更深一步的学习。

② 怎么让自己模块可以实现npm安装 阮一峰

npm install 命令用来安装模块到node_moles目录。

$ npm install <packageName>

安装之前,npm install会先检查,node_moles目录之中是否已经存在指定模块。如果存在,就不再重新安装了,即使远程仓库已经有了一个新版本,也是如此。
如果你希望,一个模块不管是否安装过,npm 都要强制重新安装,可以使用-f或--force参数。

③ 什么是区块链土豆链Potato chain又是什么

关于这个问题,其实建议你去游说社区看一下(网页链接),那里有大佬大V为你解答。这里我为你分享一篇阮一峰老师的文章,应该能对你的问题作出解答。

一、区块链的本质

区块链是什么?一句话,它是一种特殊的分布式数据库。

现在的规则是,新节点总是采用最长的那条区块链。如果区块链有分叉,将看哪个分支在分叉点后面,先达到6个新区块(称为"六次确认")。按照10分钟一个区块计算,一小时就可以确认。

由于新区块的生成速度由计算能力决定,所以这条规则就是说,拥有大多数计算能力的那条分支,就是正宗的区块链。

九、总结

区块链作为无人管理的分布式数据库,从2009年开始已经运行了8年,没有出现大的问题。这证明它是可行的。

但是,为了保证数据的可靠性,区块链也有自己的代价。一是效率,数据写入区块链,最少要等待十分钟,所有节点都同步数据,则需要更多的时间;二是能耗,区块的生成需要矿工进行无数无意义的计算,这是非常耗费能源的。

因此,区块链的适用场景,其实非常有限。

  • 不存在所有成员都信任的管理当局

  • 写入的数据不要求实时使用

  • 挖矿的收益能够弥补本身的成本

  • 如果无法满足上述的条件,那么传统的数据库是更好的解决方案。

    目前,区块链最大的应用场景(可能也是唯一的应用场景),就是以比特币为代表的加密货币。

    ④ Docker 搭建以太坊私有链

    首先需要安装 Docker,Docker 的安装和使用可以参看阮一峰老师的 《Docker 入门教程》 。
    Ethereum 官方是支持 docker 的,可以参看 官方文档 。

    centOS

    其中 -v /home/linshan/works/block-chain/ethereum:/root 是把我们当前的 ethereum 目录,挂到了docker 的 /root 下。
    在 Windows 环境下使用 -v /home/linshan/works/block-chain/ethereum:/root 不能启动容器,原因不明,所以在 Windows 下先不要使用目录挂载。

    各字段具体用途参看 官方文档 。
    Windows
    Windows 不必创建 start-ethereum.sh 文件, genesis.json 也可以在 Docker 容器启动后创建。

    centOS

    Windows

    运行成功后执行

    进入 docker 容器命令行
    因为 Windows 没有挂载共享目录,所以 root 目录下没有 genesis.json 文件,我们要在这里手动创建 genesis.json 文件,内容要和 centOS 的一致。

    data 用来存放区块数据

    geth 的参数参看 以太坊客户端Geth命令用法-参数详解

    启动私有节点后进入 geth 命令行执行:

    输出的内容就是节点信息,我们在手动连接节点是会用到,注意要把“0.0.0.0“换成你自己的IP,然后将这个信息发送给其他节点。手动连接节点有两种方式:

    当然不管使用哪种方法连接节点都要保证创世区块文件 genesis.json 一致,还有在启动时 networkid 也要一致。

    至此以太坊私有链已搭建完毕。

    geth命令

    docker命令

    阅读全文

    与区块链ruanyifeng相关的资料

    热点内容
    上海发数字货币 浏览:424
    注册矿池时为什么老说错误 浏览:598
    相城区数字货币去哪里去申请 浏览:929
    数字货币存在的问题有哪些 浏览:985
    比特币周日有交易吗 浏览:576
    数字货币和纸币有什么不同 浏览:734
    柚子币比特币以太坊的优势 浏览:533
    比特币去向记录 浏览:993
    矿机和比特币的关系 浏览:562
    中国禁的了比特币吗 浏览:337
    比特币抗通胀 浏览:733
    比特币挖矿难度图标 浏览:265
    btcusd涨跌 浏览:391
    比特币什么时候恢复提币 浏览:173
    以太坊eos模式 浏览:2
    比特币每天都可以提收益吗 浏览:55
    btc合约百分百仓位 浏览:425
    会计中虚拟货币 浏览:142
    比特币如何做合约 浏览:351
    比特币相关论文总结 浏览:474