• 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区块结构

  • 相关阅读:
    tomcat部署web应用的4种方法
    Spring连接数据库的几种常用的方式
    Spring 的两个配置容器的讲解
    c3p0详细配置
    tomcat启动很慢的原因
    J2EE程序员应该要掌握的linux知识
    hibernate-mapping的各种属性配置
    在Eclipse添加Android兼容包( v4、v7 appcompat )
    微信抢红包软件-android
    Gradle sync failed: Failed to find Build Tools revision 26.0.2的解决办法
  • 原文地址:https://www.cnblogs.com/maobuji/p/7121500.html
Copyright © 2020-2023  润新知