Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Page properties
Project
SVG Out
scaleX200px
scaleY50px
nameHyperledger_Web3j.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.

  Image Removed 

Status

 

Status
colourBlue
titleIncubation
  

CII Badge
DescriptionHyperledger Web3j is a highly modular, reactive, type safe Java and Android library for working with Smart Contracts and integrating with clients (nodes) on the Ethereum network.
The Solidity language

Web3j is the

most popular programming language for smart contracts. 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.

Java and Android integration library for Ethereum. It was created back in 2016 by Web3 Labs founder, Conor Svensson, to provide the plumbing for enterprise developers to work with Ethereum-compatible blockchains.

During the past two decades, many large enterprises invested heavily in the Java Virtual Machine (JVM) platform for building out their internal platforms. However, public blockchain networks were not designed with the enterprise users in mind.

Web3j was created to provide a straightforward integration path for enterprises using the JVM platform to work with Ethereum technology.

Web3j is a highly modular, reactive, type safe Java and Android library for working with Smart Contracts and integrating with clients (nodes) on the Ethereum network. This allows you to work with the Ethereum blockchain, without the additional overhead of having to write your own integration code for the platform

Image Added


Web3j was first created back in 2016 out of the need to simplify working with Ethereum networks using the Java and Android platforms (collectively referred to as the JVM from herein). Web3J intends to make it as simple as possible for enterprise developers to integrate with the leading blockchain network Ethereum.


In the 7 years since Web3j's initial creation a vibrant community has been built. Key project metrics include:


  • 4.8k GitHub stars
  • 192 contributors
  • 106 releases
  • 1.7k forks
  • Over 1000 resolved issues
  • Over 2 million downloads


Web3j is a successful open source project and a key piece of open source infrastructure for the Ethereum ecosystem.


Key Characteristics

Ease of Integration with Existing Systems: Hyperledger Web3j is a lightweight, highly modular Java library that can be easily integrated into existing enterprise systems. This makes it an ideal choice for organizations looking to adopt blockchain technology without overhauling their current infrastructure.

Comprehensive Ethereum Support: As a Java library for working with the Ethereum blockchain, Hyperledger Web3j provides comprehensive support for a number of Ethereum components and ecosystems. This includes smart contract deployment and integration, transaction signing, wallet creation and management, and querying blockchain data, making it a versatile tool for enterprise blockchain applications.

Highly Modular: Hyperledger Web3j is a highly modular project that enables users of the library to easily select the components they need for their project. If a project just wants to use the cryptography components of Hyperledger Web3j, they can. Or they can opt just to use the RPC capabilities for querying nodes but not the smart contract capabilities. All of this is straightforward due to its modular nature.

Powerful Build Tools: Hyperledger Web3j enables developers to stay in  their JVM environment when developing using the library. It takes care of Solidity code compilation and testing via its build tools providing a highly integrated development experience.

Smart Contract Wrappers: Hyperledger Web3j simplifies the interaction with smart contracts by generating Java smart contract wrappers. This allows enterprise developers to deploy and interact with smart contracts as if they were Java objects, significantly reducing the learning curve and development time.

Reactive Functional Programming: The library supports reactive functional programming, enabling developers to easily write code to ingest historic and real-time blockchain data. This is particularly beneficial for enterprises dealing with complex systems and large volumes of data.

Secure Transaction Management: Hyperledger Web3j provides robust features for secure transaction management, including offline transaction signing. This ensures that private keys remain secure, which is a critical concern for enterprise applications.

Compatibility with Popular Java Tools: Hyperledger Web3j is compatible with popular Java tools and frameworks like Spring Boot, making it easier for Java developers to adopt and integrate into their existing workflows.

Active Community and Support: Hyperledger Web3j already has a strong and active community, providing enterprises with access to a wealth of knowledge and support. This community-driven development ensures continuous improvements and updates, keeping the library aligned with the latest blockchain innovations.

Reduced Blockchain Complexity: By abstracting the complexities of the Ethereum blockchain, Hyperledger Web3j allows enterprise technologists to focus on building business logic rather than dealing with the intricacies of blockchain technology.

Performance and Scalability: Designed with performance in mind, Hyperledger Web3j is suitable for enterprise-grade applications that require high throughput and scalability.

Support for Both Public and Private Networks: Hyperledger Web3j fully supports integrating with public and private Ethereum networks. For instance, it supports Hyperledger Besu's transaction privacy and private network API.

Synergies with Hyperledger Besu: Hyperledger Besu and Hyperledger Web3j already have reciprocal relationships, with both projects leveraging one another.

Participation

We're really keen to get contributions from the Hyperledger community and find maintainers from more organizations. This will help the project thrive further.

The easiest way to get started is to try out Hyperledger Web3j and create your own project via the Web3j command line interface:

curl -L get.web3j.io |sh
web3j new

You can then dig around the project structure that gets created.

If you have an RPC endpoint and wallet with a balance to pay for gas fees, you can run the application with:

web3j run <network_url> <wallet_path> <wallet_password>

From here we encourage you to check out the project home page at github.com/web3j/web3j and the documentation at docs.web3j.io.

You can chat to the Hyperledger Web3j community and maintainers at the Hyperledger Discord.

Documentation

Documentation for the project can be found here:

docs.web3j.io

Project Management and Issue Tracking


Repositories

You can find the repositories for Web3j here:

github.com/web3j/web3j

Communication

Mailing List

The purpose of Solang is two-fold: first of all, developers with 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:

- Solana
- Substrate

At the time of writing, these chains are the 9th, and 11th by market capitalization according coinmarketcap.com (the coins are listed by market cap).

Any other blockchain that wishes to have Solidity language support is welcome to add a new target to the Solang project. The cosmos blockchain grant foundation has said it would support a grant for adding CosmWasm support.

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

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 Web3J 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.

Comin soon. 

Calendar

History

  • Proposed by

    • Sean Young

    • Lucas Steuernagel

    • Tracy A. Kuhrt 

    • Cyrill Leutwiler 

    • Conor Svensson, December 15, 2023

  • Approved 

    • TOC Approval January 11, 2024
    Approved  by the TSC on 2022 -08-18
Panel
borderColorblack
bgColor#f4f4f4
borderStylesolid

Getting Involved

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

  1. Join our team calls! We have a daily stand up meeting in discord.Community calls happening every 2 weeks, check calendar - https://lists.hyperledger.org/g/web3j/calendar
  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

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

update

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

Calendar of Public Meetings

Recent space activity

Recently Updated
typespage, comment, blogpost
max5
hideHeadingtrue
themesocial

Space contributors

Contributors
modelist
scopedescendants
limit5
showLastTimetrue
orderupdate