- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用合同密钥,有两个函数fetchByKey
和lookupByKey
,后者允许我处理否定查找。我没有看到针对合同编号执行相同操作的lookup : (Template t) => ContractId t -> Update (Optional t)
函数。
我也没有看到尝试捕获的机制,该机制将允许我处理失败的fetch
调用。
如何在不重新实现整个DAML逻辑客户端的情况下避免交易失败?
最佳答案
这个问题有很多需要解决的问题:
lookup
? lookupByKey
和建议的
lookup
函数允许事务提交者对合同进行不存在的断言。
None
的
lookupByKey
结果断言特定键不存在,
None
的
lookup
断言特定的
ContractId
不存在。最大的区别在于,合同的合同密钥包括密钥维护者,验证查询的各方。因此很明显,谁必须授权
lookupByKey
,谁可以验证否定结果。使用
lookup
,没有与
ContractId
关联的各方,因此没有明智的授权或验证规则。
fetchIfNotArchived : (Template t) => ContractId t -> Update (Optional t)
,如果id未知则失败,如果合同ID被存档,则返回
None
。 DAML事务取决于当前分类帐状态,该状态当前是所有活动合同的集合。诸如
fetchIfNotArchived
之类的功能会在DAML分类帐模型中引入不存在的合同和已存档合同之间的区别,因此分类帐状态将从一开始就从所有活动合同更改为整个分类帐。 DAML分类帐将不再被截断并随时间线性增长,这是不可取的。
lookup : (Template t) => ContractId t -> Update (Optional t)
lookup cid = do
try do
c <- fetch cid
return (Some c)
catch
return None
try
还是
catch
路径。您可以通过将存在传递给以下对象来模拟:
maybeLookup : (Template t) => ContractId t -> Bool -> Update (Optional t)
maybeLookup cid cidIsKnown = if cidIsKnown
then do
c <- fetch cid
return (Some c)
else return None
cidIsKnown
,这很烦人。可以想象“未经检查的查询”可以在这里提供帮助。例如。可以引入一个函数
uncheckedContractActive : (Template t) => ContractId t -> Update Bool
,该函数检查合同在提交者端是否处于活动状态,然后仅将
Bool
包括在事务中。显然,是否像cid存在一样运行事务是提交者的自由选择,反之亦然。
fetch
调用只会由于竞争条件而失败,并且对合同的争用不会太多,因此交易失败很多。你可以试试
Lock
合同写到分类帐,向非分批自动化指示应该暂停,或使用Operation
合同保护选择,该合同在批处理开始时被撤销。后者具有更强的保证,但是会增加开销,因为它会为每个选择添加一个fetch
。 fetch
调用。
关于daml - 有没有一种方法可以尝试通过ID来获取契约(Contract),并且在契约(Contract)处于非事件状态时不会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58075358/
我正在尝试构建某种形式的动态 Corda 合约,该合约具有一个可以保存独立合约列表和这些合约的独立状态的状态。 为了揭开这个概念的神秘面纱,请将“动态 Corda 合约”视为一个抽象类,它具有 Lis
怀念Collections.unmodifiableMap(),我一直在实现基于this discussion 的只读IDictionary 包装器,我的单元测试很快就遇到了问题: Assert.Ar
在消费者测试结束时我需要执行两个步骤: 完成模拟服务器 将协议(protocol)发布给经纪人。 一开始我是先发布再定稿,像这样: var opts = { //broker info } pac
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 3 年前。 Improve
您好, WCF 中数据/服务契约(Contract)的默认命名空间是 "http://tempuri.org/" .通过设置 ServiceContract.Namespace和 ServiceBeh
Using Attachments页面状态: Attachments are ZIP/JAR files referenced from a transaction by hash, but not
说我有一个方法 public void PrintStuff(string stuff, Color color, PageDimensions dimensions) { Assert.I
Mortgage.new({ from: ownerAccount, gas: defaultGas }).then( function(loanInstance) { loa
有很多问题询问是否混合异步和同步代码。 大多数答案都说为异步方法公开同步包装器和为同步方法公开异步包装器是个坏主意。 但是,没有一个答案解决您必须混合使用异步和同步代码的特定场景,以及如何避免由此产生
我是来自 PHP/Larvel、Ruby/Rails 和 Python/Django 的 Spring 新手。来自这些框架,我习惯于只看到模型(Entity/Dao?),其他一切都由 Framewor
我正在尝试为一些广泛使用的接口(interface)编写契约(Contract)测试: 沿着: public abstract class MyInterfaceContractTest extend
这是来自自定义 Microsoft .NET 运行时实现的代码,我有以下问题: public static string ToBase64String(byte[] inArray, int
我正在用遗留代码重构一个巨大的 C 库,其中许多函数在参数列表上都有指针。我还为新创建的函数编写单元测试以确保我没有破坏任何东西(除了来自单元测试的所有好东西,这是我的主要动机)。我也不允许更改库的
我的类有一个内部属性返回 List ,并且我想使用静态检查来帮助我不在我的程序集中做任何愚蠢的事情,并可能向该集合添加 null。 我在 foreach 的循环变量上收到这个静态警告在属性(prope
我在这个问题上花了几个小时...这是我的代码: public static IEnumerable Generate(this Func generator) where T : class {
我有兴趣了解更多关于contract-first 网络服务的信息,包括如何将它们组合在一起。 谁能推荐有用的资源来解释所需的方面/组件以及如何生成它们? 除了 Spring 的契约优先 Web 服务之
我刚刚将我的联系方式、银行和税务详细信息上传到 iTunes Connect;这个处理通常需要多长时间?我只能找到 5 年以上的信息。 最佳答案 契约(Contract)审核过程大约需要 20 分钟。
假设我们有一个类 Student使用以下构造函数: /** Initializes a student instance. * @param matrNr matriculation numb
使用 CXF 创建契约(Contract)最后的 Web 服务似乎是快速创建基于 SOAP 或 REST 的 Web 服务的有效方式。但是,我不清楚/不确定以下内容,非常感谢您提供见解/反馈: con
引自 Effective Java - Second Edition by Joshua Bloch For floating-point fields, use Double.compare or
我是一名优秀的程序员,十分优秀!