Proposing Solang Solidity Compiler
Hello tsc,
I'd like to propose Solang to become a hyperledger project. Description ----------- Solang is a compiler for the Solidity language that can target ewasm (used by Hyperledger Burrow and others), Sawtooth Sabre, and Parity Substrate. It is written in rust and uses LLVM as the compiler backend. The aim is for full compatibility with the Solidity language where possible (e.g. assembly {} with EVM instructions are not supported in wasm context). Solidity as a language does have its quirks, however it has established itself as a defacto language commonly for smart contract. Having Solidity support for the Hyperledger blockchains would be a great feature, conversely it would be beneficial for those project to colaborate on a common compiler component. Other than Burrow, there are many other projects that allow ewasm smart contracts. When ewasm comes to mainnet ethereum, Solang will be ready to support it. Possible future directions: - the Solidity language can improve (e.g. string processing or generics) - create a solidity language server for IDEs (see https://wiki.hyperledger.org/display/INTERN/Create+a+new+Solidity+Language+Server+%28SLS%29+using+Solang+Compiler) - Integer arithmetic overflow detection in Solidity - introduce foreign function interface, making it possible to link in code written in other languages using the llvm linker (e.g. new crypto written in C). - Fabric can also run wasm chain code: https://github.com/hyperledger-labs/fabric-chaincode-wasm - There is an experimental evm llvm backend, so Solang could compile to EVM just like the Ethereum Solidity compiler. https://github.com/etclabscore/evm_llvm See: https://solang.readthedocs.io/en/latest/ and https://github.com/hyperledger-labs/solang Scope: ----- The scope is the Solidity language and smart contacts written in wasm; compiler and related tools like language server (for IDEs) and style hints (like lint or clippy). Other than smart contracts, there are also other areas where a wasm compiled language can help. For example, the BitXHub proposal needs wasm to do cross chain validation. Commit development resources ---------------------------- Solang is funded through a web3 foundation grant. The grant funds the project for full Solidity language support, compatible with the ethereum foundation solidity compiler. As part of the grant the project has committed to a roadmap. Initial Maintainers ------------------- Sean Young <sean@...> Neutral ------- I'm not affiliated with any company or in employment; funding is through a web3 foundation grant. My interests are compilers and smart contract, not any ledger in particular. Thanks, Sean Young |
|