A computer-implemented method for managing entitlements, comprising:
- storing by a blockchain fabric (1) a ledger that comprises a sequence of blocks wherein each block stores data from a transaction request received from an entitlement management service;
- (2) at least one smart contract, wherein a smart contract processes a transaction on behalf of the blockchain fabric;
- creating, by the entitlement management service, a first entitlement, wherein an entitlement specifies usage rights for an entitled product;
- receiving by the blockchain fabric a create entitlement transaction request from the entitlement management service to add the first entitlement to the ledger, wherein the entitlement transaction request includes the specification of the usage rights;
- executing by the blockchain fabric a create entitlement smart contract;
- adding to the ledger, by the create entitlement smart contract, an entitlement block that includes the specification of the usage rights corresponding to the first entitlement;
- receiving by the blockchain fabric a create add-on entitlement transaction request from the entitlement management service to add a second, add-on, entitlement to the ledger, wherein the entitlement transaction request includes the specification of the add-on usage rights, wherein the add-on entitlement adds usage rights for the entitled product;
- executing by the blockchain fabric a create add-on entitlement smart contract;
- adding to the ledger, by the create add-on entitlement smart contract, an entitlement block that includes the specification of the add-on usage rights;
- issuing a usage transaction, by the entitled product, which reports usage data by the end-user to the blockchain fabric;
- upon receiving the usage transaction, executing a usage smart contract;
- adding to the ledger, by the usage smart contract, a usage block that includes the usage data;
- determining, by the usage smart contract, based on the cumulative usage rights as specified by the first and second entitlement blocks, and (ii) usage as specified by the usage blocks in the ledger, whether an entitlement limit has been reached;
- and
- sending a response to the entitled product, by the blockchain fabric, for the received usage transaction.