Access control and ownership transfer of digital content using a decentralized content fabric and ledger
Disclosed are examples of systems, apparatus, devices, computer program products, and methods implementing aspects of a decentralized content fabric. In some implementations, one or more processors are configured to provide fabric nodes of a network, including a first fabric node receiving a client request to perform one or more actions with respect to digital content corresponding to a plurality of content object parts maintained in the network. A lookup is performed on a blockchain ledger in a first blockchain to locate a digital instrument cryptographically linked to a user identifier (ID) of an owner of the digital content. The first fabric node grants the client request based on determining that a user ID associated with the client request matches the user ID of the owner of the digital content. The one or more actions are then performed through a blockchain transaction in the first blockchain or another blockchain.
1 . A system comprising:
one or more memory devices; and
one or more processors associated with the one or more memory devices and with a plurality of fabric nodes of a network, the plurality of fabric nodes comprising a first fabric node configured to:
receive a client request initiated by a client device, wherein the client request is a request to perform one or more actions with respect to digital content identified in the client request, the digital content implemented as a plurality of content object parts maintained in the plurality of fabric nodes of the network, each content object part including raw data, metadata and code;
perform a lookup on a blockchain ledger in a first blockchain to locate a digital instrument previously created for the digital content, wherein the digital instrument is cryptographically linked to a user identifier (ID) of an owner of the digital content;
grant the client request based on determining that a user ID associated with the client request matches the user ID of the owner of the digital content;
process the raw data, metadata and code of the plurality of content object parts to generate digital output; and
cause the one or more actions to be performed through a blockchain transaction in the first blockchain or another blockchain, the one or more actions comprising providing the digital output to the client device.
2 . The system of claim 1 , wherein the digital instrument is a non-fungible token stored as part of a hash map in the blockchain ledger.
3 . The system of claim 2 , wherein the non-fungible token is compliant with the Ethereum Request for Comments 721 (ERC-721) standard.
4 . The system of claim 1 , wherein the user ID associated with the client request comprises a blockchain address.
5 . The system of claim 4 , wherein the blockchain address is an address of a cryptocurrency wallet.
6 . The system of claim 1 , the one or more actions comprising one or more of: viewing, playing, streaming, or downloading the digital content on the client device.
7 . The system of claim 1 , the one or more actions comprising recording a change in ownership of the digital content.
8 . The system of claim 1 , the one or more actions comprising creating derivative content from the plurality of content object parts.
9 . The system of claim 8 , the one or more actions further comprising:
creating a second digital instrument in the blockchain ledger for the derivative content, and
cryptographically linking the second digital instrument to a user ID different from that of the owner of the digital content.
10 . The system of claim 8 , wherein the derivative content corresponds to a new version of the digital content, the new version differing from the digital content with respect to one or more content object parts.
11 . A non-transitory computer-readable medium storing program code executable by one or more processors, the program code comprising instructions configured to cause the one or more processors to perform operations associated with a plurality of fabric nodes of a network, the operations comprising:
receiving a client request initiated by a client device, wherein the client request is a request to perform one or more actions with respect to digital content identified in the client request, the digital content implemented as a plurality of content object parts maintained in the plurality of fabric nodes of the network, each content object part including raw data, metadata and code;
performing a lookup on a blockchain ledger in a first blockchain to locate a digital instrument previously created for the digital content, wherein the digital instrument is cryptographically linked to a user identifier (ID) of an owner of the digital content;
granting the client request based on determining that a user ID associated with the client request matches the user ID of the owner of the digital content;
processing the raw data, metadata and code of the plurality of content object parts to generate digital output; and
causing the one or more actions to be performed through a blockchain transaction in the first blockchain or another blockchain, the one or more actions comprising providing the digital output to the client device.
12 . The non-transitory computer-readable medium of claim 11 , wherein the digital instrument is a non-fungible token stored as part of a hash map in the blockchain ledger.
13 . The non-transitory computer-readable medium of claim 12 , wherein the non-fungible token is compliant with the Ethereum Request for Comments 721 (ERC-721) standard.
14 . The non-transitory computer-readable medium of claim 11 , wherein the user ID associated with the client request comprises a blockchain address.
15 . The non-transitory computer-readable medium of claim 14 , wherein the blockchain address is an address of a cryptocurrency wallet.
16 . The non-transitory computer-readable medium of claim 11 , the one or more actions comprising one or more of: viewing, playing, streaming, or downloading the digital content on the client device.
17 . The non-transitory computer-readable medium of claim 11 , the one or more actions comprising recording a change in ownership of the digital content.
18 . The non-transitory computer-readable medium of claim 11 , the one or more actions comprising creating derivative content from the plurality of content object parts.
19 . The non-transitory computer-readable medium of claim 18 , the one or more actions further comprising:
creating a second digital instrument in the blockchain ledger for the derivative content, and
cryptographically linking the second digital instrument to a user ID different from that of the owner of the digital content.
20 . The non-transitory computer-readable medium of claim 18 , wherein the derivative content corresponds to a new version of the digital content, the new version differing from the digital content with respect to one or more content object parts.
21 . A method implemented using one or more processors associated with a plurality of fabric nodes of a network, the method comprising:
receiving a client request initiated by a client device, wherein the client request is a request to perform one or more actions with respect to digital content identified in the client request, the digital content implemented as a plurality of content object parts maintained in the plurality of fabric nodes of the network, each content object part including raw data, metadata and code;
performing a lookup on a blockchain ledger in a first blockchain to locate a digital instrument previously created for the digital content, wherein the digital instrument is cryptographically linked to a user identifier (ID) of an owner of the digital content;
granting the client request based on determining that a user ID associated with the client request matches the user ID of the owner of the digital content;
processing the raw data, metadata and code of the plurality of content object parts to generate digital output; and
causing the one or more actions to be performed through a blockchain transaction in the first blockchain or another blockchain, the one or more actions comprising providing the digital output to the client device.
22 . The method of claim 21 , wherein the digital instrument is a non-fungible token stored as part of a hash map in the blockchain ledger.
23 . The method of claim 22 , wherein the non-fungible token is compliant with the Ethereum Request for Comments 721 (ERC-721) standard.
24 . The method of claim 21 , wherein the user ID associated with the client request comprises a blockchain address.
25 . The method of claim 24 , wherein the blockchain address is an address of a cryptocurrency wallet.
26 . The method of claim 21 , the one or more actions comprising one or more of: viewing, playing, streaming, or downloading the digital content on the client device.
27 . The method of claim 21 , the one or more actions comprising recording a change in ownership of the digital content.
28 . The method of claim 21 , the one or more actions comprising creating derivative content from the plurality of content object parts.
29 . The method of claim 28 , the one or more actions further comprising:
creating a second digital instrument in the blockchain ledger for the derivative content, and
cryptographically linking the second digital instrument to a user ID different from that of the owner of the digital content.
30 . The method of claim 28 , wherein the derivative content corresponds to a new version of the digital content, the new version differing from the digital content with respect to one or more content object parts.