zoukankan      html  css  js  c++  java
  • corda

    账本:
    corda 从每个节点的视角看待账本都是不一样的。并不是所有节点有所有账本信息的。
    valut视为SQL数据库,只保存 两两节点之间的数据库

    状态:
    状态是不变的对象,代表共享的事实,比如特定时间的协议、合约
    要想改变状态,将旧值的事实标记为历史的,复制旧值并改变一些属性
    共享事实或协议随时间的生命周期由状态序列来表示
    vault(SQL数据库) 追踪每个状态序列的头部
    从每个peer的视角看,分类账本包含在vault中追踪的所有状态序列头(或非历史的) 状态
    若想得到当前分类账本状态(设计到不同 类型协议),只需拿出所有状态头或所有未消费的状态都拿出来,就可通过分类账获得与你交易的所有对手方的完整视图。

    交易:
    交易原子性 事务性
    未提交的交易是更新账本的请求
    交易由数字签名,所以强制它输出状态不可变
    交易请求需要验证 这与 交易创建 相对独立的进行
    任何人都可以发起交易请求, 然后 与该交易有关的人都验证(通过合约代码进行)并签字了之后, 还有公证服务签字 才能成功提交写库,输入状态标记为历史的,产生新的输出状态了。
    合约:
    合约代码是特定环境下纯粹的可执行的函数,基于 need-to-know(需要知道所需的) 验证交易,并且确定它们是否是分类账的有效更新

    法律文书
    法律文书被合约引用, 当合约代码不足时,可以依赖

    命令
    命令随交易出现,并表明意图,并通过列出的公钥指定所需的签名者

    时间戳
    时间戳权威机构由公证服务提供 提供可信的时间 验证
    时间戳断定 交易发生在特定的时间窗口中,并不是一个点

    流程 flow
    阻塞方式编写的代码不能停止和重启,采用 checkpoint。
    因为流程一步步的, 酷似 nodejs中的回调地狱反人类设计,corda中采用 checkpoint ,做了某些流程之后,将先前的操作持久化到磁盘上,此时 宕机的话 从 最近的checkpoint 重新开始发起即可。
    使用一些已经签名的子流程,可以避免重复造轮子。
    流程是轻量级的进程(纤程 (协程)而不是线程,用户模式运行的轻量级线程),用于协调复杂、多步骤, 多节点之间需要互动所需的节点才能就共享的事实达成共识

  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/friends-wf/p/8284705.html
Copyright © 2011-2022 走看看