Skip to content

Application: Research feasibility and design for Java Host#1353

Merged
Noc2 merged 3 commits intow3f:masterfrom
LimeChain:application/java-host-research
Dec 14, 2022
Merged

Application: Research feasibility and design for Java Host#1353
Noc2 merged 3 commits intow3f:masterfrom
LimeChain:application/java-host-research

Conversation

@Daniel-K-Ivanov
Copy link
Copy Markdown
Contributor

@Daniel-K-Ivanov Daniel-K-Ivanov commented Dec 12, 2022

Project Abstract

Our aim is to research whether implementing a Java-based Host is feasible. Significant components that will be explored and designed on a high level are:

  • Runtime Execution Environment (using wasmer-java)
  • P2P Communication
  • Storage (persistence) module
  • RPC API

Our most significant efforts will be on the Host <> Runtime communication (execution environment) as it is the area that has the most risks.

Grant level

  • Level 1: Up to $10,000, 2 approvals
  • Level 2: Up to $30,000, 3 approvals
  • Level 3: Unlimited, 5 approvals (for >$100k: Web3 Foundation Council approval)

Application Checklist

  • The application template has been copied and aptly renamed (project_name.md).
  • I have read the application guidelines.
  • A BTC, Ethereum (USDC/DAI) or Polkadot/Kusama (aUSD/USDT) address for the payment of the milestones is provided in the application.
  • The software delivered for this grant will be released under an open-source license specified in the application.
  • The initial PR contains only one commit (squash and force-push if needed).
  • The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).
  • I prefer the discussion of this application in a private Element/Matrix channel. My username is: @_______:matrix.org (change the home server if you use a different one)

Signed-off-by: Daniel-K-Ivanov <daniel.k.ivanov95@gmail.com>
Signed-off-by: Daniel-K-Ivanov <daniel.k.ivanov95@gmail.com>
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Dec 12, 2022

CLA assistant check
All committers have signed the CLA.

@Noc2 Noc2 self-assigned this Dec 12, 2022
Noc2
Noc2 previously approved these changes Dec 12, 2022
Copy link
Copy Markdown
Contributor

@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 a lot for the application. This looks really good and makes sense to me. I shared it internally and will mark it already as ready for review. I'm also personally happy to go ahead with it.

@Noc2 Noc2 added the ready for review The project is ready to be reviewed by the committee members. label Dec 12, 2022
Copy link
Copy Markdown

@FlorianFranzen FlorianFranzen left a comment

Choose a reason for hiding this comment

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

Thank your application. It looks great and we are excited to get this going.

The only thing that I would request is that you also include some research into schnorrkel and scale in the proposal, so that we cover all the basic building blocks. (For example it would be worth while to see how much of polkaj would be usable to build a host.)

Lastly, I wanted to mention that after taking a quick look at the official JVM libp2p implementation, it seems like you will most likely have to implement yamux and kademlia to get going, which is something we should start discussing with Protocol Labs.

@bhargavbh
Copy link
Copy Markdown
Contributor

Thank you for the well-presented application. I had a few clarifications regarding the deliverables:

1.a PoC: What is the scope of the PoC? Will it run wasm blobs with the same complexity and API used by current runtime? Would it be tested on synthesised examples or real-world runtime pallets for performance?
2. Research: Note that the jvm-libp2p implementation seems to be WIP https://github.com/libp2p/jvm-libp2p and missing several components like p2p discovery.
4. Research: Could you please bifurcate the design doc of this module separately for Full Node and Light Client.

* application(comments): Address comments

Signed-off-by: Daniel-K-Ivanov <daniel.k.ivanov95@gmail.com>

* fix(typo): Fix email typo

Signed-off-by: Daniel-K-Ivanov <daniel.k.ivanov95@gmail.com>

Signed-off-by: Daniel-K-Ivanov <daniel.k.ivanov95@gmail.com>
@Daniel-K-Ivanov
Copy link
Copy Markdown
Contributor Author

Daniel-K-Ivanov commented Dec 13, 2022

@FlorianFranzen @bhargavbh thank you for the review and the insights. We've addressed your comments.

p.s
@Noc2 I accidentally removed @bhargavbh from the reviewer's list 🙏

Copy link
Copy Markdown
Contributor

@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.

I'm still happy to go ahead with it. Btw. I already reached out to protocol labs.

@Noc2 Noc2 requested a review from bhargavbh December 13, 2022 13:56
@bhargavbh
Copy link
Copy Markdown
Contributor

LGTM. Only thing i would emphasise is that performance should be a key dimension to be tested on for the 1a deliverable, since a performant Runtime Environment is a critical requirement (specially for full nodes).

@Noc2 Noc2 merged commit f0090dd into w3f:master Dec 14, 2022
@github-actions
Copy link
Copy Markdown
Contributor

Congratulations and welcome to the Web3 Foundation Grants Program! Please refer to our Milestone Delivery repository for instructions on how to submit milestones and invoices, our FAQ for frequently asked questions and the support section of our README for more ways to find answers to your questions.

Before you start, take a moment to read through our announcement guidelines for all communications related to the grant or make them known to the right person in your organisation. In particular, please don't announce the grant publicly before at least the first milestone of your project has been approved. At that point or shortly before, you can get in touch with us at grantsPR@web3.foundation and we'll be happy to collaborate on an announcement about the work you’re doing.

Lastly, please remember to let us know in case you run into any delays or deviate from the deliverables in your application. You can either leave a comment here or directly request to amend your application via PR. We wish you luck with your project! 🚀

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.

9 participants