Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
tip
Page properties
titleWelcome to your new space!

The Confluence space was set up to allow you to choose between three different formats:

  1. Project Space
  2. Working Group Space
  3. Special Interest Group Space

Each of these types is captured in a separate section below. To set up this space, remove the sections related to the other two types of spaces.

Complete these tasks to get started

  •  Edit this home page - Click Edit in the top right of this screen. Remove two of the three sections below, as well as this section when you are happy with the layout of the page.
  •  Configure the sidebar - remove the "Pages", "Blog", and "Space Shortcuts" sections by clicking on the `-` sign next to them until they appear as a `+` sign. Then save the changes.
  •  Create a Meeting Agendas and Notes page - Click the Create button in the header to get started
  •  Brand your Space - Click Configure Sidebar in the left panel to update space details and logo
  •  Set permissions - Click Space Tools in the left sidebar to update permissions and give others access (usually the only change here is to click the View option for Anonymous users)
  •  Label the page appropriately - For a project space, label this page project-home. For a workgroup space, label this wg-home. For a SIG space, label this SIG-home.
  •  Update links for mailing list
  •  Update links for chat channel

Chat (for questions and ephemeral discussions)

Questions are welcome and best asked in Hyperledger Discord.  Learn more about Hyperledger Discord here, get the invite and check out one of the many Aries project channels.  

Tip

Use this section for Project Spaces

Page propertiesProject

TBD LOGO

Project
SVG Out
scaleX200px
nameHyperledger_Solang.svg

The body area can be used to replace links in the SVG and to add tool tips to them. Please read the SVG Out documentation for details.

Status

Status
colourBlue
titleIncubation
ACTIVE

CII Badge
DescriptionSolang is a portable compiler for the Solidity language that targets Solana
,
and Substrate (Polkadot)
, and ewasm
. It is written in Rust, and leverages the LLVM

infrastructure for the compiler backend.

Marked
URLhttps://raw.githubusercontent.com/hyperledger/solang/main/README.md

The Solidity language is the

[](https://101blockchains.com/smart-contract-programming-languages/)

. However, the existing Solidity compiler only targets the Ethereum virtual machine. The Solang project aims to make Solidity available for other blockchains, and focuses on maintaining source code compatibility with Solc, so that developers can use their existing codebase for blockchains other than Ethereum with minimal modifications.

The purpose of Solang is two-fold: first of all, developers with

solidity

Solidity language knowledge can develop new smart contracts for non-ethereum blockchains in Solidity, so they do not have to learn a new language. Secondly, there is a large amount of existing Solidity contracts available, which can be recompiled for a different blockchain.

Currently, Solang targets the following blockchains:

-

[](https://solana.com)


-

[ Polkadot](https://substrate.io)

- [Ethereum ewasm](https://ewasm.readthedocs.io)

At the time of writing, these chains are the

2nd,

9th, and 11th by market capitalization

according [coinmarketcap](https://coinmarketcap/)

(the coins are listed by market cap)

.Note that public Ethereum does not currently support ewasm, however work for ewasm support on Ethereum is underway

.

Any other blockchain that wishes to have Solidity language support is welcome to add a new target to the Solang project. The cosmos blockchain

[](https://interchain.io/)

has said it would

[](https://github

.

com/hyperledger-labs/Solang/issues/582).

The goal of Solang is to bring the Solidity language to as many blockchains as possible. Writing a production quality compiler is a complex task, so collaboration between blockchains will be hugely beneficial.

The success of the project can be measured by the number of projects that use Solang as a compiler.

Key Characteristics

Hyperledger Solang is a compiler: it knows how to transform Solidity source code into a binary program (or contract) which can be directly deployed on a blockchain. Hyperledger Solang does not provide tooling for this, however we do provide documentation on how to deploy and interact with your Solidity contracts, see the block-chain specific documentation below.

Hyperledger Solang has the following stages:

  1. Parser stage. This parser Solidity. This is in the `solang-parser` crate. This crate is used by another project: foundry uses it for its Solidity code formatter.
  2. Semantic Analysis Stage (sema). This validates that the source code is valid, and produces the AST. This is used by the Language Server.
  3. Code generation (codegen). This transforms the AST into a CFG (control flow graph). This deals with contract inheritance too, and includes a few code optimization passes.
  4. LLVM IR emit (emit). This transforms the CFG into LLVM IR.
  5. LLVM Backend. The LLVM Libraries further optimize and compile the code into optimized binary files
  6. LLD Linker. The LLVM Linker produces the final file.

Documentation

https://Solang.readthedocs.io/en/latest/

How to run Solang on command line: https://Solang.readthedocs.io/en/latest/running.html

Blockchain-specific instructions for:

Solana: https://solang.readthedocs.io/en/latest/targets/solana.html

Substrate: https://solang.readthedocs.io/en/latest/targets/substrate.html

Burrow: https://solang.readthedocs.io/en/latest/targets/burrow.html

Project Management and Issue Tracking

All Solang projects use GitHub for receiving issues, receiving pull requests and tracking releases.  The links to the GitHub repos for the project are below.

Repositories

https://github.com/hyperledger/solang

https://github.com/hyperledger/homebrew-solang

Communication

Mailing List

Chat (for questions and ephemeral discussions)

Questions are welcome and best asked in Hyperledger Discord.  

Learn more about Hyperledger Discord here, get the invite and check out one of the many Aries project channels.  

Meeting

People who want to learn about or contribute to Solang should join this call. This does not replace our asynchronous collaboration, but should help us keep everyone up-to-date and moving together.

Discussion items: upcoming releases, current PRs, work that will generate future PRs, architecture changes that will impact downstream teams, project standards, best practices, design, etc.

For call details and agendas, see: <NEEDS AGENDA PAGE>

Calendar

History

  • Proposed by

    • Sean Young

    • Lucas Steuernagel

    • Tracy A. Kuhrt 

    • Cyrill Leutwiler 

  • Approved  by the TSC on 2022 -08-18

tip

Use these sections for Working Group Spaces

Charter

TSC Working Group Updates

Panel
borderColorblack
bgColorwhiteSmoke#f4f4f4
borderStylesolid
New TSC Working Group Update

Scope

How to Get Involved

Getting Involved

You are invited to get involved with the Solang project.  Here are some ways you can get started.

  1. Join our team calls! We have a daily stand up meeting in discord.
  2. File us an issue report or pull request.
  3. Join communication channels and introduce yourself and ask questions (details below)
  4. Grab a good first issue based on your level of experience/technical area(s) of expertise or interests:
    1. All Good First Issues

Communication

Mailing List

Meetings

All Hyperledger meetings are run covered by the following Antitrust Policy.

Info

Meeting Agendas

Meeting Notes

Communication Channels

These are the mechanisms that this working group uses to communicate.

Mailing List

group@lists
Subscribe
  • Archives
  • Chat Channel

    Links to Ongoing Work

    Links to Completed Work

    Links to External Resources

    Active Members

    NameCompany
    Tip

    Use these sections for Special Interest Group Spaces

    Introduction and Scope

    Group Updates

    Meetings

    All Hyperledger meetings are run covered by the following Antitrust Policy.

    InfoHyperledger Community Calendar and SIG meeting InviteOnline meeting URLDial in detailsPhone numbers (USA)Toll-free numbers (USA)iPhone (one-tap)International numbershttps://zoom.us/u/bAaJoyznp

    Chat (for questions and ephemeral discussions)

    Questions are welcome and best asked in Hyperledger Discord.  Learn more about Hyperledger Discord here, get the invite and check out one of the many Cactus project channels.  

    Daily Meetings

    Every day at 13:30 UTC we meet to discuss the project. Everyone is welcome.

    https://lists.hyperledger.org/g/solang/calendar

    Calendar of Public Meetings

    Meeting Agendas

    Date of the meetingAgenda link

    Meeting Notes & Recordings

    Date of meetingNotesRecordings

    Communication Channels

    These are the mechanisms that this working group uses to communicate.

    Mailing List

    group@lists.hyperledger.org

    Chat Channel

    Activity of the Group

    Links to Ongoing Work

    Links to Completed Work

    How to Get Involved

    Links to External Resources

    Active Members

    NameCompany TipLeave the below sections for all space type

    Recent space activity

    Recently Updated
    typespage, comment, blogpost
    max5
    hideHeadingtrue
    themesocial

    Space contributors

    Contributors
    modelist
    scopedescendants
    limit5
    showLastTimetrue
    orderupdate