fabric 简单理解

参考: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,1024程序员节)