Testing has revealed some unreliability where it shouldn't be, with regards to partial datasets and erasure-coding.
Test:
- Start 5 host nodes each with availability to fill a single slot.
- Start 1 client node.
- DO NOT start a validator. (We don't want SlotFreed events or repair for this test.)
- Create a storage contract. Wait until it has started.
- Stop the client node.
The storage contract was created with 4 slots and 2 tolerance.
This means from any 2 slots, we should be able to recover the original data.
As parameterized input to this test, we provide two distinct slotIndex variables that cover every combination of slotIndexes.
- Use chain events to find which hosts have filled the selected slotIndexes.
- Stop the selected hosts.
At this point half of the erasure-coded dataset exists in the network, but the full original data should be retrievable.
- Start a new node.
- Use the new node to retrieve the original dataset (using the verifiable-manifest CID, such that erasure-coding information and indexing information is available.)
This should always work. Testing reveals it doesn't always work.

From this we can see that if both slotIndex 0 and slotIndex 1 are removed, retrieval is likely to fail.
The test allows download to be retried once. Original dataset size: 32MB.
If you have any insights into what might be causing this problem: Please comment below!
Testing has revealed some unreliability where it shouldn't be, with regards to partial datasets and erasure-coding.
Test:
The storage contract was created with 4 slots and 2 tolerance.
This means from any 2 slots, we should be able to recover the original data.
As parameterized input to this test, we provide two distinct slotIndex variables that cover every combination of slotIndexes.
At this point half of the erasure-coded dataset exists in the network, but the full original data should be retrievable.
This should always work. Testing reveals it doesn't always work.

From this we can see that if both slotIndex 0 and slotIndex 1 are removed, retrieval is likely to fail.
The test allows download to be retried once. Original dataset size: 32MB.
If you have any insights into what might be causing this problem: Please comment below!