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)
目前区块链开发平台分“公有链平台”和“联盟链系统”两类,“公有链平台”主要以以太坊为主的平台,可以在该类平台上进行代币的发行和根据各种模块搭建应用:“联盟链系统”主要以超级账本为主的开源系统,该类开源 ...
随机推荐
- 用greenlet实现协程消费者生产者
代码: from greenlet import greenlet import random def pro(): 生产者 while True: item = random.randint(0,9 ...
- Booksort POJ - 3460 (IDA*)
Description The Leiden University Library has millions of books. When a student wants to borrow a ce ...
- 动态 Web Server 技术发展历程
动态 Web Server 技术发展历程 开始接触 Java Web 方面的技术,此篇文章是以介绍 Web server 相关技术的演变为主来作为了解 Java servlet 的技术背景,目的是更好 ...
- SpringBoot使用Swagger2实现Restful API
很多时候,我们需要创建一个接口项目用来数据调转,其中不包含任何业务逻辑,比如我们公司.这时我们就需要实现一个具有Restful API的接口项目. 本文介绍springboot使用swagger2实现 ...
- LanProxy 内网映射穿透
前言:用过 ngrok 的人都知道,这是一个免费并且简便的内网映射工具,可是现在ngrok不知道弄啥?不能用了,那我们只能去找一些新的工具,下面是我跟我朋友一起弄的(主要是他教我(✪ω✪)),免费的, ...
- 嵌入式单片机STM32应用技术(课本)
目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...
- NOIP复习篇
NOIP复习篇---枚举 --------------------------------------------------------------------------------------- ...
- 向json对象中添加数组
// JSONArray jsonArray = new JSONArray();// for (int i = 0; i < list.size(); i++) {// JSONObject ...
- video设置视频的宽高
一般情况下<video loop="loop" style="width: 100%;height:300px;" controls="cont ...
- JAVA自学笔记21
JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...