filecoin-project / slate

WIP - We're building the place you go to discover, share, and sell files on the web.
https://slate.host
MIT License
528 stars 67 forks source link

Knowledge: Public knowledge, Q&A #17

Closed jimmylee closed 3 years ago

jimmylee commented 4 years ago

Introduction

These are snippets I've collected while monitoring the Filecoin network communities.

Reading List

https://beta.spec.filecoin.io/

jimmylee commented 4 years ago

Question & Answer with @whyrusleeping and a user on Filecoin Public Slack

Hey all, last time I looked at the filecoin project, it was pretty clear on what it did and how it did it. However, with the latest website change (and docs) I feel like a lot of details that were clear to me were left out, and I'm afraid that those specific implementations aren't what they used to be. Here are some specific questions:

To store data, I am not anymore making a deal with a market, but between induvidual "local" nodes that all offer prices to me? How exactly could someone get an audit on global/market-wide pricing quickly enough to make a decision and induce that hyper-competitiveness if nearby nodes could "crowd out" smaller and less-reachable ones with higher prices? After I made a deal with a miner, and sent my data to them, how exactly is the data supposed to be recoverable and healable if that miner goes down? How exactly does the self-healing aspect of this network come into play if I make a deal with an individual miner? How do I know that whatever miner "takes the burden" would not immediately start asking me ridiculously high prices for retrieval?

How exactly would I retrieve my data as an end-user? I'm referring to the fact that if someone on phone decided to download high-res images they made by themselves, how could the price be determined? If the "bus factor" of the data is 1 (all miners controlled by a single party), how would that stop them racking up off-chain prices of retrieval? How exactly would "private data" come into play here? If I store my data on the network, am I responsible for securing it so that somebody else cannot just request the CID and start reading out my data? Where falls the burden of verification/authentication?

The site mentions Dapps, I personally have not yet really dug into these, but how exactly can a website app that wants to be free for users (like modern websites today) be free on a network where retrieval is monetary? What has an application developer to gain for putting their Dapp on the filecoin network? In my eyes, they'd not get any money off of it, and the users would need to pay to use them, which isn't exactly a strong incentive to use it.

These are great questions, and point out a bit the boundaries of what filecoin is today, and what features will come after launch.

Miner pricing is communicated via signed 'storage asks'. Currently, the software just queries a miner directly for their asks, but thats not necessary. An aggregator service can query asks from a large number of miners, and present those quickly to clients, so clients can ask an aggregator for the best set of miners. Since the asks are signed, and have temporal validity information baked in, clients can trust asks received from anyone

Automatic repair of faulted data is a feature we've pushed off until after mainnet launch. For now, the way to ensure resiliency is to store your data with multiple miners, to gain some level of redundancy. If you want to learn more about how we are thinking about repair in the future, here are some notes: https://github.com/filecoin-project/specs/pull/245/files Pricing for retrieval in an efficient market should approach a small premium over the cost of bandwidth. Miners who want to make more money shouldnt turn away the opportunity to make more money, as long as the proposition is profitable. To avoid extortion, always ensure you store your data with a fairly decentralized set of miners (and note: its pretty difficult for a miner to be sure they are the only person storing a particular piece of data, especially if you encrypt the data) Miners currently provide a 'dumb box' interface and will serve anyone any data they have. Maybe in the future miners will offer ACLs and logins and such, but that requires that you trust the miner. The recommended (and safest) approach here is to encrypt data you don't want others to see yourself, before storing it.

There are a ton of potential applications that can be built on decentralized file storage, but going down your line of questioning here, There are a good number of websites out there right now where file downloads are supported entirely through huge amounts of ads (the sort of thing where you click through three pages of ads before you get to your really slow download). All of those types of things could be easily replaced a filecoin incentivized retrieval setup, paying small amounts of filecoin directly for whatever files you were hoping to download (the biggest one here in my mind is when youre trying to download mods for games). There are also a bunch of large datasets out there that are hosted through amazons 'pay per download' s3 buckets, filecoin retrieval easily competes with that too. And more generally, More Dapps will become possible once we allow for arbitrary user programmed actors (smart contracts) because at that point, any dapp that works on any other platform can work on filecoin, with the added bonus of having storage so nearby.

did not know about repair miners, this is a really interesting feature which laid this concern to rest, from my previous knowledge about ethereum contracts, i can guess how this is supposed to work in-network, and how failover could occur entirely within the logic of the network. (Would this mean that the repair miner has a "budget" that it can spend on delegating new storage miners when previous ones fail? Or are tokens "refunded" when the original storage miner fails, and the repair miner just reallocates it as the budget for a new storage miner contract?)

Yeah, pretty much the idea there is that the repair miner would charge a premium on the underlying storage, assuming some failure rate, and would be responsible for the extra costs if they chose unreliable storage miners to ultimately store the data

We descoped the repair miner work for mainnet launch as the network is complicated enough without it, and its relatively straightforward as an upgrade later

I don't feel like my concern behind no.5 has been specifically addressed; how could filecoin provide (to all parties) a more alluring setup? The truth of the matter is right now that internet users enjoy incredible freedom and free content for "nuisances" in the form of ads, from my perspective it's not exactly alluring that to download a file, even with the help of extensions or locally-started clients to help a stunted browser with the actual retrieval, you'd have to "pay somebody", in an era where everything is for "free".

I'm specifically asking how filecoin is supposed to allure to app developers and users to actually work as a service that's either as or more "pleasant" to use, if a user has a transparent wallet built into their browser and gets this into their routine and idea of what's acceptable, then yeah it can take off, but that needs to be a huge shift in how you think about the internet.

(nothing on the internet is free, ads make you the product, free websites take your data to sell to the highest bidder, but nobody on the internet understands this fundamentally, and so they'd not like it if something suddenly becomes "not free", even in small amounts) (edited)

Yeah, I tend to agree on the point youre making here. I think the primary usecase for filecoin at first will be more 'long term' storage applications. Archival, personal backups, etc. As well as applications like existing dapps that don't want to (or 'cant') store their data in traditional ways. There is fairly significant demand among current decentralized applications for a solution to how their data should be stored, and a good number of them already use ipfs (but resort to pinning data themselves, on their servers to ensure the data sticks around). These apps already have wallets built in usually, and adding some sort of micropayment for the data they use isnt too big of a stretch. On the point of 'how could Filecoin provide a more alluring setup' to existing non-decentralized applications, I agree that it's going to require a pretty major shift in how we think about the internet. But at the same time, I am pretty excited for such a shift, and I think that things are heading that way (slowly) in general. Browser vendors and major tech companies are getting more into decentralized tech and crypto (see Brave, Opera, and Firefox's dweb experiments)

It also requires a major shift in how we see ourselves in relation to the internet, "give a little, take a little" needs to get back into the public consciousness, no matter for what, for this to even become "normal". You mention persistent storage for Dapps, you're right that that is actually a very good and applicable usecase to this (instead of having a RESTful api store the data somewhere anyway). Maybe the adopters and users would be the ones who actually care about their privacy, and see this as a reasonable tradeoff to be 100% sure that data stays in their hands, they can even turn off REST that way if it means that everything happens in a self-contained environment, where data is only edited from a personal private key, from a distributed storage, on a distributed app where no one person really hosts it, or holds the keys for it. One last question, how would updating data work with filecoin? If someone would use a Dapp, and they'd update their private data (program data, settings data), how'd that be effectively updated? Would partial updates be allowed to occur on miners? Transparently?

Maybe the adopters and users would be the ones who actually care about their privacy

I think we're gonna get a lot of these yeah, and its a very good userbase for us to grow.

how would updating data work with filecoin?

So this is ugly right now, we have some really good ideas around 'warm' storage (that is mutable, and provable) that we will probably implement in the near future, but for now, your app will have to treat filecoin as an append-only log. If you want to change your data, you just write new data.

The 'warm' storage thing can be done with a small amount of trust , where you make a deal with a miner with a start date quite far in the future. The miner can choose to store your data in a sector now (but they won't get paid for proving it until the actual start date) or they can hold it for you (and even send you proofs of it on request) and you can then send them new data to overwrite it, along with a new storage deal that overwrites the previous one.

theres a pretty large design space here, and we can do a bunch of different things depending on the levels of trust involved, the price sensetivity, and the frequency of updates clients desire

jimmylee commented 4 years ago

What are the changes to the algorithm and logic layer of lotus and go-filecoin before going online?

No changes to “algorithm and logic” before we go live -- from here on out, all we’re doing is fixing bugs (so please report them!), improving performance (our sync is much faster on the latest Testnet), and improving the UX with new APIs and documentation.

In the coming SpaceRace, how to identify a miner's real location?

We’ll use a variety of technical and non-technical mechanisms. They may also be different for different miners. To avoid cheating, we’re not revealing the specific mechanisms until verification begins.

When we verify miners’ locations, we’ll reach out by email and coordinate a time that the miner will be standing by to provide verification. We’ll ask for some specific evidence and require submission within a short time period.

Location verification is not required to participate in either (i) the global leaderboard or (ii) the regional leaderboard for the most competitive region (i.e., the region with the most storage).

We consider the location of the storage and sealing hardware to be the location of the miner.

Please note that miners who attempt to “spoof” their location will be completely ineligible for all rewards.

How to realize reward network retrieval and real data?

During the competition, once your miner has > 0 storage power, many bots will begin attempting storage and retrieval deals with your miner. The competition dashboard will display your deal success rate in near-real time. Miners below a certain high threshold will be ineligible to receive rewards.

We plan to run the bots for one to two weeks before the competition to give miners a chance to test their configuration, and will announce when that begins.

Hi, look at this.😃😃How do ordinary people, not geeks, get involved in this work?

You can start from checking out the tutorials from Protoschool: https://proto.school/#/tutorials Participate in the hackathon and future events of Filecoin Ignite: https://ignite.fil.events/ Check out the different tools to build dapps on Filecoin: https://blog.textile.io/

How likely is the NSE algorithm to come on line later?Is AMD's configuration the most consistent with the current SDR algorithm

About NSE: NSE is one of the best candidates for a proof upgrade, and teams are working on implementation. But there are other candidates too, which are promising as well. It may be that another algorithm ends up better than NSE -- we don’t know yet. Proof upgrades will arrive after mainnet launch and will coexist.

Yes, AMD may be optimal for SDR, see this for why: https://github.com/filecoin-project/lotus/blob/master/documentation/en/sealing-procs.md

Is there a miner's KYC certification process? By which way? How to identify the mining location of miners?

To receive tokens, miners will be required to verify their identity by providing passports or similar identity documents. We may need to request additional information in rare cases.

We’ll use a variety of technical and non-technical mechanisms. They may also be different for different miners. To avoid cheating, we’re not revealing the specific mechanisms until verification begins.

When we verify miners’ locations, we’ll reach out by email and coordinate a time that the miner will be standing by to provide verification. We’ll ask for some specific evidence and require submission within a short time period.

Location verification is not required to participate in either (i) the global leaderboard or (ii) the regional leaderboard for the most competitive region (i.e., the region with the most storage).

when shall we expected to get the detailed params of the filecoin's Cryptoeconomic

We are still finalizing our Cryptoecon parameters and they will continue to evolve. We are looking to solidify more final parameters in late July. Let us know if you have more questions on the structural mechanisms themselves.

The Filecoin Client is not usable enough, so how to give a deal by customers when mainnet launch?

Improving the UX and fixing bugs is our only priority right now. We’re excited to be fixing all the issues the community is reporting, so please keep complaining (file issues on Github, and post in #fil-lotus on Slack).

What are the standards and conditions of the verifier, is there a selected institution to verify, can you tell us about this situation?

There will be several different institutions. We don’t have more updates about Verfiers at this time. We will have more around mid July.

Will the existence of filecoin pool lead to the deviation of centralized storage from the vision of distributed storage?

No – Filecoin creates a decentralized storage network in part by massively decreasing the barrier to entry to becoming a storage provider. Even if there were some large pools, anyone can join the network and provide storage with just a modest hardware purchase, and we expect clients to store their files with many diverse miners.

Also, note that world location matters for mining: many clients will prefer miners in specific regions of the world, so this enables lots of miners to succeed across the world, where there is storage demand.

What do miners have to do to change a committed capacity sector into a "real-data" sector?

We are reusing much of the existing code path for this first iteration. Miners will publish storage deals that they will upgrade the CC sector with, announce to the chain that they are doing an upgrade, and prove to the chain that a new sector has been sealed correctly. We expect to evolve and make this cheaper and more attractive over time after Mainnet.

Why not implement the scheme that the white paper says "miners and clients automatically match orders through order books"?Is it because the LIMITS of TPS ?

There will be off-chain orderbooks and miner marketplaces -- some are in development now from some teams. They will work mostly off-chain, because TPS on chain is not enough for the volume of usage we expect on Filecoin. These orderbooks build on the basic deal-flow on chain. These orderbooks will arrive in their own development trajectory -- most likely around or soon after mainnet launch.

can we confirm the mainnet launch time is on track?

As we said in our roadmap update yesterday (https://filecoin.io/blog/roadmap-update-june-2020/), we’re continuing to make good progress towards mainnet launch, aiming towards the end of our mainnet launch window. However, all dates are still best-effort optimistic estimates - our top priority is to launch a secure and successful network.

For the incentive phase, you said a miner has to execute the full sector life cycle and terminate the sectors. What does "terminating" the sectors mean?

When a CC sector is added to the chain, it can upgrade to a sector with deals, extend its lifetime, or terminate through either faults or voluntary actions. While we don’t expect this to happen very often on Mainnet, a miner may deem it rational to terminate their promise to the network and their clients but accept a penalty for doing so. We want miners to execute the full sector lifecycle to get a flavor of providing long-term and useful storage on Filecoin.

Does the CC sector still need to be sealed before it upgrades to one with real data ?

For the first iteration of the protocol, yes. We have plans to make it cheaper and more economically attractive after Mainnet with no resealing required and other perks.

what if we lost a sector accidentally, is there any way to fix that?

If you lost the data itself, then no, there’s no way to recover that, and you will be slashed for it. If the data itself is recoverable, though (say you just missed a Windowed PoSt), then the Recovery process will let you regain the sector.

jimmylee commented 4 years ago

what data size is the bot gonna send to miners?

Expect ranges from a few kilobytes up to full 32GiB sectors.

5PB big miner incentive will be included or excluded in the 4M incentives?

The mechanisms for the incentive competition are here: https://filecoin.io/blog/announcing-testnet-incentives/

What’s the minimum time period for the storage contract between the provider and the buyer?

The minimum duration for a deal is set in the miner’s ask. There’s also a practical limitation, because sectors have a minimum duration (currently one month).

How are you working to bootstrap the demand side of the marketplace? The Discover program is nice but who is the target market for users and how do you get them

In addition to Filecoin Discover, a number of groups are actively building tools and services to support adoption of the Filecoin network with developers and clients. For example, check out the recordings from our Virtual Community Meetup to see updates about Textile Powergate and Starling Storage: https://filecoin.io/blog/filecoin-virtual-community-meetup-recap/ A number of other programs, like Filecoin Ignite, will also contribute additional demand, tooling, and usage.

Does filecoin reward network or main network line machine need fixed IP

For mainnet, you will need a public IP address, but it doesn’t need to be fixed (just accessible).

jimmylee commented 4 years ago

Does filecoin reward network or main network line machine need fixed IP

For mainnet, you will need a public IP address, but it doesn’t need to be fixed (just accessible).

jimmylee commented 4 years ago

Dumb question: how does someone remove a file from Filecoin?

ZX: yeah dont think this can happen rn - we should spec out the full feature of sector upgrade post mainnet (both actor and proof changes)

Yannis: I get this question pretty much every time I present IPFS. It's important to clarify even more so for filecoin. It's not exactly the same with IPFS though. IPFS is a network protocol stack, filecoin is an application on top of the network.

nonsense: AFAIK you can’t delete a file in IPFS. If I pin content that you uploaded, you can’t make me delete your data. You could however build an app on top of IPFS, that has a notion of ownership, and hide deleted data if the owner (or someone with permission) deletes it, but since there are multiple folks that might have a copy of it at the time you want to delete it, it can no longer be hard-deleted. I imagine it is the same with Filecoin - you’ve sent the data to a miner, you don’t know if they won’t keep it, even if you stop paying them and request for it to be deleted, right?

Yannis: Yes, I know and I totally agree with the way IPFS works. I’m not sure about filecoin though. If it is regarded as a base-layer protocol, then sure, it’s the same as IPFS and applications on top need to take care of removing files. But if it’s regarded as an application itself, it would probably have to provide this control to the user.

Molly: To clarify how we talk about this to the IPFS community - you can delete your data off of IPFS - what you CAN’T do is delete the data that other people host off IPFS. It’s the same as the rest of the internet, just with smarter links to find any copy of the same file. If you’re the only host, you simply stop providing it and everyone who previously fetched it from you can no longer fetch the data anymore. However, anyone that already has a copy, or uploaded the image themselves still has access to it and can reprovide it to the network if you stop. (same as web2 if I’d grabbed your photo from facebook before you deleted it, I could re-host it and provide it to others, and you can’t take it away from me)

angiemaguire commented 4 years ago

June Q&A Summary

When should we expect to get the detailed parameters for Filecoin’s cryptoeconomic constructions?

We are still finalizing our Cryptoecon parameters and they will continue to evolve. We are looking to solidify more final parameters in late July. Let us know if you have more questions on the structural mechanisms themselves.

Can you confirm that the mainnet launch window is still on track?

As we said in our June roadmap update, we’re continuing to make good progress towards mainnet launch, aiming towards the end of our mainnet launch window. However, all dates are still best-effort optimistic estimates - our top priority is to launch a secure and successful network.

Will the hard disk of Filecoin Discover catch up with the incentive competition on July 20 in time?

Filecoin Discover and testnet incentives are not related. Testnet incentives are based on raw byte-power, deal completion, and sector lifecycle participation. Filecoin Discover hard drives, and the verified client mechanism in general, have no impact on incentives.

How likely is the NSE algorithm to come on line later? Is AMD’s configuration the most consistent with the current SDR algorithm?

About NSE: NSE is one of the best candidates for a proof upgrade, and teams are working on implementation. But there are other candidates too, which are promising as well. It may be that another algorithm ends up better than NSE – we don’t know yet. Proof upgrades will arrive after mainnet launch and will coexist.

Yes, AMD may be optimal for SDR, see this for why: https://github.com/filecoin-project/lotus/blob/master/documentation/en/sealing-procs.md

Will the existence of the Filecoin pool lead to the deviation of centralized storage from the vision of distributed storage?

No – Filecoin creates a decentralized storage network in part by massively decreasing the barrier to entry to becoming a storage provider. Even if there were some large pools, anyone can join the network and provide storage with just a modest hardware purchase, and we expect clients to store their files with many diverse miners.

Also, note that world location matters for mining: many clients will prefer miners in specific regions of the world, so this enables lots of miners to succeed across the world, where there is storage demand.

What are the main factors for obtaining orders after Filecoin mainnet launch? Algorithm? Hardware? Is there a difference between Intel and AMD?

To maximise the deals being made with your miner, you’ll need lots of storage, a good network connection, and reasonably good hardware (AMD works much better, see: https://github.com/filecoin-project/lotus/blob/master/documentation/en/sealing-procs.md).

What are the standards and conditions of the verifier, is there a selected institution to verify, can you tell us about this situation?

There will be several different institutions. We don’t have more updates about Verfiers at this time. We will have more around mid July.

Will the 4M Testnet Incentive Program start on 20th of July?

Yes.

What are the changes to the algorithm and logic layer of lotus and go-filecoin before going online?

There will be no changes to “algorithm and logic” before we go live - from here on out, all we are doing is fixing bugs (so please report them!), improving performance (our sync is much faster on the latest Testnet), and improving the UX with new APIs and documentation.

Is there a miner’s KYC certification process, if so how does that work? How will you verify the mining location of miners?

To receive tokens, miners will be required to verify their identity by providing passports or similar identity documents. We may need to request additional information in rare cases.

We’ll use a variety of technical and non-technical mechanisms. They may also be different for different miners. To avoid cheating, we’re not revealing the specific mechanisms until verification begins.

When we verify miners’ locations, we’ll reach out by email and coordinate a time that the miner will be standing by to provide verification. We’ll ask for some specific evidence and require submission within a short time period.

Location verification is not required to participate in either (i) the global leaderboard or (ii) the regional leaderboard for the most competitive region (i.e., the region with the most storage).

We consider the location of the storage and sealing hardware to be the location of the miner.

Please note that miners who attempt to “spoof” their location will be completely ineligible for all rewards.

How will network retrieval of real data be measured and assessed on incentivized testnet?

During the competition, once your miner has > 0 storage power, many bots will begin attempting storage and retrieval deals with your miner. The competition dashboard will display your deal success rate in near-real time. Miners below a certain high threshold will be ineligible to receive rewards.

We plan to run the bots for one to two weeks before the competition to give miners a chance to test their configuration, and will announce when that begins.

Has Filecoin confirmed the use of SDR algorithm? Is there any evidence of malicious construction?

SDR is confirmed for mainnet launch, and we have no evidence of malicious construction. The algorithm is also going through both internal and external security audits.

If you have any information about any potential security problem or malicious construction, reach out to our team at security@filecoin.org.

We bought a lot of hard drives of data through the Discovery project. When will they be shipped to China?

There are a number of details that are still being finalized between the verified deals construction and the associated cryptoecon parameters.

Our aim is to allow these details to finalize before shipping, but given timelines we’re considering enabling teams to take receipt of these drives before the parameters are set.

For the incentive phase, you said a miner has to execute the full sector life cycle and terminate the sectors. What does “terminating” the sectors mean?

When a CC sector is added to the chain, it can upgrade to a sector with deals, extend its lifetime, or terminate through either faults or voluntary actions. While we don’t expect this to happen very often on Mainnet, a miner may deem it rational to terminate their promise to the network and their clients but accept a penalty for doing so. We want miners to execute the full sector lifecycle to get a flavor of providing long-term and useful storage on Filecoin.

Does the CC sector still need to be sealed before it upgrades to one with real data?

For the first iteration of the protocol, yes. We have plans to make it cheaper and more economically attractive after Mainnet with no resealing required and other perks.

What do miners have to do to change a committed capacity sector into a “real-data” sector?

We are reusing much of the existing code path for this first iteration. Miners will publish storage deals that they will upgrade the CC sector with, announce to the chain that they are doing an upgrade, and prove to the chain that a new sector has been sealed correctly. We expect to evolve and make this cheaper and more attractive over time after Mainnet.

How does a committed capacity sector turn into a sector with real client data? Is it automatically covered with real data when there’s a real deal?

Committed Capacity sectors are like empty Uber cars on a platform economy. Miners commit capacity to the network when there is unmet supply and upgrade them to sectors with deals when demand arrives to earn additional revenue. For the first iteration of the protocol, we will reuse much of the existing code path. Miners will publish their storage deals, announce to the chain that they are doing an upgrade, and prove that the upgrade has been done successfully.

If someone could bring many ‘verified clients’ or reputable business data users on board, is there any mechanism for rewarding this activity?

We anticipate that miners will compete for deals from verified clients, and some partnerships could emerge between miners and reputable users.

Is the plan to use SDR for 6 months after mainnet launch, and then switch to NSE (or something else)?

We have other constructions in development, NSE and other options. They will be proposed as network upgrades through a FIP (Filecoin Improvement Proposal) after Mainnet launch. We hope to have at least one of these faster and cheaper constructions online within 6-12mo, but the development timeline depends on a lot of different constraints after mainnet launch. Note that new proofs will coexist with SDR, so a new cheaper proof will be optional to miners.

Are there any updates regarding the security research fellowship? Or any new critical bugs that have been found/submitted?

In the next couple of weeks, there will be a website to view bug submissions, security research fellows, and submit new reports. We also plan to introduce a public bounty program similar to Ethereum’s.

Lotus or Go-Filecoin, which is better for miners?

Lotus is our reference implementation, and getting more developer attention right now.

What is the mechanism for verified clients? How does one apply to be a verified client?

Check out this presentation for the basics of Verified Clients and Verifiers - We don’t have more updates about Verfiers at this time. We will update more later in July.

At what frequency will the bot try to make deals with miners? Will it depend on the hardware setup?

The frequency will increase alongside the miner’s rate of adding committed storage. It will be somewhat randomized to simulate real-world behavior.

Why not implement the scheme that the white paper says “miners and customers automatically match orders through order books”?Is it because the LIMITS of TPS?

There will be off-chain orderbooks and miner marketplaces – some are in development now from some teams. They will work mostly off-chain, because TPS on chain is not enough for the volume of usage we expect on Filecoin. These orderbooks build on the basic deal-flow on chain. These orderbooks will arrive in their own development trajectory – most likely around or soon after mainnet launch.

Will it be cheaper to store data on Filecoin than other centralized cloud services? If yes, when it is anticipated to occur?

Filecoin creates a hyper-competitive market for data storage – there will be many miners offering many prices, rather than one fixed price on the network. We expect Filecoin’s permissionless model and low barriers to entry to result in some very efficient operations and low-priced storage, but it’s impossible to say what exact prices will be until the network is live.

Will I need a fixed IP address to participate in the incentivized testnet, or in mainnet?

For mainnet, you will need a public IP address, but it doesn’t need to be fixed (just accessible).

What would be the potential loss from changes of algorithms after mainnet launch if miners had invested heavily in hardwares?

We anticipate two kinds of proof upgrades:

Optional Efficiency Upgrades, which are just to add new proof constructions that are cheaper or faster Mandatory Security Upgrades, where we discover a problem with an algorithm and have to force the network to move to a new algorithm or a different set of parameters. For (1) Efficiency Upgrades, we expect these upgrades to be optional and coexist and be used only if miners and clients choose to make use of them. We expect 0, 1 or 2 of these per year.

For (2) Mandatory Security Upgrades, these will come with some sort of transition plan attempting to minimize cost to the network. We don’t expect these, but they may happen.

How are you working to bootstrap the demand side of the marketplace? The Discover program is nice but who is the target market for users and how do you get them?

In addition to Filecoin Discover, a number of groups are actively building tools and services to support adoption of the Filecoin network with developers and clients. For example, check out the recordings from our Virtual Community Meetup to see updates about Textile Powergate and Starling Storage. A number of other programs, like Filecoin Ignite, will also contribute additional demand, tooling, and usage.

Will the total of 4 million FIL be split between miners? How much will be actually distributed to miners?

You can read about the method for distributing Testnet Incentive rewards here. It’s up to miners how much FIL will actually be distributed! Add more storage to unlock more rewards.

How big will the deals be that the bot tries to make with miners during Incentivized Testnet?

Expect ranges from a few kilobytes up to full 32GiB sectors.

What is your recommendation on the right hardware?

While the Filecoin team does not recommend any specific hardware configuration, we did share some setups (https://filecoin.io/blog/announcing-testnet-incentives/#hardware) we’ve used for various types of testing. However, it is overwhelmingly likely that there are more efficient setups, and we strongly encourage miners to test and experiment to find the best combinations.

What happens to the existing content on IPFS once Filecoin launches? What if nodes continue to host content for free and undermine the Filecoin incentive layer?

IPFS will continue to exist as it is, enhanced with Filecoin nodes. There are many use cases that require no financial incentive. Think of it like IPFS is HTTP and Filecoin is a storage cloud like S3 – only a fraction of IPFS content will be there.

People with unused storage who want to earn monetary rewards, should pledge that storage to Filecoin, and clients who want guaranteed storage should store that data with Filecoin miners.

What if we lost a sector accidentally, is there any way to fix that?

If you lost the data itself, then no, there’s no way to recover that, and you will be slashed for it. If the data itself is recoverable, though (say you just missed a Windowed PoSt), then the Recovery process will let you regain the sector.

How will the verified datasets be verified in the testnet incentive competition?

They will not. Verified clients are not part of the testnet incentive competition.

If the order book is off chain who is going to host it? Wouldn’t that fragment the marketplace and liquidity into lots of little venues?

There will be a small number of different, competing orderbook protocols, similar to how there are different orderbooks for DeFi on Ethereum (eg 0x and others). We think this kind of protocol competition is a good thing that will allow innovation in the design space. We are very excited about what some development teams are working on and can’t wait to see them in action after mainnet launches. If you have some ideas for this, we recommend you try building them!

Will the 5PB Big miner incentive be part of the 4M incentives for Incentivized Testnet?

The mechanisms for the incentive competition are here.

What’s the minimum time period for the storage contract between the provider and the buyer?

The minimum duration for a deal is set in the miner’s ask. There’s also a practical limitation, because sectors have a minimum duration (currently one month).

jimmylee commented 4 years ago

Why are we using the tropical year to compute reward + baseline supply? The definition of a year for these purposes is going to be arbitrary no matter what we do and the length of a tropical year changes over time.

My real concern is: now everybody needs to agree on this magic number, and it's arbitrary anyways (e.g., nanoseconds in a tropical year in year 2000). Furthermore, I'm not even sure how precise these measurements are.

This is my doing. I originally got the idea of using the tropical year to pin down what is really meant by a “year” from ISO 80000-3. But yes, perhaps this made the situation worse rather than better:

These numbers vary by up to 30 parts per billion. But, the naive calculation (3652460*60) is off by 663,119 parts per billion.

Anyway, all conforming implementations will have to agree on a ton of magic numbers, like the coefficients in our approximations of exp and ln. It’s not even much of a problem if we’re internally inconsistent in which seconds_per_year numbers are used for different mechanisms, since they are used as inputs to determine coefficients like “lambda” that everyone has to agree on to 128-bit precision

When I first made this call I thought rewards were going to be pretty precise - that we’d try to be only a few FIL off from 2 billion in the asymptotic limit, and maintain similar precision during the reward schedule. It’s now pretty clear that we can’t get anywhere near this level of precision for rewards (because minting is stochastic, and even the expected value might be off by 10% or more), so 31,536,000 is probably just fine

jimmylee commented 4 years ago

knowing the randomness in advance, one can fake a precommit. there are two types of attack: Fork-and-Precommit and Precommit-and-fork.

PreCommit-and-Fork: The adversary could have many precommits, wait for the randomness and chose the fork with the winning precommit

Fork-and-Precommit: The adversary waits for the randomness, generates precommits, forks the past to put the precommit at the right block.

In both cases, the ProveCommit will pass since the miner will have generated PreCommit in order to pass this specific challenge

They will not know the future post challenges, but they can fake the data behind CommR from ProveCommit onwards, and it could be all zeroes (we call this fake porep

jimmylee commented 4 years ago

is there any work looking at a filecoin based equivalent to amazon glacier? i.e. cheaper long-lived storage, with high latency? e.g. archive tape is very cheap, so having a miner polled once a month or whatever to see if the data is still there could be an approach

Thats a really great question actually, The current proofs require more 'warm' storage to verify data, but theres definitely a lot of tradeoffs that could be made that could change the PoSt process to (for example) only require checking the data itself once a month (I realize, one read a month is still heavy for something glacier-like).

The design space here is pretty big though, i think the main consideration around this is in figuring out the parameters for what security means in this context

the reason that PoSt requires such frequent challenges is to ensure that miners arent storing fake data and regenerating it on the fly

If there isnt an incentive for storing fake data in this context (for example, if this filecoin iceberg data doesnt count towards your power) then we can definitely require much much less checking of the data

For example, we could have a much cheaper PoRep and PoSt process for sectors that don't count towards miner power

these sorts of sectors could still have deals in them, and earn revenue that way, but would not get any block reward revenue (so, no block reward subsidizing the price of that storage)

jimmylee commented 4 years ago

宋江

You are avoiding the most critical point in my question. Let me elaborate further.

Please notice that now you have the right to produce as many disks you want, you also have the right to sell these disks to any miner at any price, and you even have the right to authorize anyone to produce such disks.

There are no restrictions on these rights. You don't need to inform the community in advance, nor you need to vote in the community. You can decide what to store in priority in the network according to your own preferences, instead of allowing the community and users to make their own choice.

Why the data you suppose verified is verified? Why the producer you authorized can produce such "verified" data? Why can you decide what kind of content should be stored in priority in such a decentralized network? Now the whole network is like miners all over the world are serving to accept official deals and store official data. It is a decentralized official net disk.

You thought your team spends a lot of time and money to produce these disks. So, as a decentralized project, can the selection of disk producers and content to be voted by the community? I believe countless people in this channel are willing to help you guys produce such disks, regardless of profit.

Jeromy:

Ah, The question is of governance. So this is an interesting one for sure. I assume that, given your detailed questions, you have taken the time to familiarize yourself with the code involved here, and what verified data actually means on chain (and if you havent, then shame, you're asking questions in bad faith). For the readers of this exchange who have not, i'll elaborate:

Any deal can be marked as 'verified' by a client when they propose it to a miner, and if that client has enough available 'verified client quota' for that deal, the deal itself will count for 10x the power of any other sector space. The verified client quota is tracked in the VerifiedRegistryActor. This actor has two layers of governance, the top layer is a multisig that will be held by a fairly large number of members from across the ecosystem. These will be groups like the Filecoin foundation, a representative from protocol labs, and hopefully other reputable groups in the ecosystem (I for one would love to have the Ethereum Foundation be one of these keyholders). The 'root key' as this top layer is called, can only do one thing, and that is grant 'data capacity' to the next layer called 'Verifiers'. This data cap is a fixed amount of verified data (measured in bytes) that this verifier can now give out. Now, who will be a verifier? The idea is that any group who wants to build on top of filecoin, and have their users store data in filecoin, will be able to easily gain verifier status and datacap. Groups like textile, fleek, slate, and so on will be granted verifier datacap, and then from there, will be able to grant some of their data cap to their users. The Filecoin Discover program is actually just a client here, and will be requesting data cap for each of its drives from a Verifier, who in turn got its data cap allocation from the root governance multisig. So, Filecoin Discover can't actually just print as many drives as they want.

Now, This all leads up to a key point that I think a lot of people miss: Getting a verified client datacap for any of the data you want to store on Filecoin should be very easy. Anyone who wants it can get some datacap to store any of their data. .The only thing that won't be able to get datacap is miners who want to store garbage data in order to boost their power. The whole point of Filecoin is to store real data. The consensus system is not a useless proof of work like Bitcoin, but a useful proof of work (storage). The data you store to participate in Filecoin should have some real value to the world, and you shouldnt be just filling your disks with nothing just to try and scrape out some block reward. Our goal is that almost all the power in the network should come from 'verified client' deals, and the total power contributed by 'committed capacity' sectors (Sectors with no deals) should be very low in comparison. This means that miners who don't plan on accepting deals and storing real data will be kinda screwed. Every disk of theirs will only give them 1/10th the power of every disk of a miner storing real data.

jimmylee commented 4 years ago

The last question is mostly concerned by all of the miners.

When the mainnet is launched, as a miner, do I need to spend a lot of money to buy FIL from the official team or some early investors, as the Initial Pledge Collateral of sectors in the mining process? How much FIL do I need to buy? What price will it cost? Through exchanges or any other ways? If I have a lot of hardware, but I don't have enough money to buy enough FIL, does it mean that I can't participate in the mining?

Is the Initial Pledge Collateral, a rule that is not friendly to miners, to prevent the loss of stored data, or the result of the official team considering their own interests and the interests of early investors? Why can't the problem of data loss to be solved only by post-collateral?

At the end of the 6th and 12th months after the mainnet launches, what will the FIL's circulation be?

This is another fun question, Bootstrapping.

Let's start by discussing why pledge is necessary, discuss how much pledge is (and why), and then talk through how early miners will acquire tokens for use in pledge.

Miners get power for having sectors committed, this power gives them some amount of control over the network. Without going into too much depth around consensus security and economic models for attacking the chain vs payoff, to maintain security of an open participation network like this, having a certain percentage of control over the network must cost a certain amount, otherwise it becomes too easy for an attacker to come in and take over. For filecoin, purchasing disks and sealing equipment makes up part of that cost, but we've done out the math here a number of different ways, and we can only rely on the bare cost of drives and sealing equipment to secure the network once the network gets to some very large sizes (IIRC, pledge can be close to zero once the network gets above a Zetabyte). So, until the network gets that big, pledge collateral has to make up for the remainder of that economic security.

So now, how much pledge do you need? Well, it depends on how big the network is, and how much circulating Filecoin there is in the network. The cost of pledge is priced based on your expected block reward for a given sector over some amount of time. Currently, we say that the pledge you have to put up is priced equal to what we expect you to earn in block rewards from that sector in 20 days. And to be very clear: These funds are just locked up, they are not paid to the system. You get them back after the sector expires.

Now, early in the network, every sector has a very high expected reward, compared to any time later in the network once the total power is higher. This means that the initial pledge values will be much higher up front, in exchange for a much higher potential reward. For the space race, we have capped this number at 1 FIL per 32GB sector. We're going to observe how this goes, and determine whether or not to keep the cap for mainnet (I'm personally in favor of it). But in any case, at the start of the network, this means you will need up to 1 FIL per sector as pledge. So, if you want to pledge 30,000 sectors (about a petabyte) you'll have to pledge up to 30,000 FIL (note i say 'up to', as this number assumes nobody else is committing sectors and increasing the total network power). So this is a lot of Filecoin, and its likely that this will limit the rate of you onboarding storage. But I tend to think thats fine, as I don't think that you'll be able to acquire that much data through deals that quickly early on in the network, and i'm not super interested in optimizing for people who just want to store empty sectors (Remember: Filecoin is for real data).

So, where will you get that initial Filecoin from? Well, first off, space race. We're running this competition, and giving out FIL to help seed the early network with pledge collateral. But this isnt nearly the entirety of what we expect people to demand, exchanges (as you mention) will be a good place to purchase filecoin to be used as pledge collateral, I'm sure enough investors will want to sell their tokens to you that there will be sufficient supply (early in the network, around 500k tokens per day unlock in investor accounts, though a large portion of that won't be moved due to other lockups). On top of that, we are doing some modeling and looking into different ways in which we might make this easier on people, our cryptoecon team is working on a big blog post that will explain this in a lot more detail.

do I need to spend a lot of money to buy FIL from the official team or some early investors

PL will not be selling any of their Filecoin early on, so the liquidity on the market will just be from early investors as their investments vest (note: all investor funds are locked up for at least 6 months, linearly vesting)

At the end of the 6th and 12th months after the mainnet launches, what will the FIL's circulation be?

https://github.com/filecoin-project/lotus/blob/master/chain/stmgr/stmgr.go#L1068

jimmylee commented 3 years ago

Why does Filecoin mining work best on AMD?

Currently, Filecoin's Proof of Replication (PoRep) prefers to be run on AMD processors. More accurately, it runs much much slower on Intel CPUs (it runs competitively fast on some ARM processors, like the ones in newer Samsung phones, but they lack the RAM to seal the larger sector sizes). The main reason that we see this benefit on AMD processors is due to their implementation of the SHA hardware instructions. Now, why do we use the SHA instruction? PoRep security assumptions

Our research team has two different models for the security of Proofs of Replication. These are the Latency Assumption, and the Cost Assumption. These assumptions are arguments for why an attacker cannot pull off a 'regeneration attack'. That is, the attacker cannot seal and commit random data (generated by a function), delete it, and then reseal it on the fly to respond to PoSt challenges, without actually storing the data for that time period.

Cost Assumptions

The cost assumption states that the real money cost (hardware, electricity, etc) of generating a sector is higher than the real money cost of simply storing it on disks. NSE is a new PoRep our research team is working on that is based on the cost assumption, and is thus able to be very parallelizable (In comparison to schemes based on a latency assumption, as will be explained next). However, cost assumptions vary greatly with available and hypothetical hardware. For example, someone making an ASIC for NSE could break the cost assumption by lowering the cost of sealing too much. This is one of our main hesitations around shipping NSE.

Latency Assumptions

A Proof of Replication that is secure under a latency assumption is secure because an attacker cannot regenerate the data in time. We use this assumption for SDR, where we assume that an attacker cannot regenerate enough of a sector fast enough to respond to a PoSt. The way we achieve this is through the use of depth-robust graphs. Without going into too much detail, depth-robust graphs guarantee a minimum number of serial operations to compute an encoding based on the graph. Each edge in the graph represents an operation we need to perform. We thus have a guarantee that someone has to perform some operation N times in a row in order to compute the encoding. That means that the computation of the encoding must take at least as long as N times the fastest someone can do that operation.

Now, to make this secure, we need to choose an operation that can't be made much faster. There are many potential candidates here, depending on what hardware you want to require. We opted not to require ASICs in order to mine Filecoin, so that limits our choices severely. We have to look at what operations CPUs are really good at. One candidate was AES encryption, which also has hardware instructions. However, the difference between the performance of CPU AES instructions, and the hypothetical 'best' performance you get was still too great. This gap is generally called 'Amax', an attacker's maximum advantage. The higher the Amax of an algorithm we choose, the more expensive the overall process has to become in order to bound how fast the attacker could do it. As we were doing our research, we noticed that AMD shipped their new processors with a builtin SHA function, and we looked into how fast someone could possibly compute a SHA hash. We found that AMD's implementation is only around 3 times slower than anyone could reasonably do (given estimates by the hardware engineers at Supranational ). This is incredibly impressive for something you can get in consumer hardware. With this, we were able to make SDR sealing reasonably performant for people with off-the-shelf hardware.

Super Optimized CPUs

Given all of the above, with a latency assumption that we're basing our proofs on right now, you need a processor that can do iterated SHA hashes really fast. As mentioned earlier, this isn't just AMD processors, but many ARM processors also have support for this. Hopefully, new Intel processors also follow suit. But for now, Filecoin works best on AMD processors.