zoukankan      html  css  js  c++  java
  • corda

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

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

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

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

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

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

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

  • 相关阅读:
    一分钟应对勒索病毒WannaCry
    你不知道网络安全有多严峻
    MongoDB 文章目录
    SQL Server 文章目录
    MySQL 文章目录
    领域驱动(DD)目录
    Oracle基本教程
    系统架构研究目录
    设计原则目录
    开源项目学习历程
  • 原文地址:https://www.cnblogs.com/friends-wf/p/8284705.html
Copyright © 2011-2022 走看看