-
Notifications
You must be signed in to change notification settings - Fork 93
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
Minutes Development Meeting #0 1/11/2015 #20
Comments
some more links for libp2p: |
i strongly recommend following the module structure we have in go-ipfs and we'll have in js-ipfs. it will make it way easier for people to move between codebases, to translate swaths of functionality, and to identify problems and to fix them even if not native in that language. |
(that said if you want to experiment with something new, go for it. you should still follow all the specs though, including the fs-repo spec) |
that jerk @jbenet needs to write more specs. |
@jbenet That's pretty much the conclusion we came to. We basically decided to build a python-libp2p first and then build each service on top of it in a modular way. We'll probably be asking a lot of questions about the libp2p spec... |
perfect! On Sun, Nov 1, 2015 at 10:17 PM, Andrew Stocker [email protected]
|
I am going to build a "sprint" todo (more of a jog than a sprint...) then close this issue. Right now our big issue (as it allways is in python) is GIL. But @whyrusleeping pointed out a python 3.5 library that can help with that. |
I as OK top completly drop python 2 compatibility, but using async/await means dropping 3.1, 3.2, 3.3, and 3.4 compatibility. I like a lot async and await, but isn't being compatible with Python 3.5 a bit restrictive ? |
Also I'm not sur the GIL will be a problem for us, we're not trying to eat 100% of each CPU cores. Instead, we'll probably spead a lot of time waiting for the network. |
Why |
@JulienPalard This is something we argued about for a while. It is my opinion that we should just stick with a single process with coroutines rather than do any multiprocessing. It looks like |
Downloading a large file didn't mean a single, huge, blocking On the other hand, using another thread to fetch the file won't directly solve the "this file is huge, the process is blocked", I mean, the main process will not be blocked, but what about the second one being "stuck downloading the huge file", suspending every network request from the main thread. Finally, according to the asyncio documentation it already works on non-blocking file descriptors, so we don't have a problem here, as far as I can see. |
I'm sorry I missed the dev meeting, here's my take:
|
I also missed the meeting, but can someone expose the pro/cons for |
@JulienPalard |
@amstocker Got it that it uses a separate thread / process, but I'm not convinced too we need it: How inter-process communication does cost less than no-interprocess-communication ? As long as we're doing asynchronous reads / writes in the network (what asyncio does), we're OK. On the other hand, So I'm +1 for |
I'm going to -1 for |
@JulienPalard Agreed. I also think that if we really need to, we can implement similar functionality fairly easily using asyncio. |
Compatibility Target 0.4 go-ipfs
Start with implementing libp2p: https://github.com/ipfs/specs/blob/master/protocol/network/6-interfaces.md#63-swarm
The text was updated successfully, but these errors were encountered: