Recap of Solang 101 workshop & Suggestions for Future of Solang in Solana community
On August 19th, Superteam Vietnam and Cosmos Vietnam DAO organized an exciting workshop with the participation of nearly 30 blockchain developers and builders. Most attendees had 1-2 years of experience in Solidity programming. What was even more surprising was the interest shown by individuals new to blockchain towards this topic.
"WHAT IS SOLANG AND WHAT GENERAL CHALLENGES DOES IT SOLVE IN BLOCKCHAIN PROGRAMMING?"
Recap of the workshop
Schedule of Content
The workshop consisted of three main parts, including two topics and a discussion session at the end.
Part 1: Basic Knowledge
This section provided technical concepts, an overview of Solana and Solidity, and answered why Solidity is needed on Solana.
The content presented by speaker Thắng Lê will be shared in a separate post for those interested.
Part 2: Practical Demo
Speaker Phương Nguyễn provided a hands-on guide with three main points:
Setting up the development environment for Solang Solidity and Solana
Building and deploying smart contracts on Solana
Creating SPL Tokens with Solang
Part 3: Q&A and Discussion
This was the most lively part, featuring participation from Hiếu Bùi and other speakers. Several questions were raised for discussion. Below are the two most interesting questions:
Question 1: What form does Solang compile Solidity files into so that Solana can natively process them?
Answer: Solang compiles Solidity files into .so files, which are Intermediate Representation (IR) inputs for the LLVM compiler. The LLVM compiler then compiles the .so files into a format that the eBPF loader on Solana can process.
Question 2: Can any libraries be used for Solidity built on Solang?
Answer: No libraries (e.g., OpenZeppelin) can be used for Solidity smart contracts yet, as Solang lacks the logic to handle these libraries.
Participant Feedback
Comment on content:
The content is complete and focuses on Solang, as expected. Clear and logical structure.
The speaker's presentation was easy to understand.
Problems with Solang & Suggestions from Partipant’s discussions
Lack of tooling & education content
Lack of library: There are no security standards or best practices for Solang yet. I would like to see OpenZeppelin support for Solang. OpenZeppelin is a library, which includes various computational functions. It helps to avoid errors like overflow, as well as many risks of being hacked when developing smart contracts. Right now, libraries can only be feasibly imported through Solang so we can not reuse existing Solidity repositories.
Solang is still quite difficult, for it to be usable, developers need to be strong in “vanilla” Solidity. If you understand vanilla Solidity well, then I don't see any problem. Solang currently only supports vanilla Solidity.
Conclusion
The recap discusses a workshop focused on Solang, a Solidity compiler for Solana. In total around 35 devs showed up. It outlines the topics covered, questions asked, and general feedback from participants. It also highlights some of the challenges currently faced by Solang, such as the absence of tooling and library support.
🇻🇳 Superteam Vietnam’s Suggestion
Base on the result of the workshop, Superteam Vietnam compile the following list of suggestions for the Solang team & community. In our opinion, in order to onboard Solidity dev into Solana ecosystem and build new app there are few things to do, such as:
1. A Remix clone is a neccessary
Remix is important to newbie to experience new tech without setting up local dev and go through configuration hell. Remix also help newbie to share code & ask for suggestions from the wider community which would significantly lower the entry barrier for Solang.
2. An OpenZeppelin clone
Average Solidity devs use OpenZeppelin all the time
It is important to have something like OpenZeppelin to make sure best practises in Solang is widely used within the community
3. Build chain tools, e.g: Hardhat
Something similar to Hardhat with a VS Code plugin is crucial to Solidity dev to test, deploy and work with others
4. Workshop, meetup and support group on Solang
Despite Solang is Solidity-based language, devs still need to learn Solana core concept like Cross Program Invocation or Account Model to interact with existing Solana Ecosystem. Workshop, meetup & support group on topics such as Solana 101, Solang best practise are very much needed.
However, if we want existing Solidity-based project to port over to Solana, there are few more things to do:
5. Audit services
No one want to go to production without auditing services which would take 3-6 months for a proper code review & refactor. This would be the good time to start building & promoting reputable audit agency to prepare for the coming project influx.
6. Migration & transition best practice
How to avoid disruption while running both EVM & SVM system? How to avoid disruption while moving from EVM to a SVM system? If I run into a problem, is there any agency can help me? There needs to be a hub of resources dedicated to this.
7. Marketing support
If I migrate from EVM to Solana using Solang, is there any marketing activity that I can take benefit from?
Few word before you go
This workshop is far from perfect and these suggestions are no where near prefection, thus we ask for community suggestions through our Superteam Vietnam Discord channel. In the coming months, we will colab with many other experts to host many other events thus helping devs in Vietnamese community gain further expertise in this topic, so join our Discord and subscribe to our Luma calendar for future update.