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

Flow ChainIDE - A Cloud-Based Multi-Chain IDE #94

Open
BlairQu opened this issue Sep 22, 2022 · 9 comments
Open

Flow ChainIDE - A Cloud-Based Multi-Chain IDE #94

BlairQu opened this issue Sep 22, 2022 · 9 comments
Assignees
Labels

Comments

@BlairQu
Copy link

BlairQu commented Sep 22, 2022

Flow ChainIDE

Grant category

  • Developer tools / services

Description

ChainIDE is a web-based platform that provides one-stop development services for blockchain developers. By providing a cloud-based user experience, ChainIDE enables users immediately begin developing decentralized applications without any configuration and pre-installation required on their local system. ChainIDE team has integrated several well-known public blockchains (e.g., Flow, Ethereum, BNB Chain, Polygon, Conflux, Dfinity, Nervos, and Aptos), consortium blockchains (e.g., AntChain, Chain33, and Fisco Bcos ), and assisted developers in compiling and deploying over three million smart contracts from over 100 countries.

Problem statement

Flow is a fast, decentralized, and developer-friendly blockchain, designed as the foundation for a new generation of games, apps, and the digital assets that power them. However, there is a lack of user-friendly one-stop tooling or services to support the dApp development lifecycle on the Flow mainnet, testnet, and devnet. Users have to set up the local development environments with various dependency installations, which is a very time-consuming and laborious task.

  • Target audience
  1. Developers who prefer cloud-based development environments and one-stop development services.
  2. Beginners who are new to Cadence.
  3. Multi-Chain Developers.
  • Evidence for the need
    Considering flow uses cadence as smart contract language, which is quite different from the mostly adopted solidity, it is hard for the existing solidity developers to migrate to flow. The tooling platform that can speed up adoption and reduce learning curve is in urge need. ChainIDE is the perfect solution for this situation. We can provide a comprehensive set of convenient tools as well as a multi-chain developer community. We have supported several chains and most of them experienced a rapid growth in developer activity.

Proposed solution

We plan to build a comprehensive and user-friendly cloud-based development environment for the Flow blockchain on the ChainIDE platform. We have already built an interactive development environment using the framework command-line (FCL). Using sandbox technology allows users to use the Flow command-line interface (Flow-CLI) and node package manager (npm) in the cloud. So, developers can build Flow-based dApps entirely using ChainIDE.

Impact

The developer experience can progress significantly through our work poured in the tooling and tutorial support, the different environment and smart contract language will be no more showstopper to the adoption of Flow.

Milestones and funding

We already support Flow testnet by providing an interactive interface for Cadence smart contract deployments, interactions, scripts, and running cloud-based Flow-CLI and npm (see: https://chainide.gitbook.io/chainide-english-1/ethereum-ide-1/flow-ide).

Our further development tasks are the following:

Milestone Deliverables Timeline USD proposal
1 - Add the "Update Contract" function Add the "Update Contract" function to the previous content of ChainIDE, allowing users to update the contract using an interactive graphical user interface (GUI). 2 weeks 2000
2 - Add template projects Add the production-grade non-fungible tokens (NFT) and fungible tokens (FT) templates to enable users to have full-stack development experience using ChainIDE (including web pages for mint NFT and airdrop tokens). 1 month 3000
3- Add support for the main network On the basis of the existing support for the test network, add support for the main network, including deploying contracts on the main network using an interactive GUI, interacting with deployed smart contracts, sending scripts, sending transactions, upgrading contracts, etc. 2 weeks 2000
4 - Tutorial Update the previous documentation and tutorials, and add ChainIDE instructions in the Flow official developers documentation to facilitate novice development of the Cadence in a cloud-based environment. 2 weeks 1000
5 - Adoption 1000+ new developers using FLOW chainide (Including creating flow projects, writing cadence, deploying cadence, and interacting with cadence) 3 months 3500
6 -Maintenance Provide on-going maintenance and support as needed to reach adoption milestone. (includes updates to sandbox flow-cli mirrors, new version integration for FCL, and server fees). 6 months 3500

Total funding proposed:<15000 USD>

Team

Name Role Bio Contact
Ling Founder Graduated from the University of Alberta, Canada with a master ‘s degree in computer science. He studied under Academician Dale Schuurmans. An executive member and director of the branch of the Chinese Computer Society, a member of the Blockchain Committee of the Jiangsu Computer Society. "An Interoperable Avatar Framework Across Multiple Games And Blockchains" was included in the top computer conference INFOCOM2019 [email protected]
Alvin R&D Director Professional in computer vision and machine learning. Good at smart contracts and blockchain development and security enhancement. The ios mobile game he designed during school reached 500K downloads. The digital asset management platform he designed helped users made a profit of at least $1.5 million. [email protected]
Tim CTO Good at blockchain, full stack development and high-synth system design. Master's degree in artificial intelligence and in-depth learning. His master's thesis was awarded the 2017 IEEE CIG Honor Award. After graduating, he worked for Amazon, developed Amazon's PB-level core big data ledger reconciliation system, and won the eCFI3 Star Award for Outstanding Engineer within Amazon. [email protected]
Nick COO Successfully led Alibaba co-operation, its new retail brand, including large data centers, blockchain enabling new retail plans, membership systems, supporting property management software design and development. [email protected]
Blair BD 5 years working experience in blockchain industry, previous worked at several crypto exchanges [email protected]

Milestone Delivery Report of ChainIDE for Flow

Milestone Results

Milestone Deliverables USD proposal Status
1 - Add the "Update Contract" function Add the "Update Contract" function to the previous content of ChainIDE, allowing users to update the contract using an interactive graphical user interface (GUI). 2000 DONE
2 - Add template projects Add the production-grade non-fungible tokens (NFT) and fungible tokens (FT) templates to enable users to have full-stack development experience using ChainIDE (including web pages for mint NFT and airdrop tokens). 3000 DONE
3 - Add support for the main network On the basis of the existing support for the test network, add support for the main network, including deploying contracts on the main network using an interactive GUI, interacting with deployed smart contracts, sending scripts, sending transactions, upgrading contracts, etc. 2000 DONE
4 - Tutorial Update the previous documentation and tutorials, and add ChainIDE instructions in the Flow official developers documentation to facilitate novice development of the Cadence in a cloud-based environment. 1000 DONE
5 - Adoption 1000+ new developers using FLOW chainide (Including creating flow projects, writing cadence, deploying cadence, and interacting with cadence) 3500 DONE
6 -Maintenance Provide on-going maintenance and support as needed to reach adoption milestone. (includes updates to sandbox flow-cli mirrors, new version integration for FCL, and server fees). 3500 DONE

Video Link: https://www.dropbox.com/s/auy4dldu1vh5rjr/Flow%20ChainIDE%20Milestone%20%20%281-4%29.mp4?dl=0

Details:

Test Website: https://staging-9589904a8a.chainide.com/s/dashboard/projects

1 - Add the "Update Contract" function 01:40

2 - Add template projects 03:33 (FT) 14:47 (NFT)

3 - Add support for the main network 00:20

4 - Tutorial 02:54

Development Plan:

The development of the ChainIDE functionalities for Flow (Milestones 1-4) has been completed. However, since ChainIDE for Flow has not yet been officially launched, we are not able to achieve the usage adoption target at this time (Milestone 5).

We hope to integrate ChainIDE into Flow's development documentation to assist developers in rapidly developing cloud-based Cadence smart contracts. Furthermore, we will promote ChaindIDE for Flow on our social media platforms to encourage developers from other chains to start developing dApps using Flow. Overall, we believe this will be a win-win situation.

We will continue to proceed with Milestones 5-6 as planned.

@alxflw
Copy link
Contributor

alxflw commented Sep 26, 2022

thanks for the submission @BlairQu! we'll review this and get back to you soon.

@chrisackermann
Copy link

Hi @BlairQu - thanks for your patience!

We've reviewed and have a few follow-up questions/comments:

  • Can you please share more about the usage of ChainIDE for Flow/Cadence and why/how you expect these new features will better serve the ecosystem beyond your current support for Flow/Cadence?
  • It would be helpful to include an adoption-based milestone to help capture efforts to drive adoption and usage of the things you'll build through this grant.

Thanks!

@chrisackermann
Copy link

Hi @BlairQu! Just wanted to follow up on the questions above so that we can progress with the review of your proposal. Thanks!

@BlairQu
Copy link
Author

BlairQu commented Nov 1, 2022

Hi @chrisackermann
Sorry for the late response. It takes a while to prepare the answer. Here are my replies to your comments. Hope it can make our proposal more clearly

  1. Can you please share more about the usage of ChainIDE for Flow and why/how you expect these new features will better serve the ecosystem beyond your current support for Flow/Cadence?
    First of all, We are trilled to share the progress that we've achieved with Flow community. According to google analysis of ChainIDE operation statistics, developers from 137 countries have used flow chainIDE and the number is still on the increase.

image

Developers from other ecosystem flooded into Flow community under the help of our tutorials and series of workshops and bootcamps which shows the necessity of having a middleware tooling platform.
The present version of ChainIDE offers most of the basic tooling supports during dapp development lifecycle (environment setting, write, test, publish, release, frontend development) which we believe can suffice the beginners and amateurs. But as the blockchain technology evolving and the explosion of projects built on blockchains (DeFi, NFTs, DAOs), we need to add more specific features for different usage scenario to meet the require of developers. And that is why we need to apply for additional grants.
Our new features can be divided into following part.
Firstly are some useful new additions to existing features.As project gradually mature, the needs of adjusting the previous smart contracts to fit in the increasing functions and business model will keep rising. "Update contract" function can make it much easier for developers to update their smart contracts. We also add more templates for NFT and FT scenarios. There are various types of teams wanna get into NFT market, artists, traditional enterprises or individuals with great ideas. The template module can accelerate the learning curve and instruct them how to build their project. Besides, we will add support for the flow mainnet. Developers can experience the comprehensive ChainIDE features as well as on the main network after this upgrade. We will also modify the tutorial documents according to the above changes to let developers quickly adapt to these new features.
Secondly is the long-term maintenance and r&d for the totally new features. Considering flow is experiencing rapid growth, we will timely update the flow-cli and FLC to fit in the latest version of flow network. Meanwhile, the daily expenditure on server is relative a large amount as ChainIDE is cloud-based. The grant would help us cover some of the cost. Finally, we will offer further support for the important upgrades on flow to provide the most convenient development environment for flow developers.
We believe that anyone can get started with their NFT or FT project within 30 mins using ChainIDE template module after all these complementary features launched, which can hopefully attract developers from other blockchain or beginners from other industry to the flow ecosystem.

  1. It would be helpful to include an adoption-based milestone to help capture efforts to drive adoption and usage of the things you'll build through this grant.
    I believe the above content explained part of the usage of new features. To better assist the delivery and acceptance for each milestone, we will offer you a gitbook guidance illustrating the detailed steps on how to use these new features. You guys can follow the lead and test whether each function is running properly. And if that's not enough, we can share part of the source code with you. As for long-term maintenance, we can have monthly meetings to let you know the schedule and ensure the on time delivery.
    Following is the milestone with expected user adoption for new features.
Milestone Deliverables Timeline USD proposal
1 - Add the "Update Contract" function Add the "Update Contract" function to the previous content of ChainIDE, allowing users to update the contract using an interactive graphical user interface (GUI). 2 weeks 2000
2 - Add template projects Add the production-grade non-fungible tokens (NFT) and fungible tokens (FT) templates to enable users to have full-stack development experience using ChainIDE (including web pages for mint NFT and airdrop tokens). 1 month 3000
3- Add support for the main network On the basis of the existing support for the test network, add support for the main network, including deploying contracts on the main network using an interactive GUI, interacting with deployed smart contracts, sending scripts, sending transactions, upgrading contracts, etc. 2 weeks 2000
4 - Tutorial Update the previous documentation and tutorials, and add ChainIDE instructions in the Flow official developers documentation to facilitate novice development of the Cadence in a cloud-based environment. 2 weeks 1000
5 - Adoption 1000+ new developers using FLOW chainide (Including creating flow projects, writing cadence, deploying cadence, and interacting with cadence) 3 months 1000
6 -Maintenance Provide on-going maintenance and support as needed to reach adoption milestone. (includes updates to sandbox flow-cli mirrors, new version integration for FCL, and server fees). 6 months 6000

@chrisackermann
Copy link

Hi @BlairQu, thanks for your patience and for sharing the additional context on your proposal!

We've reviewed and have a few follow-ups:

  1. Could we weight the grant more towards adoption and less on maintenance? Want to ensure that we're focused and aligned on the intended impact on the ecosystem.
  2. How do you view your solution relative to other solutions like https://github.dev/ or Gitpod?

@BlairQu
Copy link
Author

BlairQu commented Nov 27, 2022

Hi @chrisackermann, it’s always my pleasure to answer questions you might have.

1. Could we weight the grant more towards adoption and less on maintenance? Want to ensure that we're focused and aligned on the intended impact on the ecosystem.

Sure, how about we change the weight to 50/50?

2. How do you view your solution relative to other solutions like https://github.dev/ or Gitpod?

There are obvious differences between ChainIDE and those 2 platforms. Firstly, ChainIDE is specifically designed for blockchain environment and on-chain development is totally different from normal development. For example, blockchain has wallet address but normal IDE won’t support the wallet setting process. Another example is that developers can have full stack dApp development on ChainIDE thanks to our exclusive sandbox technology, which is impossible on https://github.dev/. We believe that the meaning of IDE tooling is to reduce and accelerate the intermediate steps as much as possible. It’s still complex when developers choose to write smart contract on normal IDE platform cuz they doesn’t offer support for the whole dApp development process. But convenience is the core meaning for an IDE platform. In this way, I think a customized IDE like ChainIDE deliver more value to the Flow developers compares to the general IDE platforms. The second difference is that we are not only providing a product, we also aggressively operate it to grow our usage and be accepted by the market. We offer tutorials and templates for the beginners to help them get quickly started. We host educational developer events to teach them how to write smart contracts step-by-step. But the 2 platform you mentioned as well as most of the existed IDE platforms don’t make such kind of attempt. They only provide tools and stand there and wait the developers to use.

@chrisackermann
Copy link

Hi @BlairQu, thanks for your patience!

Could you please adjust the adoption and maintenance milestones to have that 50/50 balance of $3500 and we'll then approve this proposal?

@BlairQu
Copy link
Author

BlairQu commented Dec 27, 2022

Hi @chrisackermann , I have changed it to 50/50.

@BlairQu
Copy link
Author

BlairQu commented May 8, 2023

Hi @chrisackermann , we're thrilled to let you know that the ChainIDE for Flow is officially finished! Be sure to check out the updated report. I'm really looking forward to hearing your feedback and thoughts.

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

No branches or pull requests

3 participants