如何在Hyperledger Fabric中的事务2中调用的事务1中触发事件?

时间:2018-10-10 12:15:02

标签: hyperledger-fabric hyperledger hyperledger-composer

我有2个事务,事务A和事务B。每个事务中都有一个事件。

交易A-事件A
交易B-事件B

当我在事务B内部/从事务B调用事务A时,它正在进行事务A中定义的所有更改,但是在事务历史记录中没有任何事件A的迹象。
我知道一个事实,那就是只有一个事务,不会为事务A进行单独的事务,但是有办法获取事件A吗?由于必须触发。
谢谢


我正在编辑问题。 我们可以在事务B中看到事件A。
无需回答。谢谢

1 个答案:

答案 0 :(得分:0)

您的意思是在同一个业务网络中吗? (另请参见:标题不应该更改为Hyperledger Composer(如果您已标记Composer吗?)如果是,则为“相同网络”,则不能在Composer中调用另一笔交易。但是,如此处所评论-> {{ 3}}在Composer中进行的交易(如模型文件中所模拟的)可以调用其他功能进行代码模块化,但只会注册为单个交易请求该交易可以是(例如)来自一个或多个交易功能的多个智能合约更新(如果是a,则更新b和c,然后更新d并添加e并发出事件,作为一个工作单元),作为工作单位从不同资产或参与者注册表中进行更新/添加/删除。

关于事件:尽管您可以在事务逻辑中的任何时候发出“发出”信号,但直到提交事务后,该事件才会真正发出。但是,在事务中抛出错误会使事务回滚-事务所做的更改是原子的,要么事务成功并且所有更改都被应用,要么事务失败并且没有更改(对于事件发射也是如此)。