什么是区块链?
从字面上看:区块链是由一个个记录着各种信息的小区块链接起来组成的一个链条,类似于我们将一块块砖头叠起来,而且叠起来后是没办法拆掉的,每个砖头上面还写着各种信息,包括:谁叠的,什么时候叠的,砖头用了什么材质等等,这些信息你也没办法修改。
从计算机上看:区块链是一种比较特殊的分布式数据库。分布式数据库就是将数据信息单独放在每台计算机,且存储的信息的一致的,如果有一两台计算机坏掉了,信息也不会丢失,你还可以在其他计算机上查看到。
区块链是一种分布式的,所以它是没有中心点的,信息存储在所有加入到区块链网络的节点当中,节点的数据是同步的。节点可以是一台服务器,笔记本电脑,手机等。
你要知道的是这些节点的存储的数据都是一模一样。
区块结构
区块包含两个部分:
1、区块头(Head):记录当前区块的元信息
2、区块体(Body):实际数据
课程环境
Windows + Mist + eclipse 等
软件准备
Mist WebStorm 等
课程基础
对html css js等有一个基本的了解
涉及语言
Go Solidity JavaScript等
区块链,顾名思义就是一系列区块(block)组成的链条。每个区块包含区块头和区块体,区块头记录当前区块的元信息:区块生成时间,当前区块的Hash值,上一个区块的Hash值等;区块体存储着实际的数据。
所谓Hash就是将任意长度的输入,通过散列算法,转化成固定长度的输出特征值。区块链的Hash长度是256位,意思就是所有的原始数据都会计算为一个256位的二进制数字。所以,原始数据不同,比特币http://www.gendan5.com/digitalcurrency/btc.html所生成的Hash值必定不同。
对于区块链而言,Hash值由区块头决定,不同的区块对应着不同的Hash值,因此可以用Hash值标记区块。如果区块的内容改变,相应的Hash值也会随之改变。用函数的方式来表示,那就是 Hash = SHA256(Block-Head)。
区块链的数据并不是只存在于一台电脑上的,他的数据是在存在于所有接入区块链网络的电脑上的,每个电脑上的数据都是一样的,因为每当你加入区块链网络,你的电脑就会下载所有区块,如果某人篡改了他的版本,网络就会判断是否可信,它的策略是相信大多数人的版本。
还有一点需要说明,在区块链网络里面,除了数据,所有电脑上运行的程序都是一样的,所有电脑一起执行这套程序。这一点和我们日常生活中所见的大多数应用的机制不同,比如微博,所有的数据和处理程序都是集中在微博的服务器上,而手机 APP、PC 应用、网页等终端的主要功能仅仅是用于与处理服务器进行交互。
来源:oschina
链接:https://my.oschina.net/u/4178038/blog/3155975