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

UpLink proposal #424

Merged
merged 1 commit into from May 27, 2021
Merged

UpLink proposal #424

merged 1 commit into from May 27, 2021

Conversation

andre-francisco
Copy link
Contributor

Grant Application Checklist

  • The application template has been copied, renamed ( project_name.md) and updated.
  • A BTC or Ethereum (DAI) address for the payment of the milestones is provided inside the application.
  • I have read and acknowledged the Terms and Conditions.
  • The software delivered for this grant will be released under an open-source license specified in the application.
  • The total funding amount of the project is below USD $30k for initial grant applications and $100k for follow-up grants.
  • The initial PR contains only one commit (squash if needed before submitting your PR).
  • The grant will only be announced once the first milestone has been accepted.

@andre-francisco
Copy link
Contributor Author

Hi, all,

One quick note about this PR: there was a similar PR before, but the reviews were so extensive that we decided to open a new one. The old PR does not really contain any necessary information, but it feels better to clarify that and avoid any further confusion. Thank you.

@alxs
Copy link
Contributor

alxs commented May 25, 2021

Thanks for the effort you've put into this @andre-francisco. You're right, this was very well explained and easier to understand. I only have these last remarks:

  • I still wonder why the Android App is the first milestone, since if I understand correctly it would depend on deliverables from later milestones? You'd usually structure the milestones such that they can be delivered in order.
  • Why is the price of M2 so much higher than all the others? I think the committee might be a bit taken aback by this, especially given that its description is more scarce than that of the other milestones. I understand that it includes research into Substrate (which, also, we usually unfortunately don't fund), but even with that I have a hard time justifying the price given the three features it provides. Could you potentially reduce the price or break down/expand on your cost estimate?
  • And lastly, could you provide an estimate on the duration of each milestone in terms of weeks/months, so that there is a tentative deadline for each of them?

@andre-francisco
Copy link
Contributor Author

@alxs

Thank you for your feedback, it makes a lot of sense.

I reordered the milestones and included a table with the order of the deliveries, I think this way it should be crystal clear, both for order and duration. Also, the Communication Protocol (which is now M1) was so expensive mostly because I was playing on the safe side with respect to the security assessment; those things are usually hard to predict because you don't know what you'll find in advance, but perhaps my hesitations were exaggerated; I've reduced the total cost.

Anything else you think I should do? Your feedback is super valuable, thank you, once again!

@alxs
Copy link
Contributor

alxs commented May 25, 2021

Looks good to me! The order of milestones 1 and 2 is not the same as in the table, I don't think this was intended? I'll share the application with the rest of the team.

@alxs alxs added the ready for review The project is ready to be reviewed by the committee members. label May 25, 2021
Updated

UpLink Proposal

Fixed order of deliverables
@andre-francisco
Copy link
Contributor Author

@alxs you're right, I missed that. It's fixed now. Thank you for status update, we'll be looking forward for next steps!

@alxs
Copy link
Contributor

alxs commented May 25, 2021

Just a note in case there's any more feedback: no need to force-push any more. This is just for the initial PR, subsequent commits are useful as they allow us to see the changes.

@andre-francisco
Copy link
Contributor Author

@alxs Understood; I'll stop rebasing in the future.

@mmagician
Copy link
Contributor

Since each chain built with substrate can use custom modules, and therefore, provide custom functionality, will your communication protocol be extendable to allow anyone to implement a non-standard (e.g. not included in Polkadot) queries/Tx's?

Otherwise looks good 👍🏼

Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the application. I have a few additional questions:

  • How do you plan to track the spent resources via substrate? I think this is one of the biggest problems to solve, because you quickly reach the limits of blockchains (tps) if you try to archive this in a way that can not be easily exploited.
  • In general, what do you plan to store on-chain?
  • Currently the relayer server seems to be rather centralized. Did you consider using something like an off-chain worker for this? How do you plan to incentivize people running the relayer?

@andre-francisco
Copy link
Contributor Author

@mmagician yes, it will. Citing from the proposal:

"In future reviews, this logic should be optionally integrated directly into Substrate, with the intent of having Substrate and off-the-grid devices communicate end-to-end, without the need for mediators. However, due to the complexity of that endeavour, the Relay Server will replace that setup for an initial version."

So the idea is that this communication protocol is made available as a Substrate module. That will probably be our followup for the General Grant program, since the implementation should be far more complex. For now we're using a Relay Server to replace that setup, but it's not ideal.

@andre-francisco
Copy link
Contributor Author

@Noc2 thank you for your questions, I'll leave some notes:

  • How do you plan to track the spent resources via substrate? I think this is one of the biggest problems to solve, because you quickly reach the limits of blockchains (tps) if you try to archive this in a way that can not be easily exploited.

In this version the nodes are not incentivized. Citing the proposal: "It’s notable that this constitutes a relaxation of the UpLink project in many ways. In its entirety, the UpLink project proposes an incentive-based multi-hop mesh network system built on Substrate, enabling devices to communicate peer-to-peer and be rewarded for their cooperation. This project, however, proposes the much simpler non-rewarded proxy alternative [...]".

As for future versions, the incentivization model is not designed yet, but we're considering a model based on Lot49, a mesh network incentivization model by goTenna. We're considering this as a followup for the General Grant program as well, or at least to have progress on this until then.

  • In general, what do you plan to store on-chain?

Whatever the deployer wants. This is a generic system that enables devices to communicate, but it's up to specific implementations to decide what to do with it. That is, we work with connectivity, what that connectivity is used for is project-specific.

  • Currently the relayer server seems to be rather centralized. Did you consider using something like an off-chain worker for this? How do you plan to incentivize people running the relayer?

The Relay Server will not be a part of the end system, but it will work as a means to implement the protocols and all the necessary logic until we get to the point where this is fully integrated into Substrate. It will work only for some use cases (e.g. the Relay Server can be trusted), but not for the general case; for that we'll need to go ahead with integrating the protocols as a Substrate module.

Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick reply. Yes states channels seem to be the best solutions for this problem at the moment. You should potentially take a look at cChannel-substrate by celer. Just one more question from my side: Do you already have some concrete initial use cases for your technology in mind?

@andre-francisco
Copy link
Contributor Author

We'll definitely have a look at cChannel-substrate, seems interesting. Thank you for the suggestion.

Regarding the use case, yes. We're working with a major payment processing company to enable digital payment processing in markets with poor or expensive connectivity, where digital banking and the usage of digital wallets is growing exponentially. This integration with Substrate will work as a key component of such system, and our goal is also to bring these payment processing companies closer to the crypto world; this integration should achieve just that.

Copy link
Contributor

@alxs alxs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the answers @andre-francisco. Looks good from my side, wish you luck with the development!

@alxs alxs merged commit a522690 into w3f:master May 27, 2021
@github-actions
Copy link
Contributor

Congratulations! As part of the Open Grants Program, we want to help winning teams acknowledge their grants publicly. To that end, we’ve created a badge for projects that successfully delivered their first milestone. Please observe the foundation’s guidelines when making any announcements; in particular, don’t announce the grant publicly before you've completed at least the first milestone of the project.

At that point, we will be happy to collaborate on an announcement about the work you’re doing. Please get in touch with us at grantspr@web3.foundation in case you're interested (at least two weeks notice is preferred).

chrisli30 pushed a commit to OAK-Foundation/W3F-Grants-Fork that referenced this pull request May 31, 2021
Updated

UpLink Proposal

Fixed order of deliverables

Co-authored-by: AndreFratelli <andre.fratelli@hotmail.com>
alxs pushed a commit that referenced this pull request Jul 20, 2021
@alxs
Copy link
Contributor

alxs commented Oct 5, 2021

Hey @andre-francisco, care to share a quick status update, along with an ETA if possible? As long as you're actively working on the project, delays aren't a big problem, but please keep us in the loop.

Note that if we don't hear from you within the next two weeks, we will assume you're no longer interested and terminate the grant.

@andre-francisco
Copy link
Contributor Author

andre-francisco commented Oct 11, 2021

Hi, @alxs

Apologies for the delayed response; you are right, an update is in order.

The project is alive and kicking, and we've been making substancial progress in the development. You can see the latest progress here; I just committed the latest changes.

What happened was that we had another project coming in from a major customer, although one that is overlapping with the grant. As you surely understand, I can't reveal any details on that specific project, but I can give you some additional pointers in private, so do feel free to schedule a call if you feel that's important.

For the most part, the requirements for the project changed greatly. These are actually good news, since we'll be delivering more than what we had initially planned, even if that means a substantial delay in the deliverables. The two projects overlap in a great deal (gross estimate, perhaps around 80%), so the progress that we're making there is also quite significant for the grant. The downside is that we'll start focusing on the grant only as soon as we deliver this project.

With respect to timelines, we have another month and a half ahead of us for this delivery, so I would say that we might complete the final deliverables for the grant closer to the end of the year. As a rough estimation, mid December should be a good pointer. We'll know better as soon as the project with the customer is concluded.

I hope this makes sense and that the grant is not cancelled, since we're still very much interested in pursuing this.

@alxs
Copy link
Contributor

alxs commented Oct 13, 2021

@andre-francisco that is good to hear. No need to disclose more details and we won't cancel the grant as long as you're working on it.

We would normally ask you to submit an amendment with updated delivery dates, but it sounds like in your case more changes would be required and you'll be in a better position to write the amendment when you've further advanced with this overlapping project. So let's just wait for the moment - when you know how to proceed, I encourage you to not only update the delivery dates or simply submit, but to take some time to first adjust the proposal to what and when you want to deliver as this will likely significantly facilitate the delivery.

Also keep in mind that most teams submit milestones separately, which allows you to get feedback earlier on and us to evaluate the grant incrementally.

@andre-francisco
Copy link
Contributor Author

@alxs

That is great to know! Reviewing the project proposal would be tricky at the moment, since all of our resources are currently allocated. But I'll make sure to update the proposal as soon as we can.

On another note, the first deliverable is actually ready; none of the other deliverables apply right now, but would it make sense to move forward with the first deliverable? What would that entail?

@alxs
Copy link
Contributor

alxs commented Oct 14, 2021

@andre-francisco sounds good!

You can certainly submit the first milestone if it's ready - the only reason I can think of why you'd want to wait would be if you expect the rest of the project to change in a way that the milestone wouldn't fit into it any longer. As long as that isn't the case, please go ahead. The process is described in the milestone delivery repo. Please take care to complete documentation and test suite for the parts of the project that you intend to deliver and then simply follow the instructions! Let us know if you have any questions.

@andre-francisco
Copy link
Contributor Author

@alxs thank you yet again! That reminds me: the API docs should provide the necessary coverage, but not the tests. I'd assume this is grounds for dismissal, so maybe it doesn't make sense to go forward at this point. Unfortunately we'll have to continue to delay the project until we meet the proposed criteria. Either way, we're still working on this and intend to continue to do so.

@alxs
Copy link
Contributor

alxs commented Dec 22, 2021

@andre-francisco following up here, I hope everything's going well. Do you have any news on the project, and could you give us a quick update on the timeline? Depending on where you stand, it may make sense for you to submit that amendment now.

@alxs
Copy link
Contributor

alxs commented Jan 6, 2022

@andre-francisco is this still on your roadmap? Note that given the delay and as we haven't heard from you in a while, we'd terminate the grant if we don't hear from you in the next 2 weeks. You're welcome to apply again at any time.

@alxs alxs mentioned this pull request Jan 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready for review The project is ready to be reviewed by the committee members.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants