zoukankan      html  css  js  c++  java
  • fabric读书笔记

    chaincode:一种类似于智能合约的代码,通过执行这个代码与账本交互。chaincode存储在节点上

    transaction:一次chaincode的运行过程

    contract:满足某个条件下,将要运行的transaction

    block ledger:区块账本

          存储于文件系统中。 存储于peer中,部分存储于order中

    state ledger:状态账本

           存储于记账节点中。用户或者账户的状态,可以通过block

    history ledger:历史交易信息。存储与levelDB可替换

            主要是block ledger的索引

    客户端发送请求给背书节点,背书模拟执行交易,整理出要读到哪些key和要写入哪些key。背书节点将处理结果发回给客户端,再通过order排序,然后发送给peer节点写入账本。

    crash faults:因为宕机发生的错误。

    non crash:非宕机造成的错误,恶意的节点,数据错误

    CFT:可以容忍宕机,但不能容忍恶意节点     2F+1  性能好

    BFT: 可以容忍恶意节点,3f+1   性能差

    XFT:   可以容忍恶意节点,2f+1   好于BFT

    分布的节点接受消息的顺序不同,可能造成结果不一致。  例如有100块钱,一个请求要求扣掉60,另一个要求扣掉80. 接收的顺序不同,会造成执行结果的差异。而造成无法进行共识。

    多个节点选一个领袖,领袖来进行排序,保证执行的一致性。

    事务或者执行程序的结果必须是确定的,相同的输入不能有不同的输出,才能保证一致性。(例如处理过程中涉及到了随机数)

    fabirc1.0包含的节点

    peer

    endorsement peer 背书节点(做试运算节点,加快处理速度)

    order 节点排序

    cran提供(QQ:34429255):

    chaincode里面可以查到某个值改变记录的tx_id,一个chaincode的多次写库tx_id是一样的..sdk里面可以根据tx_id查询相关的记录的.

    fabric区块结构

  • 相关阅读:
    ElementUI 之 Message,自动弹出,信息不显示问题
    eslint 对下一行不要校验报错
    <input type="file"> accept属性筛选文件类型
    纯 css 控制隔行变色
    本地启动服务,两个进程分别监听两个端口,导致两个 URL 不同
    tap 事件会触发两次问题
    时间宝贵-----
    有些人,得到和失去,你都会后悔!
    前调清新,中调醇厚,后调悠长。
    office 格式定义
  • 原文地址:https://www.cnblogs.com/maobuji/p/7121500.html
Copyright © 2011-2022 走看看