讲师介绍:
冯翔:区块链兄弟创始人、高级系统架构师
区块链概念
数字货币认识
- 比特币:通缩的,总量有限的2100万个,存放方式SHA码
- 以太坊:通涨的,实现智能合约。
- 比特币交易:BTC.COM
区块链三个维度
- 技术纬度
- 金融维度
- 社会维度
区块链解决的问题
- 去中心化(多中心化)
- 信任
- 安全
- 可溯源
区块链分类
- 公链
- 联盟链
- 私链有
区块链密码学
- SHA256
- 数字签名
- PKI
- 加密解密:椭圆曲线密码算法
- 同态加密
- 零知识证明(zk-SNARK)
区块链数据算法
- POW
- POS
- DPOS
- POA
区块链经典应用
- 比特币:底层为区块链
- 以太坊:区块链+智能合约
- 超级账本: Hyperledger及Fabric
- EOS
- Byteball
区块链方法论
- 出路理论:让没有量化和交换途径的价值提供量化 的方法和交换路径
- 二元理论:任何区块链平台都是价值创造和传值转移的网络
Hyperledger及Fabric
- Hyperledger:是一个旨在推动区块链跨行业应用的开源项目,由Linux基金会发起
- Fabric:Hyperledger Fabric是一个许可的区块链构架(permissioned blockchain infrastructure)。其由IBM和Digital Asset最初贡献给Hyperledger项目。它提供一个模块化的构架,把架构中的节点、智能合约的执行以及可配置的共识和成员服务。即超级账本。是一个联盟链,解决不同组织之间的信息交换与共享。
智能合约
Fabric的智能合约称为链码(chaincode),分为系统链码和用户链码。系统链码用来实现系统层面的功能,用户链码实现用户的应用功能。智能合约的主要特点如下:
1)由Go语言编写的,最终在Java等其他编程语言中实现了指定的接口。
2)运行在一个背书peer进程独立且安全的Docker容器中。
3)与Fabric网络交互的唯一渠道。
4)生成Transaction的唯一来源(Transactions -> 区块 -> 账本)。
5)智能合约通过应用程序提交事务初始化和管理账本状态。
Fabric中智能合约Chaincode
背书策略Endorse:背书策略用于指示区块链节点交易验证的规则。
作为交易验证流程的一部分,当背书节点收到一个交易请求的时候, 该节点会调用 VSCC (验证用途的系统合约程序)并与执行交易的合约相关联。为了确定交易的有效性,一个交易应该包含来自尽可能多的背书节点的一个或多个背书1
peer chaincode instantiate -o orderer.qklszzn.com:7050 -C mytestchannel -n fb14_cc_study_26 -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "And ('Org1MSP.member','Org2MSP.member')"
逻辑节点:
Orderer:命令节点
Committer Peer: 提交节点
Leader Peer:接收orderer主链的区块,对内进行广播
Endorse Peer: 交易验证节点
Anchor Peer:锚节点,对外暴露的http服务
智能合约与节点的交互流程
1)客户端请求背书节点peer后,节点会通过发送一个链码消息对象(带输入信息,调用者信息)给对应的链码。
2)链码调用ChaincodeBase(基类)里面的invoke方法,通过发送获取数据(getState)和写入数据(putState)消息,向背书节点peer获取账本状态信息和发送预提交状态。
3)链码发送最终输出结果给背书节点peer,节点对输入和输出进行背书签名,完成第一段签名提交。
4)之后客户端收集所有背书节点peer的第一段提交信息,组装事务(transaction)并签名,发送事务到orderer节点进行排序,最终在orderer节点产生区块,并发送到各个peer节点,把输入和输出落到账本上,完成第二段提交过程。
Fabric的功能模块
模块名称 | 功能 |
---|---|
peer | 主节点模块,负责存储区块链数据,运行维护链码 |
orderer | 交易打包、排序模块 |
cryptogen | 组织和证书生成模块 |
configtxgen | 区块和交易生成模块 |
configtxlator | 区块和交易解析模块 |
Fabric架构设计与开发流程
- 架构考虑点——前提:个人觉得这点很重要,区块链肯定不是万能的,能解决的业务场景应该至少有这两个点才能发挥区块链真正的价值与威力。
- 信任冲突点
- 价值共同点
- Fabric架构中组织的规划
- 确认组织
- 组织的管理方式
- Fabric系统的结构
- Fabric系统的逻辑结构:术语、专用词汇表、关键词列表、组织清单、结构图
- Fabric系统的物理结构
- Fabric中Chnanle的设计
- Chaincode
- 数据访问层
- 历史遗留系统的兼容
- Fabric系统的维护和管理
Fabric开发速成十二步法
相关资源:
比特币交易:btc.com
比特币本机编译运行:https://www.jianshu.com/p/9ce61087c9b5
Fabric源代码:https://github.com/hyperledger/fabric
超级账本Fabric部署和使用指南:https://www.blockchainbrother.com/article/236