Day 2 of 5 Days of Deep Dives: QubicJ – Java Infrastructure for the Qubic Network

Written by

The Qubic Team

24 сент. 2024 г.

On Day 2 of our deep dive series - a series that will cover five of the recent Qubic grant winners - we explore QubicJ - a tool-set designed to provide Java infrastructure for developers working on the Qubic network. QubicJ simplifies communication with Qubic nodes and facilitates operations like Qx transactions, making it easier for Java developers to build and innovate without needing to fully understand the underlying Qubic protocol.

The more programming languages Qubic supports, the stronger the ecosystem will become, allowing Qubic to reach and engage developers from different technical backgrounds. QubicJ is a key step in this direction, bringing one of the most popular programming languages, Java, into the Qubic ecosystem.

QubicJ provides developers with the tools they need to create powerful applications within the Qubic ecosystem. This post will explore the project's vision, current progress, and future roadmap.

Who Is Behind QubicJ?

QubicJ is being developed by mio (@o.mio on Discord), a skilled Java developer and active contributor to the Qubic community, with a background in decentralised technologies and blockchain infrastructure. 

The Vision Behind QubicJ

QubicJ is designed to enable Java developers to easily interact with the Qubic network by providing both reactive and classic stacks. It takes away the need to understand the complexities of the Qubic protocol, allowing Java developers to focus on building applications, such as decentralised apps (dApps) or smart contract interactions.

With features like automatic selection of healthy nodes, transaction management, and smart contract interaction (e.g., Qx), QubicJ makes developing on the Qubic network more accessible.

Current Development Progress

QubicJ-Computor-API: Interaction with Qubic Nodes

The qubicj-computor-api module allows developers to communicate with Qubic nodes (Computors) efficiently. This API is central to enabling developers to create applications that can seamlessly interact with the Qubic network.

QubicJ-Shell: Command-Line Wallet and Node Tool

The qubicj-shell is a command-line tool for managing multiple Qubic wallets and interacting with nodes and smart contracts. Primarily designed for Linux users, the shell enables developers to:

  • Create and Manage Wallets

  • Communicate with Qubic Nodes

  • Execute Qx transactions

The shell also serves as a reference for developers, demonstrating how to use the QubicJ library in larger projects.

Getting Started with QubicJ

For developers looking to integrate QubicJ into their projects, you’ll need Java 21. While Linux is the officially supported OS, QubicJ can run on any operating system that supports Java and the needed shared library.

To ensure QubicJ works correctly, developers need to install the qubic-cli shared library, as the crypto components of Qubic (FourQ and SchnorrQ) have not yet been ported to Java.

If you only need the computor API, you don’t need to build the entire project - simply include the dependency from the official public Maven repository.

Latest Release: Link to Latest Release
GitLab Repository: View on GitLab

Roadmap and Future Milestones

QubicJ is already usable and continues to evolve. Below is the development roadmap, with milestones aimed at expanding its capabilities:

  • MS1 – Finished: Proof of Concept (POC)

  • MS2 – Finished (Autumn 2024): First version and wallet release

  • MS3 – Partly Finished (Jan 2025):

    • All wallet functionality, including Qx operations – Finished

    • API communication improvements – Open

    • Additional functionality for smart contracts and node calls – Open

  • MS4 – Mid 2025:

    • Finalize API, code, and documentation

    • Start long-term maintenance and support

Next Steps:

  • Complete Qx Implementation: Qx is mostly implemented, except for asset transfers, which will be added soon.

Key Features and Use Cases of QubicJ

Simplified Java Development

QubicJ simplifies the Qubic protocol, allowing developers to:

  • Build dApps without needing detailed protocol knowledge

  • Handle Node Communication with automatic node selection

Command-Line Wallet Management

The qubicj-shell offers developers a command-line interface for managing wallets and performing transactions:

  • Create and Manage Wallets

  • Communicate with Nodes

  • Execute Qx Transactions

Qx Integration

QubicJ integrates with Qx, enabling users to:

  • Manage Digital Assets

  • Show order books

  • Place bid/ask orders directly from the command line

Support and Contributing

For support, reach out to mio @o.mio via the Qubic Discord server. Developers are encouraged to contribute to the project, provided they agree to the dual-licensing conditions. Contributions must be free of copyright issues, and the project owner retains the right to license the code under proprietary terms.

Join the #qubic-java channel in the Qubic Discord for more information.

Long-Term Vision and Scalability

The vision for QubicJ is to become the foundation of Java development on the Qubic network. The tool-set provides a straightforward but powerful way for Java developers to contribute to the Qubic ecosystem, with a simple API that is already fully functional. 

As it grows, the Qubic ecosystem will benefit from more developer tools like QubicJ, making it easier for developers to contribute more effectively to the network due to broader language support.

What’s Next?

The QubicJ project is actively evolving, with new features and improvements continuously being added. The team’s immediate focus is on completing Qx integration and enhancing API communication logic.

Join us tomorrow for Day 3 of our deep dive series, where we explore another innovative project in the Qubic ecosystem: Qubic Name Service (QNS).

What features of QubicJ are you most excited to see implemented? Join the conversation on Discord and Telegram and share your thoughts.

Disclaimer
QubicJ is a community-driven initiative and operates independently of Qubic Core and the Steering Committee (SteCo). It reflects the efforts and ideas of the community.

Developer Grants Available

Do you have a project idea that could support the growth of the Qubic network? Qubic is actively seeking developers to help us grow our ecosystem. Read more about the Qubic Grants Program and how to apply for a grant.

Please note: The Qubic Grants Program is not currently accepting applications. There will be an announcement when the next grant period opens.

Russian (Russia)

© 2024 Qubic.

Russian (Russia)

© 2024 Qubic.

Russian (Russia)

© 2024 Qubic.