corda
账本:
corda 从每个节点的视角看待账本都是不一样的。并不是所有节点有所有账本信息的。
valut视为SQL数据库,只保存 两两节点之间的数据库
状态:
状态是不变的对象,代表共享的事实,比如特定时间的协议、合约
要想改变状态,将旧值的事实标记为历史的,复制旧值并改变一些属性
共享事实或协议随时间的生命周期由状态序列来表示
vault(SQL数据库) 追踪每个状态序列的头部
从每个peer的视角看,分类账本包含在vault中追踪的所有状态序列头(或非历史的) 状态
若想得到当前分类账本状态(设计到不同 类型协议),只需拿出所有状态头或所有未消费的状态都拿出来,就可通过分类账获得与你交易的所有对手方的完整视图。
交易:
交易原子性 事务性
未提交的交易是更新账本的请求
交易由数字签名,所以强制它输出状态不可变
交易请求需要验证 这与 交易创建 相对独立的进行
任何人都可以发起交易请求, 然后 与该交易有关的人都验证(通过合约代码进行)并签字了之后, 还有公证服务签字 才能成功提交写库,输入状态标记为历史的,产生新的输出状态了。
合约:
合约代码是特定环境下纯粹的可执行的函数,基于 need-to-know(需要知道所需的) 验证交易,并且确定它们是否是分类账的有效更新
法律文书
法律文书被合约引用, 当合约代码不足时,可以依赖
命令
命令随交易出现,并表明意图,并通过列出的公钥指定所需的签名者
时间戳
时间戳权威机构由公证服务提供 提供可信的时间 验证
时间戳断定 交易发生在特定的时间窗口中,并不是一个点
流程 flow
阻塞方式编写的代码不能停止和重启,采用 checkpoint。
因为流程一步步的, 酷似 nodejs中的回调地狱反人类设计,corda中采用 checkpoint ,做了某些流程之后,将先前的操作持久化到磁盘上,此时 宕机的话 从 最近的checkpoint 重新开始发起即可。
使用一些已经签名的子流程,可以避免重复造轮子。
流程是轻量级的进程(纤程 (协程)而不是线程,用户模式运行的轻量级线程),用于协调复杂、多步骤, 多节点之间需要互动所需的节点才能就共享的事实达成共识
corda的更多相关文章
- Hyperledger Fabric、Corda和以太坊对比
Hyperledger Fabric . Corda 和以太坊的对比 三种不同的框架 我们从 Hyperledger Fabric.R3 Corda和以太坊的白皮书中可以看到,三种框架在可能的应用领 ...
- 以太坊、Hyperledger Fabric和Corda,哪个更好?
原创: Philipp Sandner 区块链前哨 昨天 编译|盖磊编辑|前哨小兵甲区块链前哨导语: 我们分析了 Hyperledger Fabric,R3 Corda 和以太坊这三种分布式账本技术间 ...
- Hyperledger中数据存取的实现
简介 本文介绍了在Hyperledger中数据存取的实现. API接口 Hyperledger提供基于key/value的数据存储,其中key是字符串,value则是二进制字节数组,Hyperledg ...
- ThoughtWorks 2017技术雷达
前言: ThoughtWorks人酷爱技术.我们对技术进行构建.研究. 测试.开源.记述,并始终致力于对其进行改进-以求造福 大众.我们的使命是支持卓越软件并掀起IT革命.我们创建 并分享Though ...
- Il laser che è chiaramente visibile
Prima di quel tempo ho ottenuto questo potente puntatore laser 500mW, non so davvero come questo dis ...
- 微软刚发布的区块链去中心化身份识别系统DID
https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653549389&idx=1&sn=158f9feb10d76a ...
- 在Ubuntu中部署并测试HyperLedger Fabric 0.6
最近开始研究区块链,对这个新兴的技术有了基本概念上的了解,所以打算基于一个开源项目做做实验.如果是做数字货币,那么比特币的源代码是最好的了,不过这算是区块链1.0吧,已经有很多改进的竞争币和山寨币出来 ...
- 联盟链初识以及Fabric环境搭建流程
这篇文章首先简单介绍了联盟链是什么,再详细的介绍了Fabric环境搭建的整个流程. 区块链分类: 以参与方式分类,区块链可以分为:公有链.联盟链和私有链. 定义: 我们知道区块链就是一个分布式的,去中 ...
- HyperLedger Fabric 1.4 区块链开发平台(4.1)
目前区块链开发平台分“公有链平台”和“联盟链系统”两类,“公有链平台”主要以以太坊为主的平台,可以在该类平台上进行代币的发行和根据各种模块搭建应用:“联盟链系统”主要以超级账本为主的开源系统,该类开源 ...
随机推荐
- scrapy 手动编写模板
import scrapy class Tzspider(scrapy.Spider): # spider的名字,唯一 name = 'tz' # 初始url列表 start_urls = ['htt ...
- mybatis中union可以用if判断连接,但是<select>中第一个select语句不能被if判断,因此可以从dual表中查询null来凑齐。union如果使用order by排序,那么只能放在最后一个查询语句的位置,并且不能带表名。
<!-- 一址多证纳税人分析表 --> <select id="yzdznsrlistPage" parameterType="page" r ...
- Django模板之通用模板的使用
Django模板之通用模板的使用 转载:https://code.ziqiangxuetang.com/django/django-template.html 我们做网站有一些通用的部分,比如 导航, ...
- Django2.0引入css、js、img文件
Django2.0引入css.js.img文件 一.文件结构 二.settings.py的配置 # Static files (CSS, JavaScript, Images) # https://d ...
- EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型
官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新 ...
- 关于GitHub中文乱码的问题
其实跟Git里中文乱码相比,这个问题好解决得多. GitHub中的乱码是由于其使用的编码与Windows记事本的默认编码不同.只要在本地将编码改成UTF-8,再重新push就可以了. 修改编码的方法是 ...
- Git 基本命令行操作
一.本地仓库操作 1.初始化 git init 2.添加版本控制文件 git add README.md3.本地提交 git commit -m “1st commit”4.配置远程 ...
- 潭州课堂25班:Ph201805201 django 项目 第二十七课 docker简介,配置文件 (课堂笔记)
新闻搜索功能实现 一.docker介绍 1.什么是docker? 使用容器让创建.部署.运行应用程序更简单的一个工具 让应用所需的库和依赖环境打包 有一点点像虚拟机 2.为什么使用docker? 3. ...
- Vue常用V-标签
1.v-once: 只绑定一次 2.v-html <div v-html='name'></div> //会渲染标签 var app = new Vue({ el:'#app' ...
- 备份LeetCode OJ自己编写的代码
常泡LC的朋友知道LC是不提供代码打包下载的,不像一般的OJ,可是我不备份代码就感觉不舒服- 其实我想说的是- 我自己写了抓取个人提交代码的小工具,放在GitCafe上了- 不知道大家有没有兴趣 ht ...