Fetching the latest programs, projects, and workspace data.
<p>Hyperledger Solang is a Solidity compiler to multiple non-EVM targets, including Stellar's Soroban. The Soroban VM is inherently different than the EVM. Also, How Solang translates Solidity to Soroban's WASM is different from the Rust SDK: A different storage layout, different encoding/decoding mechanisms and different optimizer passes as well.</p><p><br></p><p>The main smart contracts SDK for Soroban is <a href="https://github.com/stellar/rs-soroban-sdk" rel="noopener noreferrer" target="_blank" style="color: rgb(9, 105, 218);">the Rust soroban SDK</a>. The purpose of this mentorship is to do an in-depth evaluation of Solang's soroban contracts runtime cost and behavior against the main Rust SDK. This evaluation is critical to Solang's health: We need a reproducible way to validate the design choices of how Solang handles storage operations and encoding/decoding on Soroban.</p><p><br></p><p>The mentorship will be in 3 stages:</p><ol><li>Getting familiar with Solang's code base. This could be done by implementing a Soroban specific feature in Solidity. This task will touch all stages of the compiler, thus enabling the mentee to get familiar with the code base as well as concepts around the Soroban VM and Solidity.</li><li>Implement a differential testing tool for the currently supported Soroban Solidity contracts. The tool should take an input a Solidity contract and a Rust contract, and should provide:</li><li class="ql-indent-1">Runtime cost comparisons, ideally by deploying to Solang's mock Soroban VM.</li><li class="ql-indent-1">Behavioral comparison.</li><li class="ql-indent-1">An interpretation of <span style="color: rgb(31, 35, 40);">the runtime cost for each contract, i.e number of Soroban host function calls, guest memory used, etc...</span></li><li>Publish a list of recommendations that Solang (or the Rust SDK) should improve. Recommendations should be backed up with evidence from the tool defined at stage 2</li></ol><p><br></p><p>Lean more at <a href="https://github.com/LF-Decentralized-Trust-Mentorships/mentorship-program/issues/74" rel="noopener noreferrer" target="_blank">https://github.com/LF-Decentralized-Trust-Mentorships/mentorship-program/issues/74</a></p>
Showing 1 of 1 projects. Click any project card for scope, mentors, and proposal studio.
<p>Hyperledger Solang is a Solidity compiler to multiple non-EVM targets, including Stellar's Soroban. The Soroban VM is inherently different than the EVM. Also, How Solang translates Solidity to Soroban's WASM is different from the Rust SDK: A different storage layout, different encoding/decoding mechanisms and different optimizer passes as well.</p><p><br></p><p>The main smart contracts SDK for Soroban is <a href="https://github.com/stellar/rs-soroban-sdk" rel="noopener noreferrer" target="_blank" style="color: rgb(9, 105, 218);">the Rust soroban SDK</a>. The purpose of this mentorship is to do an in-depth evaluation of Solang's soroban contracts runtime cost and behavior against the main Rust SDK. This evaluation is critical to Solang's health: We need a reproducible way to validate the design choices of how Solang handles storage operations and encoding/decoding on Soroban.</p><p><br></p><p>The mentorship will be in 3 stages:</p><ol><li>Getting familiar with Solang's code base. This could be done by implementing a Soroban specific feature in Solidity. This task will touch all stages of the compiler, thus enabling the mentee to get familiar with the code base as well as concepts around the Soroban VM and Solidity.</li><li>Implement a differential testing tool for the currently supported Soroban Solidity contracts. The tool should take an input a Solidity contract and a Rust contract, and should provide:</li><li class="ql-indent-1">Runtime cost comparisons, ideally by deploying to Solang's mock Soroban VM.</li><li class="ql-indent-1">Behavioral comparison.</li><li class="ql-indent-1">An interpretation of <span style="color: rgb(31, 35, 40);">the runtime cost for each contract, i.e number of Soroban host function calls, guest memory used, etc...</span></li><li>Publish a list of recommendations that Solang (or the Rust SDK) should improve. Recommendations should be backed up with evidence from the tool defined at stage 2</li></ol><p><br></p><p>Lean more at <a href="https://github.com/LF-Decentralized-Trust-Mentorships/mentorship-program/issues/74" rel="noopener noreferrer" target="_blank">https://github.com/LF-Decentralized-Trust-Mentorships/mentorship-program/issues/74</a></p>