专栏首页m0w3n从零构建以太坊(Ethereum)智能合约到项目实战——学习笔记2

从零构建以太坊(Ethereum)智能合约到项目实战——学习笔记2

P5 、1-会说话的PPT,从开发者角度快速理解区块链

一、什么是区块链?

区块链(Block Chain):

a、是一种 分布式资料库

攻击成本高,超过节点数51%才可以修改数据,即少数服从多数原则

b、最初是广泛使用在 比特币(Bitcoin)

c、维护一份连续不断 的交易记录档,通过计算算出自己的余额

d、每一笔资料被称为一个 区块(Block)

e、每一个区块可以包含 一笔以上的交易

demo网址:https://anders.com/blockchain/block.html

Block:1(区块号)

Nonce:满足计算难度的值

Data:

Hash:包括 Block、Nonce、Data 的数据hash值

挖矿:就是计算出Nonce值的过程

难度4表示hash前面为0000(4个0)

f、每个区块都会与另一个区块 产生连接(Linking)

g、每个区块都会包含 上个区块的hash值

demo网址:https://anders.com/blockchain/hash.html

h、所有被连接在一起的区块被称为 链(Chain)

i、就是 由多个区块组成的链

二、区块链如何运作?

区块链

a、产生区块的过程会经过 复杂的密码学运算(Cryptography)

b、复杂的密码学运算可杜绝 记录篡改与修订

c、每个区块在成功产生之后 是无法修改的

d、产生区块的过程又称为 挖矿(Mining)

e、负责产生区块的人又称为 矿工(Miner)

f、负责产生区块的机器又称为 挖矿机

g、每一笔资料都可以通过连接找出 所有可靠的历史资料(溯源性)

h、由于是分布式数据库,所以 具有去(中心化)特性

i、(去中心化)意味着 资料会分布到多个节点

j、所有的节点会共同维护 整个分布式数据库

k、共同维护整份资料库意味着 没人可以说自己的区块才是合法有效的区块

l、共同维护整份资料库意味着 多数人验证后过的区块才是合法有效的区块

m、共同维护整份资料库意味着 超过50%的节点验证过的区块才是合法有效的区块

n、每个节点 必须存储所有区块(但有新的设计可让节点仅存储部分区块)

o、每一个节点都可以 协助验证区块的有效性

p、任何一笔资料被篡改 都将破坏区块的完整性

q、任何一笔资料被篡改的几率 微乎其微

r、由于是分布式数据库,所以 具有去(中心化)特性

s、的写作包含两种物件类型 (交易)与(区块)

t、解说情景 数字货币

u、交易物件就是 转账过程的完整内容

v、(区块物件)包含 一系列交易的集合

demo网址:https://anders.com/blockchain/blockchain.html

每个区块修改之后,往后所有的区块都需要重新挖矿!

分布式区块链demo网址:https://anders.com/blockchain/distributed.html

P6 、2-挖矿算法

demo网站:www.blockchaindemo.io

终端环境为:ubuntu 16.04 ,已经安装好了npm

(PS:如果还没安装,执行: apt-get install npm 安装就行!

安装完,查看版本: npm -v

版本为:3.5.2  )

打开终端,输入

npm install blockchain-cli -g

  安装有点慢,

安装出错了!

node_modules安装问题,执行以下:

rm -rf node_modules
rm package-lock.json
npm cache clear --force
npm install

终端输入:

blockchain

区块(block)长什么样子?

在 blockchain -> 后面输入 blockchain 或者 bc 查看创世区块结构。

blockchain -> bc
  • Index(Block #):第几个区块?(创世区块链的索引为0)
  • Hash:当前区块的hash值
  • Previous Hash:上一个区块的hash值
  • Timestamp:当前区块创建时的时间戳
  • Data:存储在当前区块上的交易信息
  • Nonce:在找到有效区块之前,我们经历的迭代次数

挖矿:

blockchain -> mine test
blockchain -> 区块链部落

 Hash值是怎么计算的?

Hash值是一个  十六进制  固定长度为 64位 的唯一的标识。

hash值是由 index,previous block hash,timestamp,block date 和 nonce 作为输入数据计算而得。

CryptoJS.SHA256(index+previousHash+timestamp+data+nonce)

你是否注意到哈希中的四个前导0?

四个前导0是有效散列的最低要求。所需的前导0 的数量称为 难度。

下面的方法验证hash难度是否有效。

function isValidHashDifficulty(hash,difficulty){
      for(var i =0,b=hash.length; i<b; i++){
            if(hash[i] !== '0'){
                 break;
            }
      }
      return i>=difficulty;
}

这就是我们所熟知的工作量证明系统-Proof-of-work system。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 以太坊构建本地私有网络

        调节内存缓存(单位是M),默认是16M,可以根据自己计算机的情况,适当调大这个值,如256, 512, 1024 (1GB), 或 2048 (2GB)

    墨文
  • 分治法的经典问题——大整数相乘

           分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一...

    墨文
  • 从零构建以太坊(Ethereum)智能合约到项目实战——第20章 搭建自己的私有链网络

    使用此博文进行安装配置:https://blog.csdn.net/w88193363/article/details/79402074

    墨文
  • 关于区块链革命你必须知道的事实

    世界的技术发展正在以令人惊叹的速度进行着,也正在掀起新一波浪潮。世界的发展依赖于每时每刻发生着的不同类型的交易,这些交易也影响着企业、不同实体以及每个普通人。直...

    都林
  • 共识·共建,协同推动产业区块链发展

    ​6月1日,在腾讯云大学大咖分享直播间,腾讯云召开“产业区块链联盟暨课堂发布会”,宣布发起成立产业区块链联盟,并计划在一年之内面向相关企业、行业协会、行业媒体、...

    云大学小编
  • BFC首席运营官吕兆发谈区块链的未来发展

    现如今,区块链的热潮席卷了各行各业,成为当下最热门也是最受瞩目的信息技术之一,未来区块链的如何发展?BFC首席运营官吕兆发先生做出来自己的分析:

    嘻哈小哆啦
  • 人人都在谈的区块链,真的人人都能懂吗?

    区块链技术不是一项横空出世的新技术,它是站在巨人的肩膀上不断演进的。区块链的重要组成技术源于1985年发明的椭圆曲线加密算法,1995年密码学家提出“智能合约”...

    腾小云
  • 聚焦五大场景,腾讯安全推出“可信城市”区块链解决方案

    随着区块链被正式纳入“新基建”范畴,作为数字经济时代新型基础设施的区块链,正在迎来新机遇。腾讯率先提出了产业区块链的构想与思考,致力于发展区块链技术自主创新,助...

    腾讯安全
  • 海南、成都同日发布政策支持“数字资产交易中心”建设,区块链融资超1.94亿人民币

    交通运输部:推动区块链技术在公路工程信息管理等方面的应用;工信部:推动区块链和边缘计算等前沿技术的部署和融合;中国人社部发布《关于对拟发布新职业信息进行公示的公...

    用户7358413
  • 大航海时代,区块链的新大陆正在被发现

    区块链市场正在经历一场前所未有的变革:告别早期的狂热,开始回归到更加实际的落地阶段。越来越多的区块链应用开始出现,越来越多的区块链技术开始更新,越来越多的区块链...

    孟永辉

扫码关注云+社区

领取腾讯云代金券