A method for enabling sharing of content files among nodes of a P2P network, the P2P network comprising a plurality of sub-networks ( 110(i)) each one including a respective plurality of nodes ( Pj(i)) capable of storing content files ( FILE(k)), wherein each sub-network ( 110(i)) is associated with a corresponding distinct hash table ( DHT(i)) for the indexing of the content files ( FILE(k)) stored in the nodes ( Pj(i)) of the sub-network ( 110(i)) and all the nodes ( Pj(i)) included in a same sub-network ( 110(i)) belong to a same corresponding autonomous system ( AS(i)), said hash table ( DHT(i)) being distributed among at least some of the nodes of the sub-network ( 110(i)), the method comprising: - for each content file ( FILE(k)) stored in at least one node ( Pj(i)) of a sub-network ( 110(i)), storing in the hash table ( DHT(i)) associated with said sub-network ( 110(i)) a criticality index ( ICk) providing an indication of the degree of sharing of said content file ( FILE(k)) among the nodes ( Pj(i)) of said sub-network ( 110(i)), and - having a node ( Pj(i)) caching at least one content file ( FILE(k)) to be shared by other nodes ( Pj(i)) of the sub-network ( 110(i)), wherein: - said at least one content file ( FILE(k)) is not requested by said node ( Pj(i)) for the fruition thereof; - said caching at least one content file ( FILE(k)) is based on the criticality index ( ICk) of said at least one content file ( FILE(k)), and - each node ( Pj(i)) of a sub-network ( 110(i)) locally stores a criticality list ( CLj(i)) including the criticality indexes ( ICk) of a sub-set of content files ( FILE(k)), said at least one content file ( FILE(k)) cached by the node ( Pj(i)) being selected among the sub-set of content files ( FILE(k)) whose criticality indexes ( ICk) are included in the criticality list ( CLj(i)) stored in said node ( Pj(i)), wherein the method further comprises: - updating the criticality list ( CLj(i)) of the node ( Pj(i)) according to the criticality list ( CLj(i)) of a further node ( Pj(i)) when said node ( Pj(i)) and the further node ( Pj(i)) enter in communication to each other. - for each content file ( FILE(k)) stored in at least one node ( Pj(i)) of a sub-network ( 110(i)), storing in the hash table ( DHT(i)) associated with said sub-network ( 110(i)) a criticality index ( ICk) providing an indication of the degree of sharing of said content file ( FILE(k)) among the nodes ( Pj(i)) of said sub-network ( 110(i)), and - having a node ( Pj(i)) caching at least one content file ( FILE(k)) to be shared by other nodes ( Pj(i)) of the sub-network ( 110(i)), wherein: - said at least one content file ( FILE(k)) is not requested by said node ( Pj(i)) for the fruition thereof; - said caching at least one content file ( FILE(k)) is based on the criticality index ( ICk) of said at least one content file ( FILE(k)), and - each node ( Pj(i)) of a sub-network ( 110(i)) locally stores a criticality list ( CLj(i)) including the criticality indexes ( ICk) of a sub-set of content files ( FILE(k)), said at least one content file ( FILE(k)) cached by the node ( Pj(i)) being selected among the sub-set of content files ( FILE(k)) whose criticality indexes ( ICk) are included in the criticality list ( CLj(i)) stored in said node ( Pj(i)), wherein the method further comprises: - updating the criticality list ( CLj(i)) of the node ( Pj(i)) according to the criticality list ( CLj(i)) of a further node ( Pj(i)) when said node ( Pj(i)) and the further node ( Pj(i)) enter in communication to each other. - said at least one content file ( FILE(k)) is not requested by said node ( Pj(i)) for the fruition thereof; - said caching at least one content file ( FILE(k)) is based on the criticality index ( ICk) of said at least one content file ( FILE(k)), and - each node ( Pj(i)) of a sub-network ( 110(i)) locally stores a criticality list ( CLj(i)) including the criticality indexes ( ICk) of a sub-set of content files ( FILE(k)), said at least one content file ( FILE(k)) cached by the node ( Pj(i)) being selected among the sub-set of content files ( FILE(k)) whose criticality indexes ( ICk) are included in the criticality list ( CLj(i)) stored in said node ( Pj(i)), wherein the method further comprises: - updating the criticality list ( CLj(i)) of the node ( Pj(i)) according to the criticality list ( CLj(i)) of a further node ( Pj(i)) when said node ( Pj(i)) and the further node ( Pj(i)) enter in communication to each other.