Я создал бизнес-сеть, используя Hyperledger Composer.Я пытаюсь установить разрешения таким образом, чтобы участники могли просматривать только те транзакции, которые они представили.
Попытка доступа к транзакциям (называемая TradeInstrument) либо через GET-запрос к API REST композитора, либо с помощью клиентского API работает при вызове от имени администратора.Это понятно, так как я разрешил администратору доступ ко всем ресурсам.Однако, когда я делаю запрос в качестве участника, возвращается пустой массив.Как правильно установить разрешения для того, чего я пытаюсь достичь?
Вот мои файлы модели и разрешений:
model.cto
namespace org.example.cashbalance
participant Portfolio identified by portfolioNumber {
o String portfolioNumber
o String portfolioName
}
transaction TradeInstrument {
--> Portfolio participant
o Double settlementAmountBase
}
разрешения.acl
rule ParticipantCanSeeOwnTransactions {
description: "Allow participants to view transactions they have submitted"
participant(t): "org.example.cashbalance.Portfolio"
operation: ALL
resource(v): "org.example.cashbalance.TradeInstrument"
condition: (v.participantInvoking.getIdentifier() == t.getIdentifier())
action: ALLOW
}
rule NetworkAdminUser {
description: "Grant business network administrators full access to user resources"
participant: "org.hyperledger.composer.system.NetworkAdmin"
operation: ALL
resource: "**"
action: ALLOW
}
rule NetworkAdminSystem {
description: "Grant business network administrators full access to system resources"
participant: "org.hyperledger.composer.system.NetworkAdmin"
operation: ALL
resource: "org.hyperledger.composer.system.**"
action: ALLOW
}
rule SystemACL {
description: "System ACL to permit all access"
participant: "ANY"
operation: ALL
resource: "org.hyperledger.composer.system.**"
action: ALLOW
}