区块链知识点及实战演练
2023-11-14 14:49:02 0 举报
AI智能生成
登录查看完整内容
区块链知识点基础知识和hyperledger-fabric超级账本代码实战
作者其他创作
大纲/内容
区块链是一个共享的、不可篡改的账本,旨在促进业务网络中的交易记录和资产跟踪流程。 资产可以是有形的(如房屋、汽车、现金、土地),也可以是无形的(如知识产权、专利、版权、品牌)。几乎任何有价值的东西都可以在区块链网络上跟踪和交易,从而降低各方面的风险和成本。
定义
一种特殊的分布式数据库
本质
生成时间实际数据(即区块体)的哈希上一个区块的哈希...
记录当前区块的特征值
区块头(Head)
实际数据
区块体(Body)
由一个个区块连接组成
组成
区块链中的去中心化是指将控制权和决策权从中心化实体(个人、组织或团体)转让给分布式网络。去中心化区块链网络使用透明度来减少对参与者之间取得信任的需要。这些网络还以削弱网络功能性的方式,阻止参与者彼此施加权力或控制。
去中心化
Hash = SHA256( 区块头 )
不可变性
区块链系统将建立关于参与者就记录交易达成共识的规则。仅当网络中的大部分参与者都同意时,才能记录新交易。
共识
匿名性
开放性
区块链特点
P2P网络
非对称加密
加密算法
数字签名
共识算法
交易回溯
默克尔树(Merkle tree)
技术点
分布式分类账本
智能合约
公钥加密
主要组件
1. 对数据进行验证,保证数据的正确性。
2. 通过共识机制筛选出一个节点来向链上写入数据。
作用
PoW是是首个共识算法在PoW的工作方式中,区块链参与者(称为“矿工”)要在区块链中添加一块交易,必须解决某种“复杂但是无用”的计算问题。
解释
工作量证明最核心的技术原理是散列函数(哈希)。在比特币中,PoW工作其实就是如何去计算一个区块的目标哈希值问题,让用户进行大量的穷举运算,同时得出这个哈希值还必须满足一些必要条件,这个条件在区块链中其实就是一个难度系数值,通过计算出的哈希值是否符合前面N位全是0,最终达成工作量证明。
技术原理
有竞争共识
类型
自2009年以来得到了广泛测试,目前依然得到广泛的使用。
优点
速度慢。耗能巨大,对环境不好。易受“规模经济”(economies of scale)的影响。
不足
Bitcoin、Ethereum、LiteCoin、Dogecoin
应用
工作量证明(POW)
类似于财产储存在银行,这种模式会根据你持有数字货币的量和时间,分配给你相应的利息。
每个旷工都有出块(即挖矿)的权力,只要出块成功,就有系统给出的奖励,这里不需要通过复杂的计算来挖矿,问题只在于谁来出块,股权越大,出块的概率就越大,反之,则相反。POS有很多变种,股权可以是持有币的数量,或者支付的数量等等。
节能、攻击者代价更大、不易受“规模经济”的影响。
“无利害关系“(Nothing at stake)”攻击问题。
Ethereum、Peercoin、Nxt。
权益证明(POS)
在 DPoS 系统中,权益持有者可以选举领导者(或称为见证人,Witness)。经权益持有者授权,这些领导者可进行投票。该机制使得 DPoS 要快于正常的 PoS。
假设n为21,竞选的节点有几百个,持币人对这些节点进行投票,选出票数最多的21位,由这21位轮流来出块。
协同型共识
节能、快速、高流量博客网站Steemit就使用了它。EOS 的块时间是 0.5 秒。
略为中心化、拥有高权益的参与者可投票使自己成为一名验证者。这是近期已在 EOS 中出现的问题。
BitShares、Steemit、EOS、Lisk、Ark。
权威证明(POA)
分类
共识机制
应用层
合约层
激励层
共识层
网络层和数据层
参考
分层
多人同时向区块链写入数据
形成原因
新节点总是采用最长的那条区块链(先达到6个新区块)
采用分叉规则
区块链的分叉
公链的去中心化程度高,是一种公开、透明的区块链,区块链上的信息对任何人都可见,任何人都可以在链上发起交易,任何人都可以按共识接入区块链。
以太坊
代表
共有区块链网络
私链是一种不公开、只有被授权的节点才可以参与并查看数据的私有区块链,也称为许可链(permissioned blockchain)
数字魔法
私有区块链网络
联盟链由多个组织共同拥有,由联盟内成员节点共同维护,节点通过授权后才能加入联盟网络。
超级账本
组织、联盟
适用
联盟区块链网络
区块链网络类型
Hyperledger Fabric
Corda
Quorum
区块链协议
Go
C++
Java
常用开发语言
不存在所有成员都信任的管理当局
写入的数据不要求实时使用
适用场景
食品供应溯源
供应链
医疗保健
税务部门推出区块链电子发票“税链”平台
政府
京东-智臻链
零售
保险
数字人民币(E-CNY)
金融服务
NFT
游戏
应用行业领域
区块链去中心化控制,而不会破坏现有数据中的信任。这在其他数据库系统中是不可能实现的。
参与交易的公司无法共享其整个数据库。但在区块链网络中,每家公司都拥有其分类账副本,并且该系统将自动维护两份分类账之间的一致性。
虽然在大多数数据库系统中,您都可以编辑或删除数据,但在区块链中,您只能插入数据。
数据库与区块链之间有什么区别?
区块链即服务 (BaaS) 是第三方在云上提供的一种托管式区块链服务。您可以开发区块链应用程序和数字服务,而云提供商则提供基础设施和区块链构建工具。您要做的就是自定义现有区块链技术,以便更快捷、更高效地采用区块链。
什么是区块链即服务(BaaS)?
Q&A
Git 客户端
Golang 1.17.5以上版本
Docker 18.03以上版本
docker-compose
jq
curl较新版
1. 环境准备
docker -v
go version
2. 环境检查
3.1 Fabirc源码安装
3.2 启动test-network测试网络
3.3 测试网络使用
3.4 使用认证机构创建网络
vim /etc/profile
使用样例代码gradle构建(建议使用样例代码构建 样例代码位置 ../asset-transfer-basic/chaincode-java-gradle/)
3.5 自定义智能合约
3.6.1 克隆Java客户端代码
创建目录 crypto-config 把 orderer 和 peer 节点的证书文件复制进来。证书文件从 fabric-samples 的 test-network 目录中复制 ordererOrganizations 与 peerOrganizations 文件夹
创建网络配置
springboot配置
合约配置
合约调用
3.6 Java区块链应用代码
3. 安装
hyperledger-fabric超级账本实战(Java)
区块链
0 条评论
回复 删除
下一页