A computer-implemented method for indexing blockchain data for storage, the method being performed by a first blockchain node of a plurality of blockchain nodes, the method comprising: generating one or more encoded blocks based on performing error correction coding, ECC, on one or more blocks of a blockchain; for each encoded block of the one or more encoded blocks: dividing the encoded block into a plurality of datasets based on a data storage scheme associated with the one or more blocks, wherein the data storage scheme provides assignments of the plurality of datasets to the plurality of blockchain nodes, and storing at least one of the plurality of datasets based on the assignments provided in the data storage scheme, wherein one or more other datasets of the plurality of datasets are not stored at the first blockchain node; providing an index that indexes each of the plurality of datasets to each of the plurality of blockchain nodes at which a respective dataset is stored, wherein the index provides a correspondence between a dataset identifier, ID, of a dataset and a node ID of a blockchain node at which the dataset is stored; hashing a remainder of the plurality of datasets other than the at least one of the plurality of datasets to generate hash values corresponding to the remainder of the plurality of datasets; storing the hash values; deleting the one or more blocks; receiving a request for blockchain data from a computing device; determining that the blockchain data is included in the one or more blocks; and sending, based on the index, hash values to a remainder of the blockchain nodes of the blockchain network to retrieve the remainder of the plurality of datasets. generating one or more encoded blocks based on performing error correction coding, ECC, on one or more blocks of a blockchain; for each encoded block of the one or more encoded blocks: dividing the encoded block into a plurality of datasets based on a data storage scheme associated with the one or more blocks, wherein the data storage scheme provides assignments of the plurality of datasets to the plurality of blockchain nodes, and storing at least one of the plurality of datasets based on the assignments provided in the data storage scheme, wherein one or more other datasets of the plurality of datasets are not stored at the first blockchain node; dividing the encoded block into a plurality of datasets based on a data storage scheme associated with the one or more blocks, wherein the data storage scheme provides assignments of the plurality of datasets to the plurality of blockchain nodes, and storing at least one of the plurality of datasets based on the assignments provided in the data storage scheme, wherein one or more other datasets of the plurality of datasets are not stored at the first blockchain node; providing an index that indexes each of the plurality of datasets to each of the plurality of blockchain nodes at which a respective dataset is stored, wherein the index provides a correspondence between a dataset identifier, ID, of a dataset and a node ID of a blockchain node at which the dataset is stored; hashing a remainder of the plurality of datasets other than the at least one of the plurality of datasets to generate hash values corresponding to the remainder of the plurality of datasets; storing the hash values; deleting the one or more blocks; receiving a request for blockchain data from a computing device; determining that the blockchain data is included in the one or more blocks; and sending, based on the index, hash values to a remainder of the blockchain nodes of the blockchain network to retrieve the remainder of the plurality of datasets. <EOS>