filecoin-project / lotus

Reference implementation of the Filecoin protocol, written in Go
https://lotus.filecoin.io/
Other
2.83k stars 1.25k forks source link

Storage deal proposals of over 2GiB are consistently failing with miners. #4593

Closed TippyFlitsUK closed 2 years ago

TippyFlitsUK commented 3 years ago

Whenever a storage client submits a deal with the size in excess of 2GiB the deal fails with the miner. This has been occurring pre v1.0.0 release and continues post v1.0.0 although now displays a different error message in the miner output.

Pre v1.0.0 The storage deals begins to transfer but then fails with the following error message:

2020-10-14T19:07:08.513Z    ERROR   evtsm   go-statemachine@v0.0.0-20200925024713-05bd7c71fbfe/machine.go:83    Executing event planner failed: Slice value in field t.ReceivedCids was too long:
  github.com/filecoin-project/go-data-transfer/channels/internal.(*ChannelState).MarshalCBOR
    /home/stuart/go/pkg/mod/github.com/filecoin-project/go-data-transfer@v0.9.0/channels/internal/internalchannel_cbor_gen.go:342
2020-10-14T19:07:08.685Z    ERROR   dt_graphsync    graphsync/graphsync.go:171  normal shutdown of state machine

lotus-miner storage-deals list -v shows:

Oct 13 17:48:22  bafyreihdzuh7ruwq6agx5jx7xmnfwyomambjlbeqhcjxiv755isoonnf7y  0       StorageDealError           f3vp32aepxd42h7w2w54hqwnkqszd4zte44kz3oald4tqipcttgteft5bgypbeuuivbqkxl3i6nii355i24vka  8GiB    0.37521648 FIL            521134   error restarting data transfer: channelId on provider deal is nil

Post v1.0.0 The storage deals begins to transfer but then fails with the following new error message:

INFO graphsync impl/graphsync.go:260 Graphsync ReceiveError: message too large

lotus-miner storage-deals list -v shows:

Oct 22 03:37:46  bafyreigey4p2ggpu7j3nwokvobk2krpzf3ln5j4qnzpuiz2yaab6wpchfy  0       StorageDealError                    f3sahiydrlgsovxsawvza6sjgczaova7ecqhw2ctqsmsjx2hlz65bheutgfge2tjx6a52z2qdvebshfm52lllq  4GiB    0.001042734 FIL           521367   error restarting data transfer: unable to send restart request: exhausted %!d(float64=5) attempts but failed to open stream, err: failed to find any peer in table

In both cases the lotus-miner data-transfers list shows:

1003  Ongoing    ...uTQcxGNX     ...2d36l43e  N           1.917GiB     ...tkaes7nypjvwwfojzd4q3wzocwkihv4uv4"}}

According to Matt Ober (@Matt Ober) in this slack thread, storage clients see this error:

unexpected deal status while waiting for data request: 11 (StorageDealFailing). Provider message: deal rejected: storage price per epoch less than asking price: 2500000000 \u003c 10000000000",

Relevant Slack Conversations: https://filecoinproject.slack.com/archives/CEGN061C5/p1602702653044500 https://filecoinproject.slack.com/archives/C01AZP8BKRQ/p1603295690443800 https://filecoinproject.slack.com/archives/CG6P10H9T/p1603648688309500

hannahhoward commented 3 years ago

@TippyFlitsUK please try with release 1.2.0 or greater. There was a specific issue breaking data transfers over 2GB (for anything chunked with IPFS) in releases <1.2.0 -- https://github.com/filecoin-project/lotus/issues/4856 -- this is now fixed.

TippyFlitsUK commented 3 years ago

Many thanks @hannahhoward !! Happy to confirm that I have just published my first ever 32GiB deal!!

Reiers commented 2 years ago

Seems to be solved in newer version of Lotus. Closing the ticket.