-
Notifications
You must be signed in to change notification settings - Fork 526
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
Iris Milestone 2 Delivery #371
Conversation
Thanks for the delivery. We will look into it as soon as possible. |
Good day @driemworks! My name is Ashley & I've started working on your evaluation today! I want to let you know that this is my third week here at W3F and I'm relatively new to the Polkadot eco, so I really appreciate your great documentation. I've been studying your grant application (it's very thorough & clear, thank you!), and I noticed the images for Also, I plan to get started on testing very soon because I tend to have a lot of beginner questions. If you'd like to help move the process along, feel free to give me any/all beginner tips for understanding & testing. Thank you and hope you have a great day! |
I think you might be looking at an older version of the proposal. I submitted an amendment that was merged a couple weeks ago where those images should have been removed. For clarity, here's the PR for the original submission w3f/Grants-Program#657 and here's the amendment which doesn't contain those images: w3f/Grants-Program#812 (here you can see the removal of those images: w3f/Grants-Program@cf56030). There are two broken images in the "early work" section that I just noticed. I'll fix those, but it shouldn't impact your testing. As for any tips, I would recommend starting with taking a look at the deliverables for milestone 1 here: #327. The testing for the second delivery is a bit more intensive than the first, so it could be a good idea to go through the testing scenarios for the first delivery to get started since it should give you a decent idea on getting it all set up (if you look at the google sheet attached to the testing guide, it's outlined in the first tab). You can also take a look at this medium publication which has a quick overview from milestone1 and a quick demo video: https://medium.com/iridium/iris-a-next-gen-decentralized-storage-network-a53562c27de2. There's a demo video for milestone 2 also, attached to the testing guide mentioned in this submission. I'd be happy to hop on a call or chat if I can clarify anything further. |
@driemworks Thank you SO much for this message so I could study the amendments. I super appreciate the info on how I should study & test. I studied a while longer and I think I'm really starting to understand what you're doing here. By the way, thank you so much for offering to hop on a call. This is the first substrate-based evaluation I'm doing and like I said, I'm very new to the Polkadot eco, sorry. Am I correct in this thinking so far?: If I understand correctly, very simplistically, there's the private IPFS Iris blockchain that manages access to secure offchain content and also there are parachains that know how to interact with the Iris blockchain. You have two pallets: Iris-assets and Iris-session & these are based off Parity asset and session pallets. ... and devs can use your pallets to build Iris-compatible parachains? I haven't finished reading all your documentation yet, but tomorrow I plan next to quickly read through the M1 deliverables, and then try to get some M2 tests running, because I think I'm starting to understand. I do plan to read all your docs, but I at least want to keep the process moving for you since I may have lots of Qs. Expect an update from me tomorrow, thanks! |
The original idea in the initial proposal was that parachains would have to include a pallet in their runtime to be "iris compatible", but that was changed in the amendment. We modified the design so that there wouldn't need to be any explicit dependencies between parachains if they want to leverage iris. Moving forward, parachains would be compatible as long as they're connected to the same relay chain as iris (by using XCM). The third milestone will deliver a chain extension and a suite of contracts, which should let contracts on parachains interact with iris fairly smoothly. Essentially, there are two modules to iris (currently), the 'iris-assets' layer that acts as a data ownership and access management layer (where data ownership is synonymous with asset class ownership, and data access synonymous with holding an asset minted from the class), and 'iris-session' which uses the session pallet to hook into the validator set to both make the validator set dynamic (controlled by the network root) and to incentivize validator nodes to provide storage to the network (i.e. ipfs pin) using a rudimentary reward points system (this should give you a good idea on what I mean by that: https://iridium-labs.github.io/pallets.html). M1 delivered the iris-assets module, and this delivery focuses on the iris-session module. |
Good day @driemworks! Thanks so much for that explanation. I had to ask my teammates some questions this morning since this is my first time testing with Docker. I am working through your testing guide slowly. It might be nice to hop on a call in a few hours or later if I can't figure it out myself. Thanks!! |
I hope all is going smoothly @cruikshankss. I can be available anytime tomorrow for a call if you want! You can also reach me on discord: driemworks#1849 |
Hi @driemworks! I was out of office on Friday, but thanks so much for providing your discord. I plan to ping you there as well regarding this update. I was able to get your Docker images running and was able to get your Milestone 1 branch compiled, but I wasn't able to get your Milestone 2 branch compiled, and neither was my boss able to. (details below) Looking ahead to test the
The docs have multiple different install options; I'm not sure which type of IPFS node to install so please let me know. 😎 This is all so fun for me to learn and I'm really enjoying testing your project! And here are the compiler errors/warnings on the Iris node: Here's a screenshot from my boss's terminal: And here's terminal output of the branch I was on, the command I ran and my errors & warnings:
|
@driemworks I looked it up and Discord is actually having a major outage so let's continue convo here. I've set up a go-ipfs node locally. Attempting now to get the ui running. |
I've updated the tests for the iris-session pallet, they are now passing as intended. Additionally, the errors that David encountered are resolved as well. However, after more thoroughly testing the repo I have noticed some issues with existing tests that are seemingly inherited from the rs-ipfs/sustrate repository (iris is a fork of this for the time being), specifically in client/offchain/src/api.rs and client/service/src/task_manager/mod.rs. The way I see it, we have two options. Either:
I would understand if it's preferred that they be fixed now (even though they were already existing and unchanged as part of this delivery), however, I think it makes more sense to wait. My repository is not in sync with the substrate master currently. I attempted to upgrade my fork as part of this milestone but rust-ipfs relies on an older version of libp2p (0.39.1) that is incompatible with the current substrate master (0.40.0). There is an ongoing effort to upgrade the libp2p version of rust-ipfs which is currently being reviewed rs-ipfs/rust-ipfs#499. Once that's completed and merged, I can upgrade to the latest substrate master. Option 1 could delay this milestone delivery even further as well as lead to potential throwaway work, as the substrate master has seen significant changes since the rs-ipfs/substrate fork was created (almost a year out of sync). Either way, I'll start looking into making the necessary changes to fix these issues. Please let me know if this should be included in this delivery or if it can be postponed to the next one. |
@driemworks I am sorry you are dealing with blocks due to versioning. Once again, bravo to you for innovating in a fast-moving ecosystem. @Noc2, May I please request your expertise in answering the Iris team's question, ^above. Thank you. |
@semuelle Hello Sebastian, since you evaluated their milestone 1, may I also request your expertise on the most recent question from the Iris team (above)? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @driemworks. Thanks for bringing this up. In general, feel free to create an amendment and update the contract accordingly. It’s basically up to you. Either potentially reducing the scope and you can explain as part of the PR, why this is the case or you could also increase the scope/budget and add the additional time, which you require to fix it. The grants committee is usually quite flexible regarding these changes as long as they are reasonable. All that said, are you aware of the following repo: https://github.com/DanHenton/pocket-substrate/tree/ipfs-ocw Maybe that is useful for you.
@Noc2 @cruikshankss Unfortuantely, it seems the pocket-substrate repo is suffering from the same issue. However, good news: I was able to fix the failing tests without any major rework of the ipfs integration into the runtime. I've committed the necessary changes to the iris_milestone_2 branch of my repo. I've also pushed the latest docker build, which includes the changes, to the docker hub. We should be good to move forward with testing without any change of scope for now. |
@cruikshankss Thank you for your work to push those fixes. My team and I attempted to compile & run your fixed branch with We used these commands:
I also tried:
For reference, to get back to the stable version, we use these commands:
I can provide more error logs/information if you need, because I am hoping you could provide me specific commands to run for the rust toolchain so I can run your unit tests. It's understandable there are so many steps to this cutting-edge invention you're building and I feel bad asking for more instructions since you've so carefully explained so many steps already, in multiple ways, video, two great testing guides, docs page, and filled in gaps for me/sped things up for me. Thanks for understanding and helping! |
Just to reiterate/share what we discussed on discord: |
Hi @driemworks, I've accepted this milestone and forwarded your invoice. Wishing you continued success with Iris! |
Hi again @driemworks, Actually, there is a bookkeeping error in your invoice, where the amount is correct, but it says "Milestone 1" instead of "Milestone 2". Would you please submit another invoice through our form? Thank you! |
@driemworks The invoice form actually does seem to be down right now. I've investigated into it and I plan to let you know when it's back up. Sorry for the technical issues and thank you for your patience. |
@driemworks Would you please email me your invoice at [email protected] while we work on fixing the form? |
Milestone Delivery Checklist
Link to the application pull request: w3f/Grants-Program#657
Amendment: w3f/Grants-Program#812