区块链测试 区块链 1.0 是什么?

在路上 · 2018年08月02日 · 最后由 在路上 回复于 2018年10月17日 · 6002 次阅读
本帖已被设为精华帖!

1.前言

最近因为工作需要,后期会做区块链相关的底层测试。
而且随着 2017 年比特币的爆发式升值,也引起了大家对于区块链的关注。
随着不断的了解发现,区块链技术,并没有特殊创新的技术,而是有机组合了已有领域的已有成果,所以,了解区块链,重要的是从思路上理解它的运行机制和理念。

备注:写此文章,主要是为了记录所学当做笔记,肯定会有理解错误的内容,请大家多多指正。
感觉自己写的好差,有时间的可以多看看
阮大师的区块链科普文章http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html
从概念到底层技术架构:http://www.8btc.com/ebook-blockchain
官方学习资料:https://github.com/chaozh/awesome-blockchain-cn

2.什么是区块链?

用一句话说,区块链就是首个自带对账功能的数字记账技术实现。(其实就是一个分布式存储系统)

区块链的基本概念包括:

  • 交易 (Transaction):一次成功的交易,会导致账本状态的一次改变,如添加一条记录;
  • 区块 (Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识;
  • 链 (Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录

2.1 区块链分类

根据参与者的不同,可以分为公开 (Public) 链、联盟 (Consortium) 链、私有 (Private) 链。

  • 公开链:任何人都可以参与和维护,典型的比如比特币区块链,信息是完全公开的。
  • 引入许可机制,包括私有链和联盟链:
    • 私有链:集中管理者进行限制,只能得到内部少数人可以使用,信息不公开。
    • 联盟链:由若干组织一起合作维护一条区块链,该区块链的使用必须是有权限的管理,相关信息会得到保护,典型如银联组织。

3. 区块链工作原理 (以比特币为例)

在进行更深入的了解之前,先来大体了解一下区块链的运行过程,如下图所示:

从宏观到微观,区块链是由一个一个的区块组成的,每个区块又包含多笔交易信息,每笔交易又是由客户端发起的。
(1)合法的未确认交易是如何形成的?
      节点 1 所做的事情就是一笔合法的未确认交易的形成过程。客户端发起交易信息到网络中,网络中的节点收到交易信息后,会进行如下检查:

  • 交易是否已经处理过;
  • 交易是否合法。包括地址是否合法、发起交易者是输入地址的合法拥有者、是否是 UTXO;
  • 交易的输入之和是否大于输出之和。

检查都通过,则将交易标记为合法的未确认交易,并在网络内进行广播;

一笔完整的交易包含内容如下图所示:

(2)交易又是怎么变成区块的呢?
      请看节点 2 所做的事情。节点将 10 分钟之内获取到的交易信息 (长度需要控制,每个区块不大于 1MB),打包生成 Merkle 树根的 hash 值,节点暴力尝试计算出 Nonce 串,然后加上其他信息,生成候选区块。然后判断候选区块头的 hash 值是否满足一定条件 (小于某个值),如果满足,就进行全网广播,候选区块变成了提案区块。
一个完整的区块数据结构如下图所示:

(3)区块如何上链?交易如何被最终确认?
      请看节点 3 所做的事情。节点从网络中收到 提案区块后,对提案区块头的 hash 进行验证,如果符合条件,提案区块成为合法区块,添加到链上。然后再等待 6 个块的可信确认后,交易最终被确认,交易生效。

4. 区块链基础架构模型


首先先来简单的一层一层进行了解:

  • 数据层:数据层其实从数据结构的角度看待,会更加有效。如下图所示: 内容太多,未完待续
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 16 条回复 时间 点赞
恒温 将本帖设为了精华贴 08月02日 17:08

期待系列文章~

恒温 回复

那需要飞哥那样的意志力,挺难的,哈哈

大海 回复

🙏 🙏 🙏

关注一波

加油~啊 给你赞

厉害了

白纸 回复

谢谢老白

江乡萌蘖 回复

谢谢

maclee 回复

谢谢支持

https://github.com/chaozh/awesome-blockchain-cn
这里更全一些,之前那人发的应该是照这个搬的...

https://dappradar.com/
区块链应用

http://book.8btc.com/books/1/master_bitcoin/_book/
比特币

Henry 回复

真相了,谢谢,抄别人的东西,竟然不署名来源,好吧,我更新一下链接

测试怎么入手呢~

Wayyt 回复

我能说,还没开始测试,项目就被撤了吗?

simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 14:44
simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册