参考:fabric实战
执行过程:
1.客户端或sdk调用api把调用请求发送到所有的背书节点
2.背书节点模拟交易执行,看看有没有问题,没有问题就给调用的客户端或sdk返回读写集,并对其签名。
3.sdk收到足够的签名(背书)后,把读写集/交易发给排序节点,排序节点进行排序后继续转发给所有记账节点(包括之前的背书节点,从记账节点之中选出几个作为背书节点)。需要说明的是排序节点为防止单点掉线,也是多个节点组成,他们有共识机制保持同步,比如kafca机制。
4.所有节点对交易进行验证,验证通过后记账,也就是修改状态。

为什么需要区块链?
假设我有100万的偿还能力,现在我去贷款公司A贷款100万,银行A进行调查后发现我的财产、公司、地产等相关信息后,得出我有100万的偿还能力,于是就把100万贷给了我。接着我又去贷款公司B贷款100万,贷款公司B调查得出我有100万的偿还能力,于是把100万贷给了我。然后我又去贷款公司C…。最后我无力偿还选择跑路,贷款公司A、B、C吃了大亏。这是因为ABC之间的信息不流通,或者对流通的数据互相不信任。这也是篇p2p公司暴雷的原因。因此ABC之间需要建立区块链解决这个痛点,每个公司设立一个或者多个节点,组成联盟链。
搭建区块链的需求:

  1. 多个企业之间共同参与某个项目。
  2. 企业或者部门之间需要共享数据。
  3. 他们互不信任对方。
  4. 交易记录需要溯源。

如何使用:
1.下载docker
2.下载链码
3.下载sdk包调用链码
4.编写智能合约,智能合约至少要实现两个函数,Init函数和Invoke函数,Init函数是发布合约时的初始化函数,类似于以太坊的构造函数,Invoke函数是调用其它方法的函数,比如写了一个合约方法A,需要通过调用Invoke方法去调用A,也就是把A的函数名、参数作为Invoke函数的参数。

运行时需要配置:
配置节点信息,有多少个节点,谁时排序节点,谁是记账节点,每个节点的域名、端口。
配置组织信息,组织的公私钥存储位置,它有哪些节点。

问题:

  1. 为什么要模拟执行?
  2. 读写集是什么东西?
  3. 如何发布合约?
  4. 有个ca服务,进入联盟的节点或者说企业需要调用ca的服务得到它的签名,ca具体是如何运作的。由谁来决定是否给与签名。

fabric 简单理解相关推荐

  1. android 点击事件消费,Android View事件分发和消费源码简单理解

    Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...

  2. 【转载】Deep learning:十九(RBM简单理解)

    Deep learning:十九(RBM简单理解) 这篇博客主要用来简单介绍下RBM网络,因为deep learning中的一个重要网络结构DBN就可以由RBM网络叠加而成,所以对RBM的理解有利于我 ...

  3. 学习:双机热备、集群、负载均衡、SQL故障转移群集简单理解(转)

    双机热备.集群.负载均衡.SQL故障转移群集简单理解平常,大家常提到几个技术名词:双机热备.集群.负载均衡.SQL故障转移群集.这里,就我的理解,和大家简单探讨下,有不足或错误之处还请各位指出! 这些 ...

  4. 字符串匹配算法Java_如何简单理解字符串匹配算法?

    这篇文章来说说如何简单理解KMP,BM算法.之前看过一些文章说,KMP算法很难理解. 可我并不觉得. 我反而觉得它容易理解.平时我们写java代码的时候, 判断一个字符串是否存在包含另一个字符串都是直 ...

  5. python yield的简单理解

    2019独角兽企业重金招聘Python工程师标准>>> yield是个生成器,它可以使一个方法变成可迭代的方法,每次迭代返回yield后面的值 简单理解: >>>d ...

  6. linun——SElinux的简单理解

    SElinux简单理解 一.什么是SElinux? SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Co ...

  7. git pull 是到工作区还是暂存区_每天一Git之简单理解工作区和暂存区

    每天一Git之简单理解工作区和暂存区 1. 工作区与暂存区命令初体验 1.1. 暂存区文件与文件夹管理 [root@number ~]# cd GitDir/git_learning/ [root@n ...

  8. c语言理解参数,c语言中对可变参数列表的简单理解

    函数原型中一般情况下参数的数目是固定的,但是如果想在不同的时候接收不定数目的参数时该怎么办呢?c语言提供了可变参数列表来实现. 可变参数列表是通过宏来实现的,这些宏定义在stdarg.h的头文件中.头 ...

  9. QGraphicsScene 的简单理解--关于手册的简要翻译

    文章目录 QGraphicsScene 的简单理解--关于手册的简要翻译 简介: 一般操作: 关于scene's bounding rect: the location of items. scene ...

最新文章

  1. 程序员请收好:10个非常有用的 Visual Studio Code 插件!
  2. 采用矩阵+深度优先算法解决迷宫问题
  3. PHP下载功能的实现和获得当前目录
  4. jmeter使用问题——将接口返回变量存储成csv文件
  5. 关于linux系统下文件压缩归档操作命令略提
  6. 这21个不太好搜索其含义的特殊符号你都知道吗?
  7. centos安装python3小白_centos7安装python3
  8. Windows Server2019 安装教程
  9. 泛函分析(空间部分)知识点总结
  10. ceph 部署后rbd块设备读写只有10M左右,慢的更龟速一样,怎样解决!,求各位博友指点……,感激不尽……...
  11. 《创业基础》创新创业章节测试【3-8】
  12. Java 下载Excel打不开是什么鬼
  13. PDF图片怎么提取?看完这篇你就会了
  14. 【办公】关于←(Backspace)退格键和Delete键盘的区别
  15. php rn 返回,rn滑动返回页面监听 - osc_13a0punx的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. 图说应用软件开发的 12 要素
  17. 3.7 pipeline syntax 7
  18. MySQL读写分离方案之 MySQL 一主多从
  19. java web图书借阅系统
  20. 河源云浮环境监测实验室工作区设计

热门文章

  1. C# cs文件表头模版
  2. 想爱容易,相处难:当ASP.NET MVC爱上IoC
  3. RedHat 5.4 RHCE DHCP学习笔记
  4. 【指标统计】删除失败遥控
  5. linux安装jdk和tomcat命令
  6. Android攻城狮ListView
  7. TCP/IP协议三次握手流程
  8. HTC One 802w(联通双卡版本)刷机过程(只是记录大概的过程,网上已经有各步骤的详细过程)...
  9. SQLServer中char、varchar、nchar、nvarchar的区别:
  10. js 层随着滚动条上下移动