-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DOSsing S3 with GetSize calls even with bloom filter #180
Comments
It looks like this will fix it: ipfs/go-ipfs-blockstore#77 |
Thanks for putting up ipfs/go-ipfs-blockstore#78. Have you tried running it, does it help? |
No, I haven't tried building and running it in ipfs. We don't have a way to run a non release version on our infrastructure at the moment. |
If it's incorporated into a pre-release version and I figure out how to build the S3plugin again with the latest then I can try that on our test infrastructure. |
Are you building the plugin in-tree or out-of-tree? If it's in-tree then doing a build from a branch of go-ipfs should be pretty straight forward. Out of tree might be a pain though. |
So far we've done it out of tree (I assume that means a stand-alone build of go-ds-s3 as a plugin). |
If I build ipfs locally, how do I ensure the go.mod points to the correct go-ipfs-blockstore repo/version? Just edit it? |
Yep, you can also use go mod replace directives (https://golang.org/ref/mod#go-mod-file-replace) on top level binaries (replace directives in libraries aren't utilized in things that import them). I also mistyped (sorry), the thing that will tend to make your life super easy (at least for testing) is just deploying a single binary using preloaded-plugins https://github.com/ipfs/go-ipfs/blob/master/docs/plugins.md#preloaded-plugins. |
I've tried adding this line to go-ipfs/go.mod, and added the tag to the fork of blockstore
But make build fails with
But running that command doesn't fix it. I don't normally work in Go, so sorry if these are trivial problems. |
@ianopolous no worries. You need to run Note: you don't need to tag the release in your repo if you don't need to you can just drop in the git commit hash. |
I put up a branch based of off v0 you can you in ipfs/go-ipfs-blockstore#79. This should work Hopefully ipfs/kubo#6815 will be resolved by go-ipfs v0.10.0 and we can put this multiple blockstore version nonsense behind us 🙏. |
Thank you, I've got ipfs building now. Trying to build this plugin is failing (I normally build against ipfs releases):
This is on master of this repo. I'll try not using a replace directive in go-ipfs.. |
Yep that fixes it. |
I've tried to test it, but the rebuilt plugin won't load with the locally built version of ipfs (from the release-v0.9.0 branch):
I've hit this error before. I'll try and find the fix. |
Last time it was a difference in the goflags, but that doesn't seem to be the current cause? #63 |
Our S3 based ipfs instances have been flooding S3 with requests for GetSize requests. We're seeing a constant 5Mb/s of requests to S3 whilst we are not using it. It seemed to start around August 21st 2020. The only correlated event I can think of that may be significant is the filecoin space race launch. The log looks like:
We have the bloom filter configured with:
The S3 bucket in question has ~ 900k blocks in it. The S3 service rate limits us to 750 req/s/IP address.
My understanding is incoming requests will be served even before the bloom filter is built on startup. Is it possible that this is flooding S3 and preventing the bloom filter from being built at all, and thus the flood continues? Is there any other way to stop this?
The text was updated successfully, but these errors were encountered: