当前位置: 首页 > 知识库问答 >
问题:

验证Corda中的流量

万乐逸
2023-03-14

公证人/节点在收到事务时如何验证特定的流已被调用?

这是否意味着Corda可以保证流程没有根据相应Cordapp中的声明进行修改?

共有2个答案

刘子实
2023-03-14

Adel的回答涵盖了从应用流程层面不信任交易对手的正确方法,但也有可以使用的运营保护措施。强合同有助于防止形式不良的交易,因为Corda不允许在完善的网络中使用未知合同。

网络参数定义了什么样的智能契约cordapp jars可接受进行验证。契约约束最常见的形式是签名约束,这意味着由同一个开发者密钥签名的任何契约jar都可以被接受。这可以防止恶意交易方强迫您运行弱验证:https://docs . corda . net/API-contract-constraints . html # signature-constraints

从Corda 4开始,任何未识别的合同cordapp jar都不会被信任,除非节点操作员明确告诉Corda信任该jar。https://docs.corda.net/cordapp-build-systems.html#cordapp-合同附件一旦签名被信任,那么由该签名签名的任何未来jar都将被隐式信任。

商辰钊
2023-03-14

详细地说:

  1. 这是一个DLT(分布式账本技术),所以从某种意义上说,你不能真正信任任何人。
  2. 公证人不接收流量,它接收交易并确保没有双重支出(即消耗的输入不会再次被消耗)。
  3. 即使您为节点提供了 CorDapp,它也可以覆盖响应程序流。请参阅下面的链接。
  4. 关于响应程序流的错误假设:https://www.corda.net/blog/corda-flow-responder-wrong-assumptions/
  5. 配置响应程序流:https://docs.corda.net/flow-overriding.html
  6. 覆盖来自外部 CorDapp 的流:https://dzone.com/articles/extending-and-overriding-flows-from-external-corda
  7. 当您在发起方与其响应方之间发送和接收数据时,接收到的数据(两端)被视为不可信,您必须将其解开包装并进行验证:https://docs.corda.net/api-flows.html#receive

简而言之:

  1. 您的发起者必须验证从响应者收到的任何数据。
  2. 您的响应者必须验证从发起者收到的任何数据;此外,如果您期望发起者是某个实体,则必须验证(向您发送流会话的)对应方是否是您期望的对象(例如flowSession.counterParty=="O=Good Org, L=London, C=UK")。
 类似资料:
  • 我在Corda中发现了一个情况,其中状态有时需要存储自定义数据类型,但是当使用验证公证人时,使用这些状态验证事务失败。 考虑将在同一个包中、同一个jar文件中实现以下类型: 自定义类型示例 示例状态 向分类帐发出新的实例可能不会受到影响,因为它没有使用以前的实例,但后续使用实例似乎无法验证公证人。 Java.lang.IllegalArgumentException:不是有效的Java名称:Jav

  • 我在台阶下表演。 > 我已更改corda流并删除了此行Builder.SetTimeWindow(ServiceHub.Clock.Instant(),30.seconds) 现在执行“gradle jar”命令只构建jar,因此创建了新的corda应用程序jar。例如旧版本“abc-1.1.jar”到新版本“abc-1.2.jar” 现在我在cordapps文件夹中为node部署了新的“abc-

  • 我本可以使用而不是第二个,因为它不映射任何东西,但我不确定这是否是peek方法的可接受用法。 我也可以在第二个中使用一个有状态映射器来只运行一次,而不是用索引压缩,我想这是可以接受的,因为我已经使用了一个有状态谓词...

  • 问题内容: 这是我的流口水验证问题的第二部分。第一部分已经回答,我的代码中已经实现了建议的解决方案。 这是我的java类结构 好的,我的问题是,如果FinanceItemName为“土地或建筑物”,并且该用户的地址符合以下条件,则我需要验证FinanceDetails实例的itemValue, AddressStatus ==当前 AddressType ==物理 AddressUseType =

  • 本文向大家介绍asp.net mvc中Forms身份验证身份验证流程,包括了asp.net mvc中Forms身份验证身份验证流程的使用技巧和注意事项,需要的朋友参考一下 验证流程 一、用户登录 1、验证表单:ModelState.IsValid 2、验证用户名和密码:通过查询数据库验证 3、如果用户名和密码正确,则在客户端保存Cookie以保存用户登录状态:SetAuthCookie     1

  • 本文向大家介绍在AspNetCore中使用极验做行为认证的验证流程,包括了在AspNetCore中使用极验做行为认证的验证流程的使用技巧和注意事项,需要的朋友参考一下 极验验证 极验验证是一种在计算机领域用于区分自然人和机器人的,通过简单集成的方式,为开发者提供安全、便捷的云端验证服务。 与以往传统验证码不同的是,极验通过分析用户完成拼图过程中的行为特征,通过数据分析来判断是人还是机器。用户不必面