建议和反馈

请填写你的反馈内容

什么是CORDAPP区块链及其运作方式

2020-02-26 ·458次阅读 ·读完需要6分钟

在本教程中,我们简要回顾了Corda R3分散式应用程序或DApp。本教程可帮助您充分了解Corda DApp架构,并将其用于使用Corda平台开发未来的区块链应用程序。换句话说,为了在Corda中构建分布式分类帐应用程序,您必须完全遵循并理解本教程。
CorDapps(Corda分布式应用程序)是在Corda平台上运行的分布式应用程序。CorDapp的目标是允许节点就更新分类帐达成协议。他们通过定义Corda节点所有者可以通过RPC调用的流程来实现此目标:
什么是corda r3

CorDapp组件

CorDapps采用一组JAR文件的形式,其中包含用Java和/或Kotlin编写的类定义。
这些类定义通常包括以下元素:

  • 流:为节点定义一个例程以运行,通常用于更新分类帐。他们将FlowLogic子类化

  • 国家:定义达成协议的事实。他们实现ContractState接口

  • 合同,定义什么构成有效的分类账更新。他们实现了Contract接口

  • 服务,在节点内提供长期存在的实用程序。他们将SingletonSerializationToken子类化

  • 序列化白名单,限制您的节点将离线接收的类型。他们实现了SerializationWhitelist接口

但是,CorDapp JAR也可以包含其他类定义。这些可能包括:

  • API和静态Web内容:这些由Corda内置的Web服务器提供。该Web服务器尚未投入生产,应仅用于测试目的

  • 实用程序类

一个例子

假设节点所有者希望其节点能够交易债券。他们可能选择安装具有以下组件的债券交易CorDapp:

  • BondState,用于将债券表示为分类账上的共享事实

  • BondContract,用于管理涉及BondState状态的总帐更新是否有效

  • 三种流程:

    • IssueBondFlow,允许将新的BondState状态发布到分类账上

    • TradeBondFlow,允许在分类帐上买卖现有的BondState状态

    • ExitBondFlow,允许从分类帐中退出现有的BondState状态

安装此CorDapp之后,节点所有者将能够使用CorDapp定义的流程来同意与债券的发行,出售,购买和退出有关的分类帐更新。

编写和构建可在Corda(开源)和Corda Enterprise上运行的应用程序

Corda和Corda Enterprise兼容且可互操作,这意味着您可以编写可在两者上运行的CorDapp。为了使这项工作付诸实践,您应该按照以下步骤操作:

  • 确保根据构造CorDapp设计您的CorDapp,并根据CorDapp分隔进行注释。特别是,将应用程序的共识关键部分(合同,状态及其依赖性)与其余业务逻辑(流程,API等)分开至关重要。前者  -CorDapp内核  -是将附加到创建/使用您的状态的事务的Jar,并且是网络上验证事务的任何节点必须执行的Jar。

注意
了解如何管理CorDapp对第三方库和其他CorDapp的依赖也很重要。

  • 编译 一次此  CorDapp内核 Jar,然后从您的工作流Jar(或Jar-参见下文)中依赖它。重要的是,如果您希望您的应用程序在Corda和Corda Enterprise上都可以运行,则必须针对Corda而不是Corda Enterprise编译此Jar。这是因为,将来我们可能会向Corda Enterprise添加不在Corda中的其他功能,并且您可能会无意中创建在Corda开源上不起作用的CorDapp内核。当然,针对Corda开源进行编译可以避免这种风险,并可以防止您无意间创建了两个不同版本的Jar(具有不同的哈希值),从而破坏了兼容性和互操作性。

注意
从Corda 4开始,建议使用CorDapp Jar签名来利用新的签名约束功能。

  • 您的工作流Jar应该取决于  CorDapp内核  (合同,状态和依赖项)。重要的是,您可以为Corda和Corda Enterprise创建不同的工作流Jar,因为工作流Jar并非共识性关键。例如,当CorDapp在Corda Enterprise上运行时,您可能希望为其添加其他功能(也许它使用受支持的企业数据库之一的高级功能,或者包括高级数据库迁移脚本,或某些其他仅限企业的功能)。

总之,将您的应用程序构造为内核(合同,状态,依赖项)和工作流(其余部分),并确保针对Corda开源编译内核。您可以针对他们所针对的Corda发行版来编译工作流程(Jars)。


评论(0)问答(0)
请先登录或注册

请先登陆或注册

相关推荐

李斌说币:大饼顶部不远了短期注意回调风险

John McAfee再次表示比特币毫无价值 近日,John McAfee回复推特网友评论称,比特币毫无价值。此前1月29日,他也曾于推特表示,比特币是真正的垃圾币。而此前John McAfee却以“......
A-李斌说币 · 2020-04-07
98阅读 · 0赞赏 · 0问答

存储的内容违反当地法律怎么办?揭秘IPFS创始人胡安的“外交辞令”

![](https://www.liankexing.com/Public/Uploads/2020-04-07/5e8c37fd070f3.png) 当你惬意地在抖音、微博刷视频时,有没有遇见自己......
YottaChain · 2020-04-07
93阅读 · 0赞赏 · 0问答

科普| 冷数据在IPFS上可能会丢失?

 首先,我们先对数据进行一个简单的了解,数据分为冷数据、热数据,难道数据也有温度吗?从字面意思来简单的说,热数据就是访问多的数据,门庭若市十分热闹。冷数据就是基本上没什么客人访问,门庭冷落车......
金锄矿业 · 2020-04-07
97阅读 · 0赞赏 · 0问答

玩一分快三彩怎么才能长期盈利-询68183049。

【导師Q:68183049】【邀请码88288889】【网址yf165、c0m】【长久盈利轻松上岸】【顶尖稳定盈利】 希望帮助到大家怎么玩才能赢如何才能回血上岸?如果你是刚刚玩,我来教教你。......
晨小柒 · 2020-04-07
84阅读 · 0赞赏 · 0问答

玩快三彩输了很多,该如何回血上岸-询68183049。

【导師Q:68183049】【邀请码88288889】【网址yf165、c0m】【长久盈利轻松上岸】【顶尖稳定盈利】 希望帮助到大家怎么玩才能赢如何才能回血上岸?如果你是刚刚玩,我来教教你。......
晨小柒 · 2020-04-07
83阅读 · 0赞赏 · 0问答

幸运一分快三有什么快速回血的技巧呢?询68183049

【导師Q:68183049】【邀请码88288889】【网址yf165、c0m】【长久盈利轻松上岸】【顶尖稳定盈利】 希望帮助到大家怎么玩才能赢如何才能回血上岸?如果你是刚刚玩,我来教教你。......
晨小柒 · 2020-04-07
69阅读 · 0赞赏 · 0问答

2268

LK币

21

粉丝

82

笔记

感谢"论坛咸鸟"

这篇精彩的笔记,目前已经帮助

  • 0
  • 0
  • 4
  • 5
  • 8
喜欢0
链客社群 加入

微博进入

商务合作>

广告投放>

公司名称:北京链客行科技有限公司

联系方式:010-67707199

ICP备案号:京ICP备18032136号

Copyright:链客区块链技术问答社区 版权所有

感谢您的提问,问题被社区永久收入以便新人查看。一定要记得采纳最佳答案哦!加油!

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!

您将赞赏给对方2LK币的奖励哦!感谢您的赞赏!