Skip to content
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

General Discussion #1

Open
AliabbasMerchant opened this issue Feb 24, 2019 · 6 comments
Open

General Discussion #1

AliabbasMerchant opened this issue Feb 24, 2019 · 6 comments

Comments

@AliabbasMerchant
Copy link
Owner

I am working using a bottom-up approach, and am referring to the JS implementation of Bitswap.

I have implemented varint_decode, IPFSBlock and multihashing, as per their JS equivalents.
Also, I have implemented wantlist and message.

I will write the documentation later on.

Travis and tox have been set up.
As of now, all tests are working fine.

All feedback is welcome.

Tagging @Alexander255

@ntninja
Copy link

ntninja commented Jun 28, 2019

Some comments regarding the mentioned dependencies in research/js_bitswap_interface.txt:

async                   ✔️ Use the built-in `asyncio` module (Python 3.5+)
bignum                  ✔️ builtin (use the standard `int` type of Python 3.x)
cids                    ✔️ py-cid (Module is ready for prime-time)
debug                   ✔️ Use the built-in `logging` module for the time being
ipfs-block              ✔️ Trivial, add as part of `py-ipfs-bitswap` or extract to utility library if needed by several modules
just-debounce-it        ✖️ Trivial, add as part of `py-ipfs-bitswap` or extract to utility library if needed by several modules
lodash.isequalwith      ✔️ Use Python's inbuilt `==` operator 😉 – ensure all relevant classes implement `__eq__`
moving-average          ~ Use https://pypi.org/project/average/ – It will need a patch to make numpy integration optional through
multicodec              ✔️ py-multicodec
multihashing-async      ~ py-multihash (+ Extensions for generating actual hash values)
protons                 ✔️ protobuf
pull-length-prefixed    ✖️ Probably better suited as an extension for the `varint` library
pull-stream             ✔️ Not needed. Use asyncio streams (https://docs.python.org/3/library/asyncio-stream.html) instead
varint-decoder          ~ varint

✔️ means “Already done, no further work required”
 ~  means “Available, but may need further work”
✖️ means “Not done yet”

@ntninja
Copy link

ntninja commented Jun 28, 2019

I've left a bunch of comments on the commits and source code. All in all, I must say this looks surprisingly good already. 👍

@AliabbasMerchant
Copy link
Owner Author

@Alexander255 Thanks a lot for your feedback.
I have made a few config and test changes (based on your advice) in the latest commit.
pytest is awesome! 🎊 ❤️
Everything is working well. Even the codestyle tests 🎉

@ntninja
Copy link

ntninja commented Jan 31, 2020

@AliabbasMerchant: @swixx said you may start working on this repo again on this weekend. Is there anything I can help? With persistence looking better every week, bitswap is the next important project after all and I'd like to help if I can.

@AliabbasMerchant
Copy link
Owner Author

@Alexander255 @swixx, yes.
I was going through the working of bitswap yesterday, and am planning the roadmap and restarting work today.
As far as unit tests are considered, I am planning to follow test-driven development from now onward.
I am not too familiar with integration tests (and mocks), and would highly appreciate any help in that.

@AliabbasMerchant
Copy link
Owner Author

AliabbasMerchant commented Feb 2, 2020

@Alexander255 @swixx
I have made a Roadmap.md. Please refer to my commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants