textileio / community

Textile community repo. Includes a sub-project for documentation 📚 and a discussion board for ideas & questions.
https://docs.textile.io/
MIT License
101 stars 44 forks source link

Document common/less-common errors people may see and what they can do #198

Open andrewxhill opened 4 years ago

andrewxhill commented 4 years ago

failed: executing cold-storage config: all proposals were rejected

Most probably the Lotus node doesn't have the right configuration to connect to IPFS node.

andrewxhill commented 4 years ago

JOB_STATUS_FAILED after pow.ffs.pushConfig(cid)

so the event object that is passed to your handler has quite a bit of info. it looks like:

 {
    id: string,
    apiId: string,
    cid: string,
    status: JobStatusMap[keyof JobStatusMap],
    errCause: string,
    dealErrorsList: Array<DealError.AsObject>,
  }

the dealsErrors list there, each item looks like:

{
    proposalCid: string,
    miner: string,
    message: string,
  }
andrewxhill commented 4 years ago

executing hot-storage config: pinning cid in hot storage: pinning cid .... context deadline exceeded

pinning a Cid which wasn't added to the IPFS. increasing the AddTimeout to give it more time

andrewxhill commented 4 years ago

not an error, but possibly a common Q

Will the data still be on Filecoin after retrieval (before MinDealDuration) ?

Yes. The duration of the deal means the data is available for retrieval as many times you want. Of course, if you're willing to pay for the retrieval multiple times.

andrewxhill commented 4 years ago

sending tokens from a FFS managed address to another address

Error! Rpc error: code = Unknown desc = ... is not managed by ffs instance

i think that first command you pasted is probably actually pow ffs send ...? in that case, the address you are sending from has to be an address associated with the ffs instance referenced by token

andrewxhill commented 4 years ago

how can i recover an ffs token

you can't

andrewxhill commented 4 years ago

How do you get FILs to use for a FFS instance on Testnet, besides becoming a miner?

use autoFund or https://faucet.testnet.filecoin.io/

andrewxhill commented 4 years ago

What is the unit of FIL reported by APIs?

attoFil

andrewxhill commented 4 years ago

What will happen if you try to retrieve file after specified DealMinDuration without enabling Renew ?

DealMinDuration is an intention from the client about the deal duration. When the deal settles, the real duration is decided by doing some calculations by Lotus. (Some aligning with the miner proof window and similarish things) So, after the deal ends the miner has no incentives to keep that data. So most prob will be deleted With the Show API, you can see each deals details about the StartEpoch and the Duration. (Where Duration is the real duration of the deal)

andrewxhill commented 4 years ago

Explain better the use of AllowUnfreeze

if you have hot storage disabled. And in some moment you want to get data from filecoin and put it in the hot storage

If you have HotStorage.Enabled=false and AllowUnfreeze=true , that means that if you switch the config to HotStorage.Enabled=true the data will be fetched from Filecoin and be pinned to HotStorage

That AllowUnfreeze=true is you giving permission to pay the cost to take that data out of Filecoin if HotStorage.Enabled is switched to true. First it will try to get it "for free" from the IPFS network, if that isn't possible, it will take it out from Filecoin (if true)

If AllowUnfreeze=false even if you have it in filecoin, Powergate won't take it out from Filecoin since understands you don't want to pay costs for HotStorage feeding.

andrewxhill commented 4 years ago

If I use the default ffs config file, there is a maxPrice field and it's set to 0. Does this mean that FFS will only execute the deal if the price is 0?

0 means there's no max price control filtering for miner selection when making deal.

Am I actually executing a storage deal when I run the command: await pow.ffs.pushConfig(cid)?

Yes. More precisely, you'll be telling powergate how you want a Cid to be stored, and Powergate will do whatever necessary to make that real. If making new deals is the case, it will.

where are the funds coming from to execute the deal. I haven't funded any of my wallets in powergate yet.

if you're using a master address each new FFS instance you create will be auto-funded by this master addr. And if you're using the "master addr" autocreationg, when powd runs it will create a new master addr, fund it from the faucet, and then be used to fund new FFS instances as mentioned before.

andrewxhill commented 4 years ago

What do the PRICE and MIN PIECE SIZE mean when you run pow asks get ?

price is the Fil per GB per epoch to store data

(there are places in the api where Fil is expressed as attofil which is some tiny fraction of 1 Fil.... can't remember off the top of my head which of those pow asks get returns)

i believe min piece size is the smallest file you can store with the miner in bytes

andrewxhill commented 4 years ago

if I use ffs push/ get , powergate will automatically choose the best miner and deduct FIL from my wallet?

when you call ffs push ffs uses a "cid configuration" that specifies all the details about exactly how to store the data. if you don't provide a configuration object to a single call of push, it will use the default configuration for the ffs instance

andrewxhill commented 4 years ago

What is the difference between pow ffs push/get and pow deals store/retrieval ?

the ffs provides module logically separated data storage and wallet addresses on top of a single lotus and ipfs nodes on a per ffs instance basis. the deals module manages all the data storage and wallet addresses for the lotus and ipfs nodes

ffs is actually implemented on top of the deals module

we just expose both apis to provide more flexibility in how powergate can be integrated into an existing system

'd say for most uses, ffs is the way to go because it takes care of a lot of the complexity of using the deals module