- Team Background
ChainIDE is a web-based platform that provides one-stop development services for blockchain developers. ChainIDE not only provides a development environment for professionals and community support for beginners through detailed tutorials, Q&A sections, and online/offline seminars, it also benefits blockchain providers by promoting their platform and techniques. By providing cloud-based user experiences, ChainIDE enables users to immediately begin developing decentralized applications with no configuration, without any pre-installation or requirements on their local system. We’ve integrated a number of well-known public (e.g. Ethereum, BCS, IOS, Cocos, Libra) and consortium blockchains (e.g. AntChain, WeiBank, and Filoop ) and assisted developers in compiling and deploying over three million smart contracts from over 100 countries.
ChainIDE is developed by WhiteMatrix LTD, which specializes in blockchain technologies. The company was founded in Nanjing and has been working in the blockchain field for more than five years. WhiteMatrix LTD, as a blockchain technology company, provides blockchain solutions to individual blockchain developers and business corporation partners. Apart from industrial projects, WhiteMatrix LTD conducts academic research on fundamental blockchain techniques. Three collaborative research labs have been established at Hong Chinese University-Shenzhen, Shanghai Jiao Tong University, and Beijing Normal University. Additionally, a WhiteMtraix Tech Lab is located in Vancouver, Canada, with a focus on fundamental research and corporate development in North America. We recently co-hosted a Blockchain and Multimedia Data Science Seminar with the University of Alberta (BMDS2021 – MRC) announced a long-term relationship with the department of computing science’s Multimedia Master Program.
WhiteMatrix LTD’s core members have a combined experience of more than ten years in computing science and more than five years in blockchain development experiments. Additionally, we have over 30 product developers and a research and development team comprising ten senior engineers to ensure our services and products’ effective and high-quality delivery.
- Project Justification
Nervos offers godwoken as a Level 2 solution that aims to help developers increase their productivity. Additionally, as an Ethereum on CKB solution, Polyjuice is 100% compatible with EVM with additional features to reduce the cost of migrating dApps from other blockchains to Nervos. However, there is a lack of user-friendly one-stop tooling or services to support the dApp development lifecycle on godwoken. Users have to set up the local dev environments with various dependency installations. ChainIDE is aimed to provide one-step cloud-based development services for dApp developers over multiple blockchain infrastructures, and we think our philosophy aligns perfectly with the increasing needs of dev tooling for godwoken.
We plan to build a comprehensive and user-friendly development environment for Nervos L2 on our ChainIDE platform, which enables developers to develop solidity smart contracts as usual, but powered by Nervos extra functions to deploy and interact contracts on the Nervos godwoken net. Due to the fact that ChainIDE is a multi-chain development platform that provides a unified user experience, users can easily migrate their solidity-based decentralized applications (dApps) from other chains to Nervos using our proposed chainide-godwoken-polyjuice solution. Finally, developers are provided with an extremely interactive user interface for all godwoken-polyjuice CLI tools, allowing for convenient testing and debugging of their dApps.
We will offer below useful features:
• Language support essentials for solidity:
o Syntax highlighting
o Solidity lint
• Smart Contract Toolbox:
o Hardhat integration (build, test, deployment and other extensions) with dashboard UI
• Godwoken Runtime Environment:
o On-demand container sandbox for godwoken dev environment to provide the same user experiences as users’ local dev machine
o Pre-installed Godwoken CLIs including godwoken-polyjuice, godwoken-kicker, godwoken hardhat extension, godwoken-polyjuice local testnet support, etc.
• One-click deployment workflow powered by hardhat
With the above features, developers can finish the dApp development lifecycle (development, test, publish, release, frontend development) in a full-featured cloud-based development environment.
- Technical specification and Implementation
We recently released ChainIDE-2.0 preview, which includes ChainIDE extension interfaces. Our extension interface is highly compatible with the VSCode extension protocol, allowing us and third-party extension developers to easily migrate existing VSCode plugins into our ChainIDE. ChainIDE’s core editor features are all maintained by ChainIDE-core to provide a consistent UI&UX for users. Specific features for programming languages and chains will be integrated via the ChainIDE extension to maintain flexibility and organic design. Additionally, this means that any developer in the Nervos Community may implement and publish extensions aimed at improving Nervos-specific development. ChainIDE will publish documentation and tutorials on extension development and hosts hackathons to encourage developers to enhance ChainIDE’s functionality. Additionally, we will highlight ChainIDE sandbox, a remote Linux container running in the cloud that offers development experiences equivalent to the local environment via a web-based ChainIDE in the browser. Zero-configuration and one-step service, as we have always claimed. To this end, ChainIDE extension interfaces and ChainIDE sandbox are two major foundations for integrating a user-friendly, fully-functional Nervos godwoken-polyjoice development environment into ChainIDE.
The following figure illustrates a high-level integration design:
Milestone 1 [Editor-related]
Integrate hardhat-godwoken-polyjuice development environment
• Hardhat has become the most popular Ethereum development environment tool, we will first build a custom hardhat-godwoken-polyjuice boilerplate as a project starter kit.
• It will provide the original hardhat functions for developing professional solidity smart contracts. Furthermore, it injects Polyjuice into the hardhat runtime environment and allows developers to configure godwoken-specific configurations in the hardhat.config.ts/js file.
• Provide a collection of language extensions aimed at increasing productivity when implementing solidity smart contracts (e.g. syntax-highlighting, lint and LSP server).
Milestone 2 [Chain-related]
Configure godowken-polyjuice blockchain environment.
• A pre-build Linux container image includes a set of godwoken and polyjuice CLI tools in our ChainIDE-sandbox at the backend.
• A Godwoken dashboard in the frontend:
o Give an interactive user interface to configure, start:
local CKB devnet
local godwoken-polyjuice chain
o Setup endpoint for each key component:
o A polyjuice panel that allows users to connect Metamask wallet in browser and mint devent ckb.
o Select compiled contract to deploy to godwoekn-polyjuice network .
o Interact the deployed contracts.
o Monitor both godwoken and polyjuice backend real-time activities.
Milestone 3 [Community-related]
• Prepare template projects with both smart contracts and frontend components.
• Prepare both text and video tutorials on how to migrate and deploy Ethereum dApps to godwoken-polyjuice network.
- Timeline and project duration