区块链技术实践培训总结


讲师介绍:

冯翔:区块链兄弟创始人、高级系统架构师

区块链概念

数字货币认识

  • 比特币:通缩的,总量有限的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


文章作者: KavenRan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 KavenRan !
 上一篇
Knowage CE 7.0 发布更新 Knowage CE 7.0 发布更新
23 October 2019-14:27 Knowage CE 7.0现在可以下载。从早期版本6.4开始,进行了以下更改: 新的QBE Engine GUI 新文件明细表 新的注册表引擎 标记数据集 SolR数据集的改进 默认角色,A
2020-01-20
下一篇 
kubernets集群配置GlusterFS实践 kubernets集群配置GlusterFS实践
一、GlusterFS是什么 GlusterFS概述 Glusterfs是一个开源的分布式文件系统,是Scale存储的核心,能够处理千数量级的客户端.在传统的解决 方案中Glusterfs能够灵活的结合物理的,虚拟的和云资源去体现高可用和
2019-10-15
  目录