允许参与者查看他们提交的交易

时间:2018-05-29 17:09:40

标签: hyperledger-fabric hyperledger hyperledger-composer

我使用hyperledger composer建立了一个商业网络。我正在尝试设置权限,以便参与者只能查看他们提交的交易。

尝试通过对作曲家REST API的GET请求或使用客户端API访问事务(称为TradeInstrument)时,以admin身份调用。这是可以理解的,因为我允许管理员访问所有资源。但是,当我将请求作为参与者时,将返回一个空数组。为我想要实现的目标设置权限的正确方法是什么?

以下是我的模型和权限文件:

model.cto

psprt_auth_pkg.create_account(:P3_USERNAME, :P3_PASSWORD);

permissions.acl

namespace org.example.cashbalance

participant Portfolio identified by portfolioNumber {
  o String portfolioNumber
  o String portfolioName
}

transaction TradeInstrument {
  --> Portfolio participant
  o Double settlementAmountBase 
}

1 个答案:

答案 0 :(得分:0)

您正在谈论历史交易(已提交),因此您需要限制该注册表,例如。

public new void Hide()
    {
        Dispatcher.Invoke(() =>
        {
            base.Hide();

            WindowState = WindowState.Minimized;

            base.OnStateChanged(new EventArgs());
        });
    }

    public new void Show()
    {
        Dispatcher.Invoke(() =>
        {
            base.Show();

            base.Topmost = true;
            WindowState = WindowState.Normal;
        });
    }

我不认为下面的规则会做任何事情(参与者调用是'HistorianRecord'的属性)

rule PortfolioParticipantSeesOwnHistoryOnly {
  description: "See history of their own transactions only"
  participant(t): "org.example.cashbalance.Portfolio"
  operation: READ
  resource(v): "org.hyperledger.composer.system.HistorianRecord"
  condition: (v.participantInvoking.getIdentifier() != t.getIdentifier())
  action: DENY
}