We’re excited to announce that our modular node implementation, Zebra, has reached the alpha state.
What Is Zebra?
Zebra is written in Rust, a memory-safe language, and it’s expected to become a major contributor to the growth of the Komodo ecosystem, allowing for the development of new tools and services, as well as integration into other software to support Komodo.
The Komodo blockchain is a fork of ZCash and provides an additional blockchain security level through its delayed Proof of Work (dPoW) system, which utilizes the hash rate of Litecoin to protect both Komodo and third-party projects utilizing dPoW for 51% attack defense. However, Komodo inherited its network protocol from ZCash, which is itself a fork of Bitcoin built off of a poorly-specified C++ codebase.
The Zcash Foundation engineers decided to remedy this by releasing a reimplementation of their node in Rust called Zebra. Komodo followed suit but also had to do additional work to adopt the initial Zebra implementation to the Komodo mainnet, such as implementing Komodo-specific consensus rules, Notary Nodes entities, and dPoW security layer. By using source code written in Rust we also get a true multi-platform codebase that can be executed on any Rust-supported platform.
Komodo Zebra Implementation
Now that this work is complete, the Komodo Team is proud to present the "Komodo-flavored" Zebra (a.k.a. Kebra) implementation. Zebra is already able to sync the Komodo (KMD) network and act as a network daemon. Since Komodo's Zebra and ZCash's Zebra share the same codebase, mostly all statements and articles applied to the original Zcash Foundation Zebra implementation also apply to Komodo's version.
Zebra has some limitations in comparison with komodod (existing daemon). Zebra is a full node capable of validating and propagating transactions and blocks, discovering and maintaining connections with peers, and maintaining a complete and up-to-date copy of the blockchain. It doesn’t have mining functionality to solve the Proof of Work algorithm itself, but it will have the functionality to support pool software-producing blocks.
It also doesn’t provide any user wallet functionality, which should instead be implemented in other modules and separate wallets that can interact with Zebra via its RPC subsystem. In short, Zebra is a full blockchain node containing a full blockchain database and Network routing node on the Komodo P2P network.
The Komodo’s Zebra network node utilizes both the Rust language and the Tower library for its new stack. The Tower library itself consists of modular and reusable components for creating robust networking clients and servers. There are many benefits to using Rust over C++ for the application, including improved memory safety, better performance, and a better development experience. Rust is also more reliable and easier to maintain, making it a great choice for mission-critical applications. For further insight into the new network stack and the benefits of using Tower, check out ZCash Foundation’s article.
This is a significant milestone for Komodo and its development team, as it has opened up the possibility of developing new tools, services, and integrations that will take advantage of the advanced Komodo technology. The development team is now focused on improving the stability of the software and then moving on to beta testing, as well as working on further integrations with third-party services and projects.
The Komodo team has made great strides in developing a modular, memory-safe node implementation for the Komodo network. The adoption of Rust as the language of choice has been a great benefit to the development of the software, and the team's efforts to integrate the initial Zebra implementation with the Komodo mainnet have proven successful. With the software now in Alpha state, we’re well on our way to creating an advanced node that will provide a foundation for the development of new tools, services, and integrations.